[FIX][ENTERPRISE] Omnichannel Department form is not correctly storing the list of departments allowed for forwarding (#19793)

* Accept more than one "department allowed to foward" at Department new/edit page.

* switching enterprise validation to the correct side.

* Remove department origin from the options at multi select EE component

* refactor patterns department forwarding

Co-authored-by: Renato Becker <renato.augusto.becker@gmail.com>
pull/19816/head
Rafael Ferreira 5 years ago committed by GitHub
parent 1a11fa4110
commit c88b61168f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      client/views/omnichannel/departments/DepartmentEdit.js
  2. 5
      ee/client/omnichannel/additionalForms/DepartmentForwarding.js

@ -193,7 +193,7 @@ export function EditDepartment({ data, id, title, reload }) {
visitorInactivityTimeoutInSeconds,
abandonedRoomsCloseCustomMessage,
waitingQueueMessage,
departmentsAllowedToForward: departmentsAllowedToForward && departmentsAllowedToForward[0],
departmentsAllowedToForward: departmentsAllowedToForward && departmentsAllowedToForward.join(),
};
const agentListPayload = {
@ -297,7 +297,7 @@ export function EditDepartment({ data, id, title, reload }) {
<WaitingQueueMessageInput value={waitingQueueMessage} handler={handleWaitingQueueMessage} label={'Waiting_queue_message'} />
</Field>}
{DepartmentForwarding && <Field>
<DepartmentForwarding value={departmentsAllowedToForward} handler={handleDepartmentsAllowedToForward} label={'List_of_departments_for_forward'} placeholder='Enter_a_department_name' />
<DepartmentForwarding departmentId={id} value={departmentsAllowedToForward} handler={handleDepartmentsAllowedToForward} label={'List_of_departments_for_forward'} placeholder='Enter_a_department_name' />
</Field>}
<Field>
<Box display='flex' flexDirection='row'>

@ -5,11 +5,12 @@ import { Field, MultiSelectFiltered } from '@rocket.chat/fuselage';
import { useTranslation } from '../../../../client/contexts/TranslationContext';
import { useEndpointData } from '../../../../client/hooks/useEndpointData';
export const DepartmentForwarding = ({ value, handler, label, placeholder }) => {
export const DepartmentForwarding = ({ departmentId, value, handler, label, placeholder }) => {
const t = useTranslation();
const { value: data } = useEndpointData('livechat/department');
const options = useMemo(() => (data && [...data.departments.map((department) => [department._id, department.name])]) || [], [data]);
const options = useMemo(() => (data && [...data.departments.filter((department) => department._id !== departmentId).map((department) => [department._id, department.name])]) || [], [data, departmentId]);
return <Field>
<Field.Label>{t(label)}</Field.Label>

Loading…
Cancel
Save