@axelor/aos-mobile-helpdesk 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -0
- package/lib/api/customer-api.d.ts +11 -0
- package/lib/api/customer-api.js +57 -0
- package/lib/api/customer-api.js.map +1 -0
- package/lib/api/helpdesk-config-api.d.ts +1 -0
- package/lib/api/helpdesk-config-api.js +23 -0
- package/lib/api/helpdesk-config-api.js.map +1 -0
- package/lib/api/project-api.d.ts +4 -0
- package/lib/api/project-api.js +31 -0
- package/lib/api/project-api.js.map +1 -0
- package/lib/api/ticket-api.d.ts +26 -0
- package/lib/api/ticket-api.js +99 -0
- package/lib/api/ticket-api.js.map +1 -0
- package/lib/api/timer-api.d.ts +6 -0
- package/lib/api/timer-api.js +44 -0
- package/lib/api/timer-api.js.map +1 -0
- package/lib/api/user-api.d.ts +4 -0
- package/lib/api/user-api.js +31 -0
- package/lib/api/user-api.js.map +1 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +20 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/molecules/DurationFormInput/DurationFormInput.d.ts +8 -0
- package/lib/components/molecules/DurationFormInput/DurationFormInput.js +73 -0
- package/lib/components/molecules/DurationFormInput/DurationFormInput.js.map +1 -0
- package/lib/components/molecules/DurationFormInput/duration.helpers.d.ts +9 -0
- package/lib/components/molecules/DurationFormInput/duration.helpers.js +44 -0
- package/lib/components/molecules/DurationFormInput/duration.helpers.js.map +1 -0
- package/lib/components/molecules/ProgressFormInput/ProgressFormInput.d.ts +9 -0
- package/lib/components/molecules/ProgressFormInput/ProgressFormInput.js +31 -0
- package/lib/components/molecules/ProgressFormInput/ProgressFormInput.js.map +1 -0
- package/lib/components/molecules/TicketCard/TicketCard.d.ts +17 -0
- package/lib/components/molecules/TicketCard/TicketCard.js +87 -0
- package/lib/components/molecules/TicketCard/TicketCard.js.map +1 -0
- package/lib/components/molecules/index.d.ts +3 -0
- package/lib/components/molecules/index.js +21 -0
- package/lib/components/molecules/index.js.map +1 -0
- package/lib/components/templates/ContactPartnerSearchBar/ContactPartnerSearchBar.d.ts +15 -0
- package/lib/components/templates/ContactPartnerSearchBar/ContactPartnerSearchBar.js +56 -0
- package/lib/components/templates/ContactPartnerSearchBar/ContactPartnerSearchBar.js.map +1 -0
- package/lib/components/templates/CustomerSearchBar/CustomerSearchBar.d.ts +15 -0
- package/lib/components/templates/CustomerSearchBar/CustomerSearchBar.js +52 -0
- package/lib/components/templates/CustomerSearchBar/CustomerSearchBar.js.map +1 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.d.ts +15 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js +52 -0
- package/lib/components/templates/ProjectSearchBar/ProjectSearchBar.js.map +1 -0
- package/lib/components/templates/TicketDropdownCards/DropdownGeneralView.d.ts +8 -0
- package/lib/components/templates/TicketDropdownCards/DropdownGeneralView.js +42 -0
- package/lib/components/templates/TicketDropdownCards/DropdownGeneralView.js.map +1 -0
- package/lib/components/templates/TicketDropdownCards/DropdownTimingView.d.ts +7 -0
- package/lib/components/templates/TicketDropdownCards/DropdownTimingView.js +46 -0
- package/lib/components/templates/TicketDropdownCards/DropdownTimingView.js.map +1 -0
- package/lib/components/templates/TicketDropdownCards/TicketDropdownCards.d.ts +2 -0
- package/lib/components/templates/TicketDropdownCards/TicketDropdownCards.js +51 -0
- package/lib/components/templates/TicketDropdownCards/TicketDropdownCards.js.map +1 -0
- package/lib/components/templates/TicketEditButton/TicketEditButton.d.ts +4 -0
- package/lib/components/templates/TicketEditButton/TicketEditButton.js +36 -0
- package/lib/components/templates/TicketEditButton/TicketEditButton.js.map +1 -0
- package/lib/components/templates/TicketHeader/TicketHeader.d.ts +2 -0
- package/lib/components/templates/TicketHeader/TicketHeader.js +75 -0
- package/lib/components/templates/TicketHeader/TicketHeader.js.map +1 -0
- package/lib/components/templates/TicketSearchBar/TicketSearchBar.d.ts +11 -0
- package/lib/components/templates/TicketSearchBar/TicketSearchBar.js +39 -0
- package/lib/components/templates/TicketSearchBar/TicketSearchBar.js.map +1 -0
- package/lib/components/templates/TicketTypeSearchBar/TicketTypeSearchBar.d.ts +15 -0
- package/lib/components/templates/TicketTypeSearchBar/TicketTypeSearchBar.js +52 -0
- package/lib/components/templates/TicketTypeSearchBar/TicketTypeSearchBar.js.map +1 -0
- package/lib/components/templates/TicketsStatusButton/TicketsStatusButton.d.ts +2 -0
- package/lib/components/templates/TicketsStatusButton/TicketsStatusButton.js +45 -0
- package/lib/components/templates/TicketsStatusButton/TicketsStatusButton.js.map +1 -0
- package/lib/components/templates/UserSearchBar/UserSearchBar.d.ts +15 -0
- package/lib/components/templates/UserSearchBar/UserSearchBar.js +53 -0
- package/lib/components/templates/UserSearchBar/UserSearchBar.js.map +1 -0
- package/lib/components/templates/index.d.ts +10 -0
- package/lib/components/templates/index.js +28 -0
- package/lib/components/templates/index.js.map +1 -0
- package/lib/features/customerSlice.d.ts +41 -0
- package/lib/features/customerSlice.js +85 -0
- package/lib/features/customerSlice.js.map +1 -0
- package/lib/features/helpdeskConfigSlice.d.ts +14 -0
- package/lib/features/helpdeskConfigSlice.js +49 -0
- package/lib/features/helpdeskConfigSlice.js.map +1 -0
- package/lib/features/index.d.ts +6 -0
- package/lib/features/index.js +24 -0
- package/lib/features/index.js.map +1 -0
- package/lib/features/projectSlice.d.ts +16 -0
- package/lib/features/projectSlice.js +49 -0
- package/lib/features/projectSlice.js.map +1 -0
- package/lib/features/ticketSlice.d.ts +81 -0
- package/lib/features/ticketSlice.js +175 -0
- package/lib/features/ticketSlice.js.map +1 -0
- package/lib/features/timerSlice.d.ts +26 -0
- package/lib/features/timerSlice.js +73 -0
- package/lib/features/timerSlice.js.map +1 -0
- package/lib/features/userSlice.d.ts +16 -0
- package/lib/features/userSlice.js +49 -0
- package/lib/features/userSlice.js.map +1 -0
- package/lib/hooks/use-helpdesk-header-actions.d.ts +1 -0
- package/lib/hooks/use-helpdesk-header-actions.js +35 -0
- package/lib/hooks/use-helpdesk-header-actions.js.map +1 -0
- package/lib/i18n/en.json +57 -0
- package/lib/i18n/fr.json +57 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +67 -0
- package/lib/index.js.map +1 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/index.js +21 -0
- package/lib/models/index.js.map +1 -0
- package/lib/models/objectFields.d.ts +2 -0
- package/lib/models/objectFields.js +72 -0
- package/lib/models/objectFields.js.map +1 -0
- package/lib/models/searchFields.d.ts +2 -0
- package/lib/models/searchFields.js +46 -0
- package/lib/models/searchFields.js.map +1 -0
- package/lib/models/sortFields.d.ts +2 -0
- package/lib/models/sortFields.js +26 -0
- package/lib/models/sortFields.js.map +1 -0
- package/lib/screens/MyTeamTicketListScreen.d.ts +4 -0
- package/lib/screens/MyTeamTicketListScreen.js +124 -0
- package/lib/screens/MyTeamTicketListScreen.js.map +1 -0
- package/lib/screens/MyTicketListScreen.d.ts +4 -0
- package/lib/screens/MyTicketListScreen.js +124 -0
- package/lib/screens/MyTicketListScreen.js.map +1 -0
- package/lib/screens/TicketDetailsScreen.d.ts +4 -0
- package/lib/screens/TicketDetailsScreen.js +95 -0
- package/lib/screens/TicketDetailsScreen.js.map +1 -0
- package/lib/screens/TicketFormScreen.d.ts +5 -0
- package/lib/screens/TicketFormScreen.js +127 -0
- package/lib/screens/TicketFormScreen.js.map +1 -0
- package/lib/screens/index.d.ts +40 -0
- package/lib/screens/index.js +50 -0
- package/lib/screens/index.js.map +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +19 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/ticket.d.ts +53 -0
- package/lib/types/ticket.js +217 -0
- package/lib/types/ticket.js.map +1 -0
- package/lib/utils/displayers.d.ts +1 -0
- package/lib/utils/displayers.js +19 -0
- package/lib/utils/displayers.js.map +1 -0
- package/package.json +50 -0
package/lib/i18n/fr.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Helpdesk_Helpdesk": "Support client",
|
|
3
|
+
"Helpdesk_Ticket": "Ticket",
|
|
4
|
+
"Helpdesk_Progress": "Progression",
|
|
5
|
+
"Helpdesk_Duration": "Durée",
|
|
6
|
+
"Helpdesk_Deadline": "Date limite",
|
|
7
|
+
"Helpdesk_User_In_Charge": "Utilisateur en charge",
|
|
8
|
+
"Helpdesk_Assigned_To": "Assigné à",
|
|
9
|
+
"Helpdesk_Status_New": "Nouveau",
|
|
10
|
+
"Helpdesk_Status_In_Progress": "En cours",
|
|
11
|
+
"Helpdesk_Status_Resolved": "Résolu",
|
|
12
|
+
"Helpdesk_Status_Closed": "Fermé",
|
|
13
|
+
"Helpdesk_Priority": "Priorité",
|
|
14
|
+
"Helpdesk_Priority_Low": "Faible",
|
|
15
|
+
"Helpdesk_Priority_Normal": "Normal",
|
|
16
|
+
"Helpdesk_Priority_High": "Elevé",
|
|
17
|
+
"Helpdesk_Priority_Urgent": "Urgent",
|
|
18
|
+
"Helpdesk_myTickets": "Mes tickets",
|
|
19
|
+
"Helpdesk_Status": "Statut",
|
|
20
|
+
"Helpdesk_Type": "Type",
|
|
21
|
+
"Helpdesk_myTeamTickets": "Les tickets de mon équipe",
|
|
22
|
+
"helpdesk_createTicket": "Créer un ticket",
|
|
23
|
+
"Helpdesk_StartDate": "Date de début",
|
|
24
|
+
"Helpdesk_EndDate": "Date de fin",
|
|
25
|
+
"Helpdesk_Project": "Projet",
|
|
26
|
+
"Helpdesk_CustomPartner": "Client",
|
|
27
|
+
"Helpdesk_ContactPartner": "Contact client",
|
|
28
|
+
"Helpdesk_GeneralInformations": "Informations Générales",
|
|
29
|
+
"Helpdesk_Timing": "Dates",
|
|
30
|
+
"Helpdesk_Close": "Fermer",
|
|
31
|
+
"Helpdesk_Start": "Démarrer",
|
|
32
|
+
"Helpdesk_Pause": "Mettre en pause",
|
|
33
|
+
"Helpdesk_Resolve": "Résoudre",
|
|
34
|
+
"Helpdesk_Reset": "Réinitialiser",
|
|
35
|
+
"Hepdesk_Subject": "Sujet",
|
|
36
|
+
"Helpdesk_NoGeneralInformation": "Pas d'informations générales.",
|
|
37
|
+
"Helpdesk_NoTimingInformation": "Pas d'informations temporelles.",
|
|
38
|
+
"Helpdesk_AssignedToUser": "Assigné à",
|
|
39
|
+
"Helpdesk_ResponsibleUser": "Utilisateur en charge",
|
|
40
|
+
"Helpdesk_DeadlineDate": "Date limite",
|
|
41
|
+
"Helpdesk_SliceAction_FetchMyTicket": "récupération de mes tickets",
|
|
42
|
+
"Helpdesk_SliceAction_FetchTicketType": "récupération des types de tickets",
|
|
43
|
+
"Helpdesk_SliceAction_FetchMyTeamTicket": "récupération des tickets de mon équipe",
|
|
44
|
+
"Helpdesk_SliceAction_FetchTicketById": "récupération du ticket par id",
|
|
45
|
+
"Helpdesk_SliceAction_FetchTimerById": "récupération du timer par id",
|
|
46
|
+
"Helpdesk_SliceAction_FetchTimerHistory": "récupération de l'historique du timer",
|
|
47
|
+
"Helpdesk_SliceAction_UpdateTicketStatus": "mise à jour du statut du ticket",
|
|
48
|
+
"Helpdesk_SliceAction_FetchHelpdeskConfig": "récupération de la configuration support client",
|
|
49
|
+
"Helpdesk_SliceAction_SearchUser": "récupération des utilisateurs",
|
|
50
|
+
"Helpdesk_SliceAction_FetchCustomer": "récupération des clients",
|
|
51
|
+
"Helpdesk_SliceAction_FetchCustomerById": "récupération du client par id",
|
|
52
|
+
"Helpdesk_SliceAction_FetchProject": "récupération des projets",
|
|
53
|
+
"Helpdesk_SliceAction_SearchTicketType": "recherche sur les types de tickets",
|
|
54
|
+
"Helpdesk_SliceAction_UpdateTicket": "mise à jour du ticket",
|
|
55
|
+
"Helpdesk_SliceAction_CreateTicket": "creation du ticket",
|
|
56
|
+
"Helpdesk_SliceAction_FetchCustomerContact": "récupération des contacts clients"
|
|
57
|
+
}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import enTranslations from './i18n/en.json';
|
|
19
|
+
import frTranslations from './i18n/fr.json';
|
|
20
|
+
import MyTicketScreens from './screens/';
|
|
21
|
+
import { helpdesk_modelAPI, helpdesk_searchFields, helpdesk_sortFields, } from './models';
|
|
22
|
+
import * as helpdeskReducers from './features';
|
|
23
|
+
import { useHelpdeskHeaders } from './hooks/use-helpdesk-header-actions';
|
|
24
|
+
export const HelpDeskModule = {
|
|
25
|
+
name: 'app-helpdesk',
|
|
26
|
+
title: 'Helpdesk_Helpdesk',
|
|
27
|
+
subtitle: 'Helpdesk_Helpdesk',
|
|
28
|
+
icon: 'life-ring',
|
|
29
|
+
compatibilityAOS: {
|
|
30
|
+
moduleName: 'axelor-helpdesk',
|
|
31
|
+
downToVersion: '7.1.0',
|
|
32
|
+
},
|
|
33
|
+
translations: {
|
|
34
|
+
en: enTranslations,
|
|
35
|
+
fr: frTranslations,
|
|
36
|
+
},
|
|
37
|
+
menus: {
|
|
38
|
+
helpdesk_menu_myTickets: {
|
|
39
|
+
title: 'Helpdesk_myTickets',
|
|
40
|
+
icon: 'user-tag',
|
|
41
|
+
screen: 'MyTicketListScreen',
|
|
42
|
+
},
|
|
43
|
+
helpdesk_menu_myTeamTickets: {
|
|
44
|
+
title: 'Helpdesk_myTeamTickets',
|
|
45
|
+
icon: 'users',
|
|
46
|
+
screen: 'MyTeamTicketListScreen',
|
|
47
|
+
},
|
|
48
|
+
helpdesk_menu_createTicket: {
|
|
49
|
+
title: 'helpdesk_createTicket',
|
|
50
|
+
icon: 'plus',
|
|
51
|
+
screen: 'TicketFormScreen',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
screens: {
|
|
55
|
+
...MyTicketScreens,
|
|
56
|
+
},
|
|
57
|
+
reducers: { ...helpdeskReducers },
|
|
58
|
+
models: {
|
|
59
|
+
objectFields: { ...helpdesk_modelAPI },
|
|
60
|
+
sortFields: { ...helpdesk_sortFields },
|
|
61
|
+
searchFields: { ...helpdesk_searchFields },
|
|
62
|
+
headerRegisters: useHelpdeskHeaders,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
export * from './types';
|
|
66
|
+
export * from './components';
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,eAAe,MAAM,YAAY,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAEvE,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,mBAAmB;IAC1B,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,WAAW;IACjB,gBAAgB,EAAE;QAChB,UAAU,EAAE,iBAAiB;QAC7B,aAAa,EAAE,OAAO;KACvB;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,EAAE,EAAE,cAAc;KACnB;IACD,KAAK,EAAE;QACL,uBAAuB,EAAE;YACvB,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,oBAAoB;SAC7B;QACD,2BAA2B,EAAE;YAC3B,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,wBAAwB;SACjC;QACD,0BAA0B,EAAE;YAC1B,KAAK,EAAE,uBAAuB;YAC9B,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,kBAAkB;SAC3B;KACF;IACD,OAAO,EAAE;QACP,GAAG,eAAe;KACnB;IACD,QAAQ,EAAE,EAAC,GAAG,gBAAgB,EAAC;IAC/B,MAAM,EAAE;QACN,YAAY,EAAE,EAAC,GAAG,iBAAiB,EAAC;QACpC,UAAU,EAAE,EAAC,GAAG,mBAAmB,EAAC;QACpC,YAAY,EAAE,EAAC,GAAG,qBAAqB,EAAC;QACxC,eAAe,EAAE,kBAAkB;KACpC;CACF,CAAC;AAEF,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export { helpdesk_searchFields } from './searchFields';
|
|
19
|
+
export { helpdesk_sortFields } from './sortFields';
|
|
20
|
+
export { helpdesk_modelAPI } from './objectFields';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { schemaContructor } from '@axelor/aos-mobile-core';
|
|
19
|
+
export const helpdesk_modelAPI = {
|
|
20
|
+
helpdesk_ticket: schemaContructor.object({
|
|
21
|
+
ticketSeq: schemaContructor.string(),
|
|
22
|
+
subject: schemaContructor.string(),
|
|
23
|
+
progressSelect: schemaContructor.number(),
|
|
24
|
+
duration: schemaContructor.number(),
|
|
25
|
+
deadlineDateT: schemaContructor.string(),
|
|
26
|
+
responsibleUser: schemaContructor.subObject(),
|
|
27
|
+
assignedToUser: schemaContructor.subObject(),
|
|
28
|
+
statusSelect: schemaContructor.number(),
|
|
29
|
+
ticketType: schemaContructor.subObject(),
|
|
30
|
+
prioritySelect: schemaContructor.number(),
|
|
31
|
+
description: schemaContructor.string(),
|
|
32
|
+
project: schemaContructor.subObject(),
|
|
33
|
+
customerPartner: schemaContructor.subObject(),
|
|
34
|
+
contactPartner: schemaContructor.subObject(),
|
|
35
|
+
startDateT: schemaContructor.string(),
|
|
36
|
+
endDateT: schemaContructor.string(),
|
|
37
|
+
timerList: schemaContructor.array().of(schemaContructor.subObject()),
|
|
38
|
+
}),
|
|
39
|
+
helpdesk_ticketType: schemaContructor.object({
|
|
40
|
+
name: schemaContructor.string(),
|
|
41
|
+
}),
|
|
42
|
+
helpdesk_timerHistory: schemaContructor.object({
|
|
43
|
+
startDateT: schemaContructor.string(),
|
|
44
|
+
endDateT: schemaContructor.string(),
|
|
45
|
+
}),
|
|
46
|
+
helpdesk_customer: schemaContructor.object({
|
|
47
|
+
simpleFullName: schemaContructor.string(),
|
|
48
|
+
name: schemaContructor.string(),
|
|
49
|
+
fullName: schemaContructor.string(),
|
|
50
|
+
contactPartnerSet: schemaContructor
|
|
51
|
+
.array()
|
|
52
|
+
.of(schemaContructor.subObject()),
|
|
53
|
+
}),
|
|
54
|
+
helpdesk_customerContact: schemaContructor.object({
|
|
55
|
+
simpleFullName: schemaContructor.string(),
|
|
56
|
+
name: schemaContructor.string(),
|
|
57
|
+
fullName: schemaContructor.string(),
|
|
58
|
+
contactPartnerSet: schemaContructor
|
|
59
|
+
.array()
|
|
60
|
+
.of(schemaContructor.subObject()),
|
|
61
|
+
}),
|
|
62
|
+
helpdesk_project: schemaContructor.object({
|
|
63
|
+
fullName: schemaContructor.string(),
|
|
64
|
+
name: schemaContructor.string(),
|
|
65
|
+
clientPartner: schemaContructor.subObject(),
|
|
66
|
+
contactPartner: schemaContructor.subObject(),
|
|
67
|
+
}),
|
|
68
|
+
helpdesk_user: schemaContructor.object({
|
|
69
|
+
fullName: schemaContructor.string(),
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=objectFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectFields.js","sourceRoot":"","sources":["../../src/models/objectFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAe,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C,eAAe,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACvC,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACpC,OAAO,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAClC,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACzC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACxC,eAAe,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC7C,cAAc,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC5C,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACvC,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACxC,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACzC,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACtC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACrC,eAAe,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC7C,cAAc,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC5C,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACrC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;KACrE,CAAC;IACF,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;KAChC,CAAC;IACF,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC7C,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACrC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;KACpC,CAAC;IACF,iBAAiB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACzC,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACzC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,iBAAiB,EAAE,gBAAgB;aAChC,KAAK,EAAE;aACP,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;KACpC,CAAC;IACF,wBAAwB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChD,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACzC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,iBAAiB,EAAE,gBAAgB;aAChC,KAAK,EAAE;aACP,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;KACpC,CAAC;IACF,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,aAAa,EAAE,gBAAgB,CAAC,SAAS,EAAE;QAC3C,cAAc,EAAE,gBAAgB,CAAC,SAAS,EAAE;KAC7C,CAAC;IACF,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACrC,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;KACpC,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export const helpdesk_searchFields = {
|
|
19
|
+
helpdesk_ticket: [
|
|
20
|
+
'ticketSeq',
|
|
21
|
+
'subject',
|
|
22
|
+
'responsibleUser.fullName',
|
|
23
|
+
'customerPartner.fullName',
|
|
24
|
+
'project.fullName',
|
|
25
|
+
],
|
|
26
|
+
helpdesk_ticketType: ['name'],
|
|
27
|
+
helpdesk_customer: [
|
|
28
|
+
'simpleFullName',
|
|
29
|
+
'partnerSeq',
|
|
30
|
+
'mainAddress.fullName',
|
|
31
|
+
'mobilePhone',
|
|
32
|
+
'fixedPhone',
|
|
33
|
+
'emailAddress.name',
|
|
34
|
+
],
|
|
35
|
+
helpdesk_customerContact: [
|
|
36
|
+
'simpleFullName',
|
|
37
|
+
'partnerSeq',
|
|
38
|
+
'mainAddress.fullName',
|
|
39
|
+
'mobilePhone',
|
|
40
|
+
'fixedPhone',
|
|
41
|
+
'emailAddress.name',
|
|
42
|
+
],
|
|
43
|
+
helpdesk_project: ['name', 'fullName'],
|
|
44
|
+
helpdesk_user: ['fullName'],
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=searchFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchFields.js","sourceRoot":"","sources":["../../src/models/searchFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,eAAe,EAAE;QACf,WAAW;QACX,SAAS;QACT,0BAA0B;QAC1B,0BAA0B;QAC1B,kBAAkB;KACnB;IACD,mBAAmB,EAAE,CAAC,MAAM,CAAC;IAC7B,iBAAiB,EAAE;QACjB,gBAAgB;QAChB,YAAY;QACZ,sBAAsB;QACtB,aAAa;QACb,YAAY;QACZ,mBAAmB;KACpB;IACD,wBAAwB,EAAE;QACxB,gBAAgB;QAChB,YAAY;QACZ,sBAAsB;QACtB,aAAa;QACb,YAAY;QACZ,mBAAmB;KACpB;IACD,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;IACtC,aAAa,EAAE,CAAC,UAAU,CAAC;CAC5B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export const helpdesk_sortFields = {
|
|
19
|
+
helpdesk_ticket: ['ticketSeq', 'createdOn'],
|
|
20
|
+
helpdesk_customer: ['name', 'partnerSeq', 'createdOn'],
|
|
21
|
+
helpdesk_customerContact: ['name', 'partnerSeq', 'createdOn'],
|
|
22
|
+
helpdesk_project: ['name', 'fullName'],
|
|
23
|
+
helpdesk_ticketType: ['name'],
|
|
24
|
+
helpdesk_user: ['fullName'],
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=sortFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortFields.js","sourceRoot":"","sources":["../../src/models/sortFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;IAC3C,iBAAiB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;IACtD,wBAAwB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC;IAC7D,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;IACtC,mBAAmB,EAAE,CAAC,MAAM,CAAC;IAC7B,aAAa,EAAE,CAAC,UAAU,CAAC;CAC5B,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
19
|
+
import { Dimensions, StyleSheet, View } from 'react-native';
|
|
20
|
+
import { Screen, HeaderContainer, ScrollList, MultiValuePicker, useThemeColor, ChipSelect, } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useDispatch, useSelector, useTranslator, filterChip, } from '@axelor/aos-mobile-core';
|
|
22
|
+
import { fetchTickets, fetchTicketType } from '../features/ticketSlice';
|
|
23
|
+
import { TicketCard, TicketSearchBar } from '../components';
|
|
24
|
+
import { Ticket } from '../types';
|
|
25
|
+
const MyTeamTicketListScreen = ({ navigation }) => {
|
|
26
|
+
const I18n = useTranslator();
|
|
27
|
+
const dispatch = useDispatch();
|
|
28
|
+
const Colors = useThemeColor();
|
|
29
|
+
const { user } = useSelector(state => state.user);
|
|
30
|
+
const { ticketList, loadingTicket, moreLoading, isListEnd, ticketTypeList } = useSelector(state => state.ticket);
|
|
31
|
+
const [selectedType, setSelectedType] = useState([]);
|
|
32
|
+
const [selectedStatus, setSelectedStatus] = useState([]);
|
|
33
|
+
const [priorityStatus, setPriorityStatus] = useState([
|
|
34
|
+
{
|
|
35
|
+
color: Ticket.getPriorityColor(Ticket.priority.Low, Colors),
|
|
36
|
+
isActive: true,
|
|
37
|
+
key: 1,
|
|
38
|
+
title: I18n.t('Helpdesk_Priority_Low'),
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
color: Ticket.getPriorityColor(Ticket.priority.Low, Colors),
|
|
42
|
+
isActive: true,
|
|
43
|
+
key: 2,
|
|
44
|
+
title: I18n.t('Helpdesk_Priority_Normal'),
|
|
45
|
+
},
|
|
46
|
+
]);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
dispatch(fetchTicketType());
|
|
49
|
+
}, [dispatch]);
|
|
50
|
+
const fetchTicketsAPI = useCallback((page = 0) => {
|
|
51
|
+
dispatch(fetchTickets({ userTeam: user.activeTeam, page: page }));
|
|
52
|
+
}, [dispatch, user]);
|
|
53
|
+
const ticketTypeListItems = useMemo(() => {
|
|
54
|
+
return ticketTypeList
|
|
55
|
+
? ticketTypeList.map((type, index) => {
|
|
56
|
+
return {
|
|
57
|
+
title: type.name,
|
|
58
|
+
color: Ticket.getTypeColor(index, Colors),
|
|
59
|
+
key: type.id,
|
|
60
|
+
};
|
|
61
|
+
})
|
|
62
|
+
: [];
|
|
63
|
+
}, [ticketTypeList, Colors]);
|
|
64
|
+
const ticketStatusListItems = useMemo(() => {
|
|
65
|
+
return Ticket.getStatusList(Colors, I18n);
|
|
66
|
+
}, [Colors, I18n]);
|
|
67
|
+
const filterOnType = useCallback(list => {
|
|
68
|
+
if (list == null || list === []) {
|
|
69
|
+
return list;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (selectedType.length > 0) {
|
|
73
|
+
return list?.filter(item => selectedType.find(status => item?.ticketType?.id === status.key));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return list;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, [selectedType]);
|
|
80
|
+
const filterOnStatus = useCallback(list => {
|
|
81
|
+
if (list == null || list === []) {
|
|
82
|
+
return list;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (selectedStatus.length > 0) {
|
|
86
|
+
return list?.filter(item => selectedStatus.find(status => item?.statusSelect === status.key));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return list;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}, [selectedStatus]);
|
|
93
|
+
const filterOnPriority = useCallback(list => {
|
|
94
|
+
return filterChip(list, priorityStatus, 'prioritySelect');
|
|
95
|
+
}, [priorityStatus]);
|
|
96
|
+
const filteredList = useMemo(() => filterOnStatus(filterOnType(filterOnPriority(ticketList))), [ticketList, filterOnType, filterOnStatus, filterOnPriority]);
|
|
97
|
+
return (<Screen removeSpaceOnTop={true}>
|
|
98
|
+
<HeaderContainer expandableFilter={true} fixedItems={<View style={styles.headerContainer}>
|
|
99
|
+
<TicketSearchBar showDetailsPopup={false} oneFilter={true} placeholderKey={I18n.t('Helpdesk_Ticket')} team={true}/>
|
|
100
|
+
</View>} chipComponent={<ChipSelect mode="multi" marginHorizontal={4} width={Dimensions.get('window').width * 0.3} onChangeValue={chiplist => setPriorityStatus(chiplist)} selectionItems={Ticket.getPriorityList(Colors, I18n)}/>}>
|
|
101
|
+
<View style={styles.headerContainer}>
|
|
102
|
+
<MultiValuePicker listItems={ticketStatusListItems} title={I18n.t('Helpdesk_Status')} onValueChange={statusList => setSelectedStatus(statusList)}/>
|
|
103
|
+
<MultiValuePicker listItems={ticketTypeListItems} title={I18n.t('Helpdesk_Type')} onValueChange={typeList => setSelectedType(typeList)}/>
|
|
104
|
+
</View>
|
|
105
|
+
</HeaderContainer>
|
|
106
|
+
<ScrollList loadingList={loadingTicket} data={filteredList} renderItem={({ item }) => (<TicketCard style={styles.item} ticketSeq={item.ticketSeq} subject={item.subject} progressSelect={item.progressSelect} ticketType={item.ticketType} statusSelect={item.statusSelect} deadlineDateT={item.deadlineDateT} responsibleUser={item?.responsibleUser?.fullName} prioritySelect={item.prioritySelect} duration={item.duration} allTicketType={ticketTypeList} assignedToUser={item?.assignedToUser?.fullName} onPress={() => navigation.navigate('TicketDetailsScreen', {
|
|
107
|
+
idTicket: item.id,
|
|
108
|
+
})}/>)} fetchData={fetchTicketsAPI} moreLoading={moreLoading} isListEnd={isListEnd} translator={I18n.t}/>
|
|
109
|
+
</Screen>);
|
|
110
|
+
};
|
|
111
|
+
const styles = StyleSheet.create({
|
|
112
|
+
item: {
|
|
113
|
+
marginHorizontal: 12,
|
|
114
|
+
marginVertical: 4,
|
|
115
|
+
},
|
|
116
|
+
headerContainer: {
|
|
117
|
+
alignItems: 'center',
|
|
118
|
+
zIndex: 30,
|
|
119
|
+
},
|
|
120
|
+
toggleSwitchContainer: { width: '90%', height: 40 },
|
|
121
|
+
toggle: { width: '54%', height: 38, borderRadius: 13 },
|
|
122
|
+
});
|
|
123
|
+
export default MyTeamTicketListScreen;
|
|
124
|
+
//# sourceMappingURL=MyTeamTicketListScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyTeamTicketListScreen.js","sourceRoot":"","sources":["../../src/screens/MyTeamTicketListScreen.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2023 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
19
|
+
import { Dimensions, StyleSheet, View } from 'react-native';
|
|
20
|
+
import { Screen, HeaderContainer, ScrollList, MultiValuePicker, useThemeColor, ChipSelect, } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useDispatch, useSelector, useTranslator, filterChip, } from '@axelor/aos-mobile-core';
|
|
22
|
+
import { fetchTickets, fetchTicketType } from '../features/ticketSlice';
|
|
23
|
+
import { TicketCard, TicketSearchBar } from '../components';
|
|
24
|
+
import { Ticket } from '../types';
|
|
25
|
+
const MyTicketListScreen = ({ navigation }) => {
|
|
26
|
+
const I18n = useTranslator();
|
|
27
|
+
const dispatch = useDispatch();
|
|
28
|
+
const Colors = useThemeColor();
|
|
29
|
+
const { userId } = useSelector(state => state.auth);
|
|
30
|
+
const { ticketList, loadingTicket, moreLoading, isListEnd, ticketTypeList } = useSelector(state => state.ticket);
|
|
31
|
+
const [selectedType, setSelectedType] = useState([]);
|
|
32
|
+
const [selectedStatus, setSelectedStatus] = useState([]);
|
|
33
|
+
const [priorityStatus, setPriorityStatus] = useState([
|
|
34
|
+
{
|
|
35
|
+
color: Ticket.getPriorityColor(Ticket.priority.Low, Colors),
|
|
36
|
+
isActive: true,
|
|
37
|
+
key: 1,
|
|
38
|
+
title: I18n.t('Helpdesk_Priority_Low'),
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
color: Ticket.getPriorityColor(Ticket.priority.Low, Colors),
|
|
42
|
+
isActive: true,
|
|
43
|
+
key: 2,
|
|
44
|
+
title: I18n.t('Helpdesk_Priority_Normal'),
|
|
45
|
+
},
|
|
46
|
+
]);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
dispatch(fetchTicketType());
|
|
49
|
+
}, [dispatch]);
|
|
50
|
+
const fetchTicketsAPI = useCallback((page = 0) => {
|
|
51
|
+
dispatch(fetchTickets({ userId: userId, page: page }));
|
|
52
|
+
}, [dispatch, userId]);
|
|
53
|
+
const ticketTypeListItems = useMemo(() => {
|
|
54
|
+
return ticketTypeList
|
|
55
|
+
? ticketTypeList.map((type, index) => {
|
|
56
|
+
return {
|
|
57
|
+
title: type.name,
|
|
58
|
+
color: Ticket.getTypeColor(index, Colors),
|
|
59
|
+
key: type.id,
|
|
60
|
+
};
|
|
61
|
+
})
|
|
62
|
+
: [];
|
|
63
|
+
}, [ticketTypeList, Colors]);
|
|
64
|
+
const ticketStatusListItems = useMemo(() => {
|
|
65
|
+
return Ticket.getStatusList(Colors, I18n);
|
|
66
|
+
}, [Colors, I18n]);
|
|
67
|
+
const filterOnType = useCallback(list => {
|
|
68
|
+
if (list == null || list === []) {
|
|
69
|
+
return list;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (selectedType.length > 0) {
|
|
73
|
+
return list?.filter(item => selectedType.find(status => item?.ticketType?.id === status.key));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return list;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}, [selectedType]);
|
|
80
|
+
const filterOnStatus = useCallback(list => {
|
|
81
|
+
if (list == null || list === []) {
|
|
82
|
+
return list;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (selectedStatus.length > 0) {
|
|
86
|
+
return list?.filter(item => selectedStatus.find(status => item?.statusSelect === status.key));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return list;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}, [selectedStatus]);
|
|
93
|
+
const filterOnPriority = useCallback(list => {
|
|
94
|
+
return filterChip(list, priorityStatus, 'prioritySelect');
|
|
95
|
+
}, [priorityStatus]);
|
|
96
|
+
const filteredList = useMemo(() => filterOnStatus(filterOnType(filterOnPriority(ticketList))), [ticketList, filterOnType, filterOnStatus, filterOnPriority]);
|
|
97
|
+
return (<Screen removeSpaceOnTop={true}>
|
|
98
|
+
<HeaderContainer expandableFilter={true} fixedItems={<View style={styles.headerContainer}>
|
|
99
|
+
<TicketSearchBar showDetailsPopup={false} oneFilter={true} placeholderKey={I18n.t('Helpdesk_Ticket')}/>
|
|
100
|
+
</View>} chipComponent={<ChipSelect mode="multi" marginHorizontal={4} width={Dimensions.get('window').width * 0.3} onChangeValue={chiplist => setPriorityStatus(chiplist)} selectionItems={Ticket.getPriorityList(Colors, I18n)}/>}>
|
|
101
|
+
<View style={styles.headerContainer}>
|
|
102
|
+
<MultiValuePicker listItems={ticketStatusListItems} title={I18n.t('Helpdesk_Status')} onValueChange={statusList => setSelectedStatus(statusList)}/>
|
|
103
|
+
<MultiValuePicker listItems={ticketTypeListItems} title={I18n.t('Helpdesk_Type')} onValueChange={typeList => setSelectedType(typeList)}/>
|
|
104
|
+
</View>
|
|
105
|
+
</HeaderContainer>
|
|
106
|
+
<ScrollList loadingList={loadingTicket} data={filteredList} renderItem={({ item }) => (<TicketCard style={styles.item} ticketSeq={item.ticketSeq} subject={item.subject} progressSelect={item.progressSelect} ticketType={item.ticketType} statusSelect={item.statusSelect} deadlineDateT={item.deadlineDateT} responsibleUser={item?.responsibleUser?.fullName} prioritySelect={item.prioritySelect} duration={item.duration} allTicketType={ticketTypeList} onPress={() => navigation.navigate('TicketDetailsScreen', {
|
|
107
|
+
idTicket: item.id,
|
|
108
|
+
})}/>)} fetchData={fetchTicketsAPI} moreLoading={moreLoading} isListEnd={isListEnd} translator={I18n.t}/>
|
|
109
|
+
</Screen>);
|
|
110
|
+
};
|
|
111
|
+
const styles = StyleSheet.create({
|
|
112
|
+
item: {
|
|
113
|
+
marginHorizontal: 12,
|
|
114
|
+
marginVertical: 4,
|
|
115
|
+
},
|
|
116
|
+
headerContainer: {
|
|
117
|
+
alignItems: 'center',
|
|
118
|
+
zIndex: 30,
|
|
119
|
+
},
|
|
120
|
+
toggleSwitchContainer: { width: '90%', height: 40 },
|
|
121
|
+
toggle: { width: '54%', height: 38, borderRadius: 13 },
|
|
122
|
+
});
|
|
123
|
+
export default MyTicketListScreen;
|
|
124
|
+
//# sourceMappingURL=MyTicketListScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyTicketListScreen.js","sourceRoot":"","sources":["../../src/screens/MyTicketListScreen.js"],"names":[],"mappings":"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"}
|