Skip to content

Commit f9e38a1

Browse files
authored
Added column selection saving to db (#1162)
1 parent 8a624a8 commit f9e38a1

File tree

4 files changed

+27
-20
lines changed

4 files changed

+27
-20
lines changed
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
INSERT INTO user_page_preferences (user_id, page_name, page_results,created)
2-
VALUES (:user_id, :page_name, :page_results,:created::timestamp with time zone);
1+
INSERT INTO user_page_preferences (user_id, page_name, page_results, selected_columns,created)
2+
VALUES (:user_id, :page_name, :page_results,:selected_columns::TEXT[] ,:created::timestamp with time zone);

DSL/Ruuter.private/DSL/POST/accounts/update-page-preference.yml

+5
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,16 @@ declaration:
1717
- field: page_results
1818
type: number
1919
description: "Body field 'page_results'"
20+
- field: selected_columns
21+
type: number
22+
description: "Body field 'select_columns'"
2023

2124
extractRequestData:
2225
assign:
2326
user_id: ${incoming.body.user_id}
2427
page_name: ${incoming.body.page_name}
2528
page_results: ${incoming.body.page_results}
29+
selected_columns: ${incoming.body.selected_columns}
2630
created: ${new Date().toISOString()}
2731

2832
setUserPagePreferences:
@@ -33,6 +37,7 @@ setUserPagePreferences:
3337
user_id: ${user_id}
3438
page_name: ${page_name}
3539
page_results: ${page_results}
40+
selected_columns: ${selected_columns}
3641
created: ${created}
3742
result: returnSuccess
3843

GUI/src/pages/Chat/ChatHistory/index.tsx

+19-18
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,6 @@ import { useToast } from 'hooks/useToast';
3232
import { apiDev } from 'services/api';
3333
import useStore from 'store';
3434
import { Controller, useForm } from 'react-hook-form';
35-
import {
36-
getFromLocalStorage,
37-
setToLocalStorage,
38-
} from 'utils/local-storage-utils';
39-
import { CHAT_HISTORY_PREFERENCES_KEY } from 'constants/config';
4035
import { useLocation, useSearchParams } from 'react-router-dom';
4136
import { unifyDateFromat } from './unfiyDate';
4237
import withAuthorization from 'hoc/with-authorization';
@@ -54,9 +49,6 @@ const ChatHistory: FC = () => {
5449
const passedStartDate = params.get('start');
5550
const passedEndDate = params.get('end');
5651
const passedCustomerSupportIds = params.getAll('customerSupportIds');
57-
const preferences = getFromLocalStorage(
58-
CHAT_HISTORY_PREFERENCES_KEY
59-
) as string[];
6052
const [search, setSearch] = useState('');
6153
const [selectedChat, setSelectedChat] = useState<ChatType | null>(null);
6254
const [searchParams, setSearchParams] = useSearchParams();
@@ -83,10 +75,9 @@ const ChatHistory: FC = () => {
8375
>([]);
8476

8577
const [messagesTrigger, setMessagesTrigger] = useState(false);
86-
const [selectedColumns, setSelectedColumns] = useState<string[]>(
87-
preferences ?? []
88-
);
78+
const [selectedColumns, setSelectedColumns] = useState<string[]>([]);
8979
const [customerSupportAgents, setCustomerSupportAgents] = useState<any[]>([]);
80+
const [counterKey, setCounterKey] = useState<number>(0)
9081

9182
const { control, watch } = useForm<{
9283
startDate: Date | string;
@@ -141,9 +132,12 @@ const ChatHistory: FC = () => {
141132
},
142133
});
143134
if (response.data.pageResults !== undefined) {
135+
const newSelectedColumns = response.data?.selectedColumns.length === 1 && response.data?.selectedColumns[0] === "" ? [] : response.data?.selectedColumns;
136+
setSelectedColumns(newSelectedColumns)
144137
const updatedPagination = updatePagePreference(
145-
response.data.pageResults
138+
response.data.pageResults ?? 10
146139
);
140+
setCounterKey(counterKey + 1)
147141
getAllEndedChats.mutate({
148142
startDate: format(new Date(startDate), 'yyyy-MM-dd'),
149143
endDate: format(new Date(endDate), 'yyyy-MM-dd'),
@@ -179,18 +173,22 @@ const ChatHistory: FC = () => {
179173
search,
180174
});
181175
}
182-
}, []);
176+
}, [selectedColumns]);
183177

184178
useEffect(() => {
185179
listCustomerSupportAgents.mutate();
186180
}, []);
187181

188-
const updatePageSize = useMutation({
189-
mutationFn: (data: { page_results: number }) => {
182+
const updatePagePreferences = useMutation({
183+
mutationFn: (data: {
184+
page_results: number;
185+
selected_columns: string[];
186+
}) => {
190187
return apiDev.post('accounts/update-page-preference', {
191188
user_id: userInfo?.idCode,
192189
page_name: window.location.pathname,
193190
page_results: data.page_results,
191+
selected_columns: `{"${data.selected_columns.join('","')}"}`
194192
});
195193
},
196194
});
@@ -210,6 +208,8 @@ const ChatHistory: FC = () => {
210208
sortBy = `${sorting[0].id} ${sortType}`;
211209
}
212210

211+
console.log('data', data, data.pagination, data.pagination.pageSize)
212+
213213
return apiDev.post('agents/chats/ended', {
214214
customerSupportIds: data.customerSupportIds,
215215
startDate: data.startDate,
@@ -693,6 +693,7 @@ const ChatHistory: FC = () => {
693693
/>
694694
</Track>
695695
<FormMultiselect
696+
key={counterKey}
696697
name="visibleColumns"
697698
label={t('')}
698699
placeholder={t('chat.history.chosenColumn')}
@@ -703,7 +704,7 @@ const ChatHistory: FC = () => {
703704
onSelectionChange={(selection) => {
704705
const columns = selection?.map((s) => s.value) ?? [];
705706
setSelectedColumns(columns);
706-
setToLocalStorage(CHAT_HISTORY_PREFERENCES_KEY, columns);
707+
updatePagePreferences.mutate({page_results: pagination.pageSize, selected_columns: columns})
707708
}}
708709
/>
709710
<FormMultiselect
@@ -727,9 +728,9 @@ const ChatHistory: FC = () => {
727728
setPagination({ pageIndex: 0, pageSize: pagination.pageSize });
728729

729730
getAllEndedChats.mutate({
730-
customerSupportIds: selection?.map((s) => s.value),
731731
startDate,
732732
endDate,
733+
customerSupportIds: selection?.map((s) => s.value) || [],
733734
pagination: { pageIndex: 0, pageSize: pagination.pageSize },
734735
sorting,
735736
search,
@@ -758,7 +759,7 @@ const ChatHistory: FC = () => {
758759
)
759760
return;
760761
setPagination(state);
761-
updatePageSize.mutate({ page_results: state.pageSize });
762+
updatePagePreferences.mutate({ page_results: state.pageSize, selected_columns: selectedColumns });
762763
getAllEndedChats.mutate({
763764
startDate: format(new Date(startDate), 'yyyy-MM-dd'),
764765
endDate: format(new Date(endDate), 'yyyy-MM-dd'),

GUI/src/pages/Settings/SettingsUsers/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const SettingsUsers: FC = () => {
116116
user_id: userInfo?.idCode,
117117
page_name: window.location.pathname,
118118
page_results: data.page_results,
119+
selected_columns: "{}"
119120
});
120121
},
121122
});

0 commit comments

Comments
 (0)