@plusscommunities/pluss-maintenance-app 6.0.11 → 6.0.12-beta.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.
Files changed (58) hide show
  1. package/dist/module/actions/JobActions.js +44 -1
  2. package/dist/module/actions/JobActions.js.map +1 -1
  3. package/dist/module/actions/types.js +3 -0
  4. package/dist/module/actions/types.js.map +1 -1
  5. package/dist/module/apis/index.js +2 -0
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/apis/maintenanceActions.js +21 -6
  8. package/dist/module/apis/maintenanceActions.js.map +1 -1
  9. package/dist/module/components/FilterPopupMenu.js +34 -18
  10. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  11. package/dist/module/components/MaintenanceList.js +47 -56
  12. package/dist/module/components/MaintenanceList.js.map +1 -1
  13. package/dist/module/components/MaintenanceListItem.js +39 -26
  14. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  15. package/dist/module/components/MaintenanceWidgetItem.js +12 -12
  16. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  17. package/dist/module/components/PrioritySelectorPopup.js +82 -0
  18. package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
  19. package/dist/module/components/StatusSelectorPopup.js +9 -14
  20. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  21. package/dist/module/components/WidgetSmall.js +7 -3
  22. package/dist/module/components/WidgetSmall.js.map +1 -1
  23. package/dist/module/helper.js +39 -25
  24. package/dist/module/helper.js.map +1 -1
  25. package/dist/module/reducers/JobsReducer.js +31 -2
  26. package/dist/module/reducers/JobsReducer.js.map +1 -1
  27. package/dist/module/screens/RequestDetail.js +90 -18
  28. package/dist/module/screens/RequestDetail.js.map +1 -1
  29. package/dist/module/screens/RequestNotes.js +335 -19
  30. package/dist/module/screens/RequestNotes.js.map +1 -1
  31. package/dist/module/values.config.a.js +6 -1
  32. package/dist/module/values.config.a.js.map +1 -1
  33. package/dist/module/values.config.default.js +6 -1
  34. package/dist/module/values.config.default.js.map +1 -1
  35. package/dist/module/values.config.forms.js +6 -1
  36. package/dist/module/values.config.forms.js.map +1 -1
  37. package/dist/module/values.config.js +6 -1
  38. package/dist/module/values.config.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/actions/JobActions.js +53 -1
  41. package/src/actions/types.js +4 -0
  42. package/src/apis/index.js +4 -0
  43. package/src/apis/maintenanceActions.js +18 -6
  44. package/src/components/FilterPopupMenu.js +40 -21
  45. package/src/components/MaintenanceList.js +38 -47
  46. package/src/components/MaintenanceListItem.js +35 -21
  47. package/src/components/MaintenanceWidgetItem.js +16 -12
  48. package/src/components/PrioritySelectorPopup.js +79 -0
  49. package/src/components/StatusSelectorPopup.js +8 -14
  50. package/src/components/WidgetSmall.js +5 -3
  51. package/src/helper.js +50 -21
  52. package/src/reducers/JobsReducer.js +25 -1
  53. package/src/screens/RequestDetail.js +89 -26
  54. package/src/screens/RequestNotes.js +348 -28
  55. package/src/values.config.a.js +5 -0
  56. package/src/values.config.default.js +5 -0
  57. package/src/values.config.forms.js +5 -0
  58. package/src/values.config.js +5 -0
@@ -1 +1 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName"],"sources":["values.config.a.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceA',\n aliases: ['maintenanceRequestA'],\n reducerKey: 'jobsA',\n serviceKey: 'maintenanceA',\n updateKey: 'jobsA',\n commentKey: 'maintenanceA',\n actionJobsLoaded: 'JOBS_LOADEDA',\n actionJobAdded: 'JOB_ADDEDA',\n actionJobsAdded: 'JOBS_ADDEDA',\n screenMaintenance: 'maintenanceA',\n screenRequestDetail: 'requestDetailA',\n screenServiceRequest: 'serviceRequestA',\n screenJobTypePicker: 'jobTypePickerA',\n screenRequestNotes: 'requestNotesA',\n permissionMaintenanceTracking: 'maintenanceTrackingA',\n permissionMaintenanceAssignment: 'maintenanceAssignmentA',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request A',\n textAddMenuTitle: 'Request A',\n textMoreMenuTitle: 'Request A',\n textKioskActionTitle: 'Request A',\n textEntityName: 'Job',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE,CAAC,qBAAqB,CAAC;EAChCC,UAAU,EAAE,OAAO;EACnBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,OAAO;EAClBC,UAAU,EAAE,cAAc;EAC1BC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,eAAe,EAAE,aAAa;EAC9BC,iBAAiB,EAAE,cAAc;EACjCC,mBAAmB,EAAE,gBAAgB;EACrCC,oBAAoB,EAAE,iBAAiB;EACvCC,mBAAmB,EAAE,gBAAgB;EACrCC,kBAAkB,EAAE,eAAe;EACnCC,6BAA6B,EAAE,sBAAsB;EACrDC,+BAA+B,EAAE,wBAAwB;EACzDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,WAAW;EAC7BC,gBAAgB,EAAE,WAAW;EAC7BC,iBAAiB,EAAE,WAAW;EAC9BC,oBAAoB,EAAE,WAAW;EACjCC,cAAc,EAAE;AAClB,CAAC;AAED,SAAS3B,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","actionJobsStatusesLoaded","actionJobsHideSeen","actionJobFilterLoaded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","stringConfigJobStatus","stringConfigHideSeen"],"sources":["values.config.a.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceA',\n aliases: ['maintenanceRequestA'],\n reducerKey: 'jobsA',\n serviceKey: 'maintenanceA',\n updateKey: 'jobsA',\n commentKey: 'maintenanceA',\n actionJobsLoaded: 'JOBS_LOADEDA',\n actionJobAdded: 'JOB_ADDEDA',\n actionJobsAdded: 'JOBS_ADDEDA',\n actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDA',\n actionJobsHideSeen: 'JOBS_HIDE_SEENA',\n actionJobFilterLoaded: 'JOBS_FILTER_LOADEDA',\n screenMaintenance: 'maintenanceA',\n screenRequestDetail: 'requestDetailA',\n screenServiceRequest: 'serviceRequestA',\n screenJobTypePicker: 'jobTypePickerA',\n screenRequestNotes: 'requestNotesA',\n permissionMaintenanceTracking: 'maintenanceTrackingA',\n permissionMaintenanceAssignment: 'maintenanceAssignmentA',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request A',\n textAddMenuTitle: 'Request A',\n textMoreMenuTitle: 'Request A',\n textKioskActionTitle: 'Request A',\n textEntityName: 'Job',\n stringConfigJobStatus: 'maintenanceJobStatusA',\n stringConfigHideSeen: 'maintenanceDisableSeenA',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE,CAAC,qBAAqB,CAAC;EAChCC,UAAU,EAAE,OAAO;EACnBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,OAAO;EAClBC,UAAU,EAAE,cAAc;EAC1BC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,eAAe,EAAE,aAAa;EAC9BC,wBAAwB,EAAE,uBAAuB;EACjDC,kBAAkB,EAAE,iBAAiB;EACrCC,qBAAqB,EAAE,qBAAqB;EAC5CC,iBAAiB,EAAE,cAAc;EACjCC,mBAAmB,EAAE,gBAAgB;EACrCC,oBAAoB,EAAE,iBAAiB;EACvCC,mBAAmB,EAAE,gBAAgB;EACrCC,kBAAkB,EAAE,eAAe;EACnCC,6BAA6B,EAAE,sBAAsB;EACrDC,+BAA+B,EAAE,wBAAwB;EACzDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,WAAW;EAC7BC,gBAAgB,EAAE,WAAW;EAC7BC,iBAAiB,EAAE,WAAW;EAC9BC,oBAAoB,EAAE,WAAW;EACjCC,cAAc,EAAE,KAAK;EACrBC,qBAAqB,EAAE,uBAAuB;EAC9CC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAAShC,MAAM","ignoreList":[]}
@@ -8,6 +8,9 @@ const values = {
8
8
  actionJobsLoaded: 'JOBS_LOADED',
9
9
  actionJobAdded: 'JOB_ADDED',
10
10
  actionJobsAdded: 'JOBS_ADDED',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEEN',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
11
14
  screenMaintenance: 'maintenance',
12
15
  screenRequestDetail: 'requestDetail',
13
16
  screenServiceRequest: 'serviceRequest',
@@ -31,7 +34,9 @@ const values = {
31
34
  textJobType: 'Request Type',
32
35
  emptyRequestsStaff: 'No active Requests',
33
36
  emptyRequestsUser: 'Your Requests will show here',
34
- forceCustomFields: false
37
+ forceCustomFields: false,
38
+ stringConfigJobStatus: 'maintenanceJobStatus',
39
+ stringConfigHideSeen: 'maintenanceDisableSeen'
35
40
  };
36
41
  export { values };
37
42
  //# sourceMappingURL=values.config.default.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields"],"sources":["values.config.default.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\n commentKey: 'maintenancerequest',\n actionJobsLoaded: 'JOBS_LOADED',\n actionJobAdded: 'JOB_ADDED',\n actionJobsAdded: 'JOBS_ADDED',\n screenMaintenance: 'maintenance',\n screenRequestDetail: 'requestDetail',\n screenServiceRequest: 'serviceRequest',\n screenJobTypePicker: 'jobTypePicker',\n screenRequestNotes: 'requestNotes',\n permissionMaintenanceTracking: 'maintenanceTracking',\n permissionMaintenanceAssignment: 'maintenanceAssignment',\n iconGridMenu: 'maintenance',\n gridViewBox: '0 0 30 30',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n hasMoreOption: true,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\n textEntityName: 'Job',\n textJobType: 'Request Type',\n emptyRequestsStaff: 'No active Requests',\n emptyRequestsUser: 'Your Requests will show here',\n forceCustomFields: false,\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,aAAa;EACzBC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,MAAM;EAClBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,oBAAoB;EAChCC,gBAAgB,EAAE,aAAa;EAC/BC,cAAc,EAAE,WAAW;EAC3BC,eAAe,EAAE,YAAY;EAC7BC,iBAAiB,EAAE,aAAa;EAChCC,mBAAmB,EAAE,eAAe;EACpCC,oBAAoB,EAAE,gBAAgB;EACtCC,mBAAmB,EAAE,eAAe;EACpCC,kBAAkB,EAAE,cAAc;EAClCC,6BAA6B,EAAE,qBAAqB;EACpDC,+BAA+B,EAAE,uBAAuB;EACxDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,WAAW;EACxBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,aAAa,EAAE,IAAI;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,SAAS;EAC/BC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAE,cAAc;EAC3BC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,8BAA8B;EACjDC,iBAAiB,EAAE;AACrB,CAAC;AAED,SAASjC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","actionJobsStatusesLoaded","actionJobsHideSeen","actionJobFilterLoaded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields","stringConfigJobStatus","stringConfigHideSeen"],"sources":["values.config.default.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\n commentKey: 'maintenancerequest',\n actionJobsLoaded: 'JOBS_LOADED',\n actionJobAdded: 'JOB_ADDED',\n actionJobsAdded: 'JOBS_ADDED',\n actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',\n actionJobsHideSeen: 'JOBS_HIDE_SEEN',\n actionJobFilterLoaded: 'JOBS_FILTER_LOADED',\n screenMaintenance: 'maintenance',\n screenRequestDetail: 'requestDetail',\n screenServiceRequest: 'serviceRequest',\n screenJobTypePicker: 'jobTypePicker',\n screenRequestNotes: 'requestNotes',\n permissionMaintenanceTracking: 'maintenanceTracking',\n permissionMaintenanceAssignment: 'maintenanceAssignment',\n iconGridMenu: 'maintenance',\n gridViewBox: '0 0 30 30',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n hasMoreOption: true,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\n textEntityName: 'Job',\n textJobType: 'Request Type',\n emptyRequestsStaff: 'No active Requests',\n emptyRequestsUser: 'Your Requests will show here',\n forceCustomFields: false,\n stringConfigJobStatus: 'maintenanceJobStatus',\n stringConfigHideSeen: 'maintenanceDisableSeen',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,aAAa;EACzBC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,MAAM;EAClBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,oBAAoB;EAChCC,gBAAgB,EAAE,aAAa;EAC/BC,cAAc,EAAE,WAAW;EAC3BC,eAAe,EAAE,YAAY;EAC7BC,wBAAwB,EAAE,sBAAsB;EAChDC,kBAAkB,EAAE,gBAAgB;EACpCC,qBAAqB,EAAE,oBAAoB;EAC3CC,iBAAiB,EAAE,aAAa;EAChCC,mBAAmB,EAAE,eAAe;EACpCC,oBAAoB,EAAE,gBAAgB;EACtCC,mBAAmB,EAAE,eAAe;EACpCC,kBAAkB,EAAE,cAAc;EAClCC,6BAA6B,EAAE,qBAAqB;EACpDC,+BAA+B,EAAE,uBAAuB;EACxDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,WAAW;EACxBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,aAAa,EAAE,IAAI;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,SAAS;EAC/BC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAE,cAAc;EAC3BC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,8BAA8B;EACjDC,iBAAiB,EAAE,KAAK;EACxBC,qBAAqB,EAAE,sBAAsB;EAC7CC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAAStC,MAAM","ignoreList":[]}
@@ -8,6 +8,9 @@ const values = {
8
8
  actionJobsLoaded: 'JOBS_LOADEDForms',
9
9
  actionJobAdded: 'JOB_ADDEDForms',
10
10
  actionJobsAdded: 'JOBS_ADDEDForms',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDForms',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEENForms',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADEDForms',
11
14
  screenMaintenance: 'maintenanceForms',
12
15
  screenRequestDetail: 'requestDetailForms',
13
16
  screenServiceRequest: 'serviceRequestForms',
@@ -31,7 +34,9 @@ const values = {
31
34
  textJobType: 'Form',
32
35
  emptyRequestsStaff: 'No active Form Submissions',
33
36
  emptyRequestsUser: 'Your Form Submissions will show here',
34
- forceCustomFields: true
37
+ forceCustomFields: true,
38
+ stringConfigJobStatus: 'maintenanceJobStatusForms',
39
+ stringConfigHideSeen: 'maintenanceDisableSeenForms'
35
40
  };
36
41
  export { values };
37
42
  //# sourceMappingURL=values.config.forms.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields"],"sources":["values.config.forms.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceForms',\n aliases: ['maintenanceRequest'],\n reducerKey: 'maintenanceForms',\n serviceKey: 'maintenanceForms',\n updateKey: 'jobsForms',\n commentKey: 'maintenanceForms',\n actionJobsLoaded: 'JOBS_LOADEDForms',\n actionJobAdded: 'JOB_ADDEDForms',\n actionJobsAdded: 'JOBS_ADDEDForms',\n screenMaintenance: 'maintenanceForms',\n screenRequestDetail: 'requestDetailForms',\n screenServiceRequest: 'serviceRequestForms',\n screenJobTypePicker: 'jobTypePickerForms',\n screenRequestNotes: 'requestNotesForms',\n permissionMaintenanceTracking: 'maintenanceTrackingForms',\n permissionMaintenanceAssignment: 'maintenanceAssignmentForms',\n iconGridMenu: 'form',\n gridViewBox: '0 0 256 256',\n iconAddMenu: 'form',\n iconKioskAction: 'form',\n hasMoreOption: false,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Forms',\n textAddMenuTitle: 'Form Submission',\n textMoreMenuTitle: 'Forms',\n textKioskActionTitle: 'Forms',\n textEntityName: 'Form',\n textJobType: 'Form',\n emptyRequestsStaff: 'No active Form Submissions',\n emptyRequestsUser: 'Your Form Submissions will show here',\n forceCustomFields: true,\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,kBAAkB;EAC9BC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,kBAAkB;EAC9BC,UAAU,EAAE,kBAAkB;EAC9BC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE,kBAAkB;EAC9BC,gBAAgB,EAAE,kBAAkB;EACpCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,iBAAiB,EAAE,kBAAkB;EACrCC,mBAAmB,EAAE,oBAAoB;EACzCC,oBAAoB,EAAE,qBAAqB;EAC3CC,mBAAmB,EAAE,oBAAoB;EACzCC,kBAAkB,EAAE,mBAAmB;EACvCC,6BAA6B,EAAE,0BAA0B;EACzDC,+BAA+B,EAAE,4BAA4B;EAC7DC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,MAAM;EACvBC,aAAa,EAAE,KAAK;EACpBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,OAAO;EACzBC,gBAAgB,EAAE,iBAAiB;EACnCC,iBAAiB,EAAE,OAAO;EAC1BC,oBAAoB,EAAE,OAAO;EAC7BC,cAAc,EAAE,MAAM;EACtBC,WAAW,EAAE,MAAM;EACnBC,kBAAkB,EAAE,4BAA4B;EAChDC,iBAAiB,EAAE,sCAAsC;EACzDC,iBAAiB,EAAE;AACrB,CAAC;AAED,SAASjC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","actionJobsStatusesLoaded","actionJobsHideSeen","actionJobFilterLoaded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields","stringConfigJobStatus","stringConfigHideSeen"],"sources":["values.config.forms.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceForms',\n aliases: ['maintenanceRequest'],\n reducerKey: 'maintenanceForms',\n serviceKey: 'maintenanceForms',\n updateKey: 'jobsForms',\n commentKey: 'maintenanceForms',\n actionJobsLoaded: 'JOBS_LOADEDForms',\n actionJobAdded: 'JOB_ADDEDForms',\n actionJobsAdded: 'JOBS_ADDEDForms',\n actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDForms',\n actionJobsHideSeen: 'JOBS_HIDE_SEENForms',\n actionJobFilterLoaded: 'JOBS_FILTER_LOADEDForms',\n screenMaintenance: 'maintenanceForms',\n screenRequestDetail: 'requestDetailForms',\n screenServiceRequest: 'serviceRequestForms',\n screenJobTypePicker: 'jobTypePickerForms',\n screenRequestNotes: 'requestNotesForms',\n permissionMaintenanceTracking: 'maintenanceTrackingForms',\n permissionMaintenanceAssignment: 'maintenanceAssignmentForms',\n iconGridMenu: 'form',\n gridViewBox: '0 0 256 256',\n iconAddMenu: 'form',\n iconKioskAction: 'form',\n hasMoreOption: false,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Forms',\n textAddMenuTitle: 'Form Submission',\n textMoreMenuTitle: 'Forms',\n textKioskActionTitle: 'Forms',\n textEntityName: 'Form',\n textJobType: 'Form',\n emptyRequestsStaff: 'No active Form Submissions',\n emptyRequestsUser: 'Your Form Submissions will show here',\n forceCustomFields: true,\n stringConfigJobStatus: 'maintenanceJobStatusForms',\n stringConfigHideSeen: 'maintenanceDisableSeenForms',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,kBAAkB;EAC9BC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,kBAAkB;EAC9BC,UAAU,EAAE,kBAAkB;EAC9BC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE,kBAAkB;EAC9BC,gBAAgB,EAAE,kBAAkB;EACpCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,wBAAwB,EAAE,2BAA2B;EACrDC,kBAAkB,EAAE,qBAAqB;EACzCC,qBAAqB,EAAE,yBAAyB;EAChDC,iBAAiB,EAAE,kBAAkB;EACrCC,mBAAmB,EAAE,oBAAoB;EACzCC,oBAAoB,EAAE,qBAAqB;EAC3CC,mBAAmB,EAAE,oBAAoB;EACzCC,kBAAkB,EAAE,mBAAmB;EACvCC,6BAA6B,EAAE,0BAA0B;EACzDC,+BAA+B,EAAE,4BAA4B;EAC7DC,YAAY,EAAE,MAAM;EACpBC,WAAW,EAAE,aAAa;EAC1BC,WAAW,EAAE,MAAM;EACnBC,eAAe,EAAE,MAAM;EACvBC,aAAa,EAAE,KAAK;EACpBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,OAAO;EACzBC,gBAAgB,EAAE,iBAAiB;EACnCC,iBAAiB,EAAE,OAAO;EAC1BC,oBAAoB,EAAE,OAAO;EAC7BC,cAAc,EAAE,MAAM;EACtBC,WAAW,EAAE,MAAM;EACnBC,kBAAkB,EAAE,4BAA4B;EAChDC,iBAAiB,EAAE,sCAAsC;EACzDC,iBAAiB,EAAE,IAAI;EACvBC,qBAAqB,EAAE,2BAA2B;EAClDC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAAStC,MAAM","ignoreList":[]}
@@ -8,6 +8,9 @@ const values = {
8
8
  actionJobsLoaded: 'JOBS_LOADED',
9
9
  actionJobAdded: 'JOB_ADDED',
10
10
  actionJobsAdded: 'JOBS_ADDED',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEEN',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
11
14
  screenMaintenance: 'maintenance',
12
15
  screenRequestDetail: 'requestDetail',
13
16
  screenServiceRequest: 'serviceRequest',
@@ -31,7 +34,9 @@ const values = {
31
34
  textJobType: 'Request Type',
32
35
  emptyRequestsStaff: 'No active Requests',
33
36
  emptyRequestsUser: 'Your Requests will show here',
34
- forceCustomFields: false
37
+ forceCustomFields: false,
38
+ stringConfigJobStatus: 'maintenanceJobStatus',
39
+ stringConfigHideSeen: 'maintenanceDisableSeen'
35
40
  };
36
41
  export { values };
37
42
  //# sourceMappingURL=values.config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields"],"sources":["values.config.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\n commentKey: 'maintenancerequest',\n actionJobsLoaded: 'JOBS_LOADED',\n actionJobAdded: 'JOB_ADDED',\n actionJobsAdded: 'JOBS_ADDED',\n screenMaintenance: 'maintenance',\n screenRequestDetail: 'requestDetail',\n screenServiceRequest: 'serviceRequest',\n screenJobTypePicker: 'jobTypePicker',\n screenRequestNotes: 'requestNotes',\n permissionMaintenanceTracking: 'maintenanceTracking',\n permissionMaintenanceAssignment: 'maintenanceAssignment',\n iconGridMenu: 'maintenance',\n gridViewBox: '0 0 30 30',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n hasMoreOption: true,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\n textEntityName: 'Job',\n textJobType: 'Request Type',\n emptyRequestsStaff: 'No active Requests',\n emptyRequestsUser: 'Your Requests will show here',\n forceCustomFields: false,\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,aAAa;EACzBC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,MAAM;EAClBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,oBAAoB;EAChCC,gBAAgB,EAAE,aAAa;EAC/BC,cAAc,EAAE,WAAW;EAC3BC,eAAe,EAAE,YAAY;EAC7BC,iBAAiB,EAAE,aAAa;EAChCC,mBAAmB,EAAE,eAAe;EACpCC,oBAAoB,EAAE,gBAAgB;EACtCC,mBAAmB,EAAE,eAAe;EACpCC,kBAAkB,EAAE,cAAc;EAClCC,6BAA6B,EAAE,qBAAqB;EACpDC,+BAA+B,EAAE,uBAAuB;EACxDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,WAAW;EACxBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,aAAa,EAAE,IAAI;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,SAAS;EAC/BC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAE,cAAc;EAC3BC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,8BAA8B;EACjDC,iBAAiB,EAAE;AACrB,CAAC;AAED,SAASjC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","commentKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","actionJobsStatusesLoaded","actionJobsHideSeen","actionJobFilterLoaded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","gridViewBox","iconAddMenu","iconKioskAction","hasMoreOption","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName","textJobType","emptyRequestsStaff","emptyRequestsUser","forceCustomFields","stringConfigJobStatus","stringConfigHideSeen"],"sources":["values.config.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\n commentKey: 'maintenancerequest',\n actionJobsLoaded: 'JOBS_LOADED',\n actionJobAdded: 'JOB_ADDED',\n actionJobsAdded: 'JOBS_ADDED',\n actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',\n actionJobsHideSeen: 'JOBS_HIDE_SEEN',\n actionJobFilterLoaded: 'JOBS_FILTER_LOADED',\n screenMaintenance: 'maintenance',\n screenRequestDetail: 'requestDetail',\n screenServiceRequest: 'serviceRequest',\n screenJobTypePicker: 'jobTypePicker',\n screenRequestNotes: 'requestNotes',\n permissionMaintenanceTracking: 'maintenanceTracking',\n permissionMaintenanceAssignment: 'maintenanceAssignment',\n iconGridMenu: 'maintenance',\n gridViewBox: '0 0 30 30',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n hasMoreOption: true,\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\n textEntityName: 'Job',\n textJobType: 'Request Type',\n emptyRequestsStaff: 'No active Requests',\n emptyRequestsUser: 'Your Requests will show here',\n forceCustomFields: false,\n stringConfigJobStatus: 'maintenanceJobStatus',\n stringConfigHideSeen: 'maintenanceDisableSeen',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,aAAa;EACzBC,OAAO,EAAE,CAAC,oBAAoB,CAAC;EAC/BC,UAAU,EAAE,MAAM;EAClBC,UAAU,EAAE,aAAa;EACzBC,SAAS,EAAE,MAAM;EACjBC,UAAU,EAAE,oBAAoB;EAChCC,gBAAgB,EAAE,aAAa;EAC/BC,cAAc,EAAE,WAAW;EAC3BC,eAAe,EAAE,YAAY;EAC7BC,wBAAwB,EAAE,sBAAsB;EAChDC,kBAAkB,EAAE,gBAAgB;EACpCC,qBAAqB,EAAE,oBAAoB;EAC3CC,iBAAiB,EAAE,aAAa;EAChCC,mBAAmB,EAAE,eAAe;EACpCC,oBAAoB,EAAE,gBAAgB;EACtCC,mBAAmB,EAAE,eAAe;EACpCC,kBAAkB,EAAE,cAAc;EAClCC,6BAA6B,EAAE,qBAAqB;EACpDC,+BAA+B,EAAE,uBAAuB;EACxDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,WAAW;EACxBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,aAAa,EAAE,IAAI;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE,SAAS;EAC/BC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAE,cAAc;EAC3BC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,8BAA8B;EACjDC,iBAAiB,EAAE,KAAK;EACxBC,qBAAqB,EAAE,sBAAsB;EAC7CC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAAStC,MAAM","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-app",
3
- "version": "6.0.11",
3
+ "version": "6.0.12-beta.0",
4
4
  "description": "Extension package to enable maintenance on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -1,4 +1,7 @@
1
- import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from './types';
1
+ import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED, JOBS_STATUSES_LOADED, JOBS_HIDE_SEEN, JOB_FILTER_LOADED } from './types';
2
+ import { stringActions } from '../apis';
3
+ import { values } from '../values.config';
4
+ import { jobStatusOptions } from '../helper';
2
5
 
3
6
  export const jobsLoaded = jobs => {
4
7
  return {
@@ -20,3 +23,52 @@ export const jobsAdded = jobs => {
20
23
  payload: jobs,
21
24
  };
22
25
  };
26
+
27
+ export const jobStatusesUpdate = (site, callback = null) => {
28
+ return dispatch => {
29
+ stringActions
30
+ .getString(site, values.stringConfigJobStatus)
31
+ .then(res => {
32
+ dispatch({
33
+ type: JOBS_STATUSES_LOADED,
34
+ payload: res.data,
35
+ });
36
+ if (callback) callback(res.data);
37
+ })
38
+ .catch(() => {
39
+ dispatch({
40
+ type: JOBS_STATUSES_LOADED,
41
+ payload: jobStatusOptions,
42
+ });
43
+ if (callback) callback(jobStatusOptions);
44
+ });
45
+ };
46
+ };
47
+
48
+ export const jobHideSeenUpdate = (site, callback = null) => {
49
+ return (dispatch) => {
50
+ stringActions
51
+ .getString(site, values.stringConfigHideSeen)
52
+ .then((res) => {
53
+ dispatch({
54
+ type: JOBS_HIDE_SEEN,
55
+ payload: res.data,
56
+ });
57
+ if (callback) callback(res.data);
58
+ })
59
+ .catch((_error) => {
60
+ dispatch({
61
+ type: JOBS_HIDE_SEEN,
62
+ payload: false,
63
+ });
64
+ if (callback) callback(false);
65
+ });
66
+ };
67
+ };
68
+
69
+ export const jobsFilterLoaded = filters => {
70
+ return {
71
+ type: JOB_FILTER_LOADED,
72
+ payload: filters,
73
+ };
74
+ };
@@ -3,3 +3,7 @@ import { values } from '../values.config';
3
3
  export const JOBS_LOADED = values.actionJobsLoaded;
4
4
  export const JOB_ADDED = values.actionJobAdded;
5
5
  export const JOBS_ADDED = values.actionJobsAdded;
6
+ export const JOBS_STATUSES_LOADED = values.actionJobsStatusesLoaded;
7
+ export const JOBS_HIDE_SEEN = values.actionJobsHideSeen;
8
+ export const JOB_FILTER_LOADED = values.actionJobFilterLoaded;
9
+
package/src/apis/index.js CHANGED
@@ -1 +1,5 @@
1
+ import { Apis } from '../core.config';
2
+
3
+ export const stringActions = Apis.stringActions;
4
+
1
5
  export * from './maintenanceActions';
@@ -23,11 +23,14 @@ export const maintenanceActions = {
23
23
  data: { site, status, type },
24
24
  });
25
25
  },
26
- getJobs2: (site, status, type, lastKey) => {
26
+ getJobs2: (site, status, priority, type, lastKey) => {
27
27
  const query = { site };
28
28
  if (status) {
29
29
  query.status = status;
30
30
  }
31
+ if (priority) {
32
+ query.priority = priority;
33
+ }
31
34
  if (type) {
32
35
  query.type = type;
33
36
  }
@@ -39,14 +42,14 @@ export const maintenanceActions = {
39
42
  url: Helper.getUrl(values.serviceKey, 'get/requests', query),
40
43
  });
41
44
  },
42
- getJobsRecursive: (site, status, type, lastKey, jobs = []) => {
45
+ getJobsRecursive: (site, status, priority, type, lastKey, jobs = []) => {
43
46
  return new Promise(resolve => {
44
- maintenanceActions.getJobs2(site, status, type, lastKey).then(jobRes => {
47
+ maintenanceActions.getJobs2(site, status, priority, type, lastKey).then(jobRes => {
45
48
  const newJobs = [...jobs, ...jobRes.data.Items];
46
49
  if (!jobRes.data.LastKey) {
47
50
  return resolve(newJobs);
48
51
  }
49
- return resolve(maintenanceActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));
52
+ return resolve(maintenanceActions.getJobsRecursive(site, status, priority, type, jobRes.data.LastKey, newJobs));
50
53
  });
51
54
  });
52
55
  },
@@ -100,6 +103,13 @@ export const maintenanceActions = {
100
103
  data: { id, status },
101
104
  });
102
105
  },
106
+ editJobPriority: (id, priority) => {
107
+ return Session.authedFunction({
108
+ method: 'POST',
109
+ url: Helper.getUrl(values.serviceKey, 'update/priority'),
110
+ data: { id, priority },
111
+ });
112
+ },
103
113
  assignJob: (jobId, userId) => {
104
114
  return Session.authedFunction({
105
115
  method: 'POST',
@@ -116,7 +126,7 @@ export const maintenanceActions = {
116
126
  url: Helper.getUrl(values.serviceKey, 'get/assignees', { site }),
117
127
  });
118
128
  },
119
- addNote: (jobId, note, attachments) => {
129
+ addNote: (jobId, note, attachments, images) => {
120
130
  return Session.authedFunction({
121
131
  method: 'POST',
122
132
  url: Helper.getUrl(values.serviceKey, 'requests/note'),
@@ -124,11 +134,12 @@ export const maintenanceActions = {
124
134
  id: jobId,
125
135
  note,
126
136
  attachments,
137
+ images,
127
138
  action: 'AddNote',
128
139
  },
129
140
  });
130
141
  },
131
- editNote: (jobId, noteId, note, attachments) => {
142
+ editNote: (jobId, noteId, note, attachments, images) => {
132
143
  return Session.authedFunction({
133
144
  method: 'POST',
134
145
  url: Helper.getUrl(values.serviceKey, 'requests/note'),
@@ -136,6 +147,7 @@ export const maintenanceActions = {
136
147
  id: jobId,
137
148
  note,
138
149
  attachments,
150
+ images,
139
151
  noteId,
140
152
  action: 'EditNote',
141
153
  },
@@ -4,6 +4,8 @@ import { connect } from 'react-redux';
4
4
  import _ from 'lodash';
5
5
  import { maintenanceActions } from '../apis';
6
6
  import { Colours, Helper } from '../core.config';
7
+ import { getJobStatusOptions, getIncompleteJobStatuses, jobPriorityOptions } from '../helper';
8
+ import { values } from '../values.config';
7
9
 
8
10
  const SCREEN_HEIGHT = Dimensions.get('window').height;
9
11
 
@@ -14,31 +16,20 @@ class FilterPopupMenu extends Component {
14
16
  this.state = {
15
17
  types: props.types || [],
16
18
  selectedStatus: props.status || '',
19
+ selectedPriority: props.priority || '',
17
20
  selectedType: props.type || '',
18
21
  selectedAssignee: props.assignee || '',
19
22
  assignees: [],
20
23
  };
21
- this.statusOptions = [
24
+ this.priorityOptions = [
22
25
  {
23
26
  label: 'All',
24
27
  value: '',
25
28
  },
26
- {
27
- label: 'Incomplete',
28
- value: 'Unassigned|In Progress',
29
- },
30
- {
31
- label: 'Open',
32
- value: 'Unassigned',
33
- },
34
- {
35
- label: 'In Progress',
36
- value: 'In Progress',
37
- },
38
- {
39
- label: 'Completed',
40
- value: 'Completed',
41
- },
29
+ ...jobPriorityOptions.map(p => ({
30
+ label: p.label,
31
+ value: p.label,
32
+ }))
42
33
  ];
43
34
  }
44
35
 
@@ -53,6 +44,26 @@ class FilterPopupMenu extends Component {
53
44
  }
54
45
  }
55
46
 
47
+ getStatusOptions = () => {
48
+ const statusOptions = getJobStatusOptions(this.props);
49
+ const options = [
50
+ {
51
+ label: 'All',
52
+ value: '',
53
+ },
54
+ {
55
+ label: 'Incomplete',
56
+ value: `Unassigned|${getIncompleteJobStatuses(this.props).map(s => s.text).join('|')}`,
57
+ },
58
+ ...statusOptions.map(s => ({
59
+ label: s.text,
60
+ value: s.text,
61
+ })),
62
+ ];
63
+ // console.log('getStatusOptions', options);
64
+ return options;
65
+ }
66
+
56
67
  getAssignees = async () => {
57
68
  try {
58
69
  const res = await maintenanceActions.getAssignees(this.props.site);
@@ -93,11 +104,12 @@ class FilterPopupMenu extends Component {
93
104
 
94
105
  onDone = () => {
95
106
  const { onClose } = this.props;
96
- const { selectedStatus, selectedType, selectedAssignee } = this.state;
107
+ const { selectedStatus, selectedPriority, selectedType, selectedAssignee } = this.state;
97
108
  if (onClose)
98
109
  onClose({
99
110
  status: selectedStatus,
100
- statusText: this.statusOptions.find(o => o.value === selectedStatus)?.label,
111
+ statusText: this.getStatusOptions().find(o => o.value === selectedStatus)?.label,
112
+ priority: selectedPriority,
101
113
  type: selectedType,
102
114
  assignee: selectedAssignee,
103
115
  assigneeName: this.state.assignees.find(a => a.value === selectedAssignee)?.label,
@@ -148,15 +160,20 @@ class FilterPopupMenu extends Component {
148
160
  }
149
161
 
150
162
  render() {
163
+ // console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))
164
+ const isStaff = this.props.user.category === 'staff'
165
+ const canFilterAssignee = !_.includes(this.props.user.permissions, values.permissionMaintenanceAssignment);
166
+
151
167
  return (
152
168
  <Modal visible transparent animationType="slide" onRequestClose={this.onDone}>
153
169
  <View style={styles.container}>
154
170
  <View style={styles.menu}>
155
171
  {this.renderTitle()}
156
172
  <ScrollView style={styles.optionContent}>
157
- {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}
173
+ {this.renderOptions('Status', this.getStatusOptions(), 'selectedStatus')}
174
+ {isStaff ? this.renderOptions('Priority', this.priorityOptions, 'selectedPriority') : null}
158
175
  {this.renderOptions('Type', this.state.types, 'selectedType')}
159
- {this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee')}
176
+ {canFilterAssignee ? this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee') : null}
160
177
  </ScrollView>
161
178
  {this.renderCancel()}
162
179
  </View>
@@ -248,8 +265,10 @@ const mapStateToProps = state => {
248
265
  const { user } = state;
249
266
 
250
267
  return {
268
+ user,
251
269
  site: user.site,
252
270
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
271
+ statusTypes: state[values.reducerKey].jobstatuses,
253
272
  };
254
273
  };
255
274
 
@@ -3,53 +3,45 @@ import { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native
3
3
  import _ from 'lodash';
4
4
  import { connect } from 'react-redux';
5
5
  import { maintenanceActions } from '../apis';
6
- import { jobsLoaded, jobAdded, jobsAdded } from '../actions';
6
+ import { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded } from '../actions';
7
7
  import MaintenanceListItem from '../components/MaintenanceListItem';
8
8
  import FilterPopupMenu from './FilterPopupMenu';
9
- import { Components, Colours, Config, Helper } from '../core.config';
9
+ import { Components, Colours, Helper } from '../core.config';
10
10
  import { values } from '../values.config';
11
11
 
12
12
  class MaintenanceList extends Component {
13
13
  constructor(props) {
14
14
  super(props);
15
15
 
16
- this.initialStatus = props.hasPermission ? 'Unassigned|In Progress' : '';
17
- this.initialStatusText = props.hasPermission ? 'Incomplete' : '';
18
-
19
16
  this.state = {
20
17
  types: [],
21
18
  filteredList: props.jobs,
22
19
  loading: false,
23
20
  searchText: '',
24
21
  showFilterPopup: false,
25
- selectedStatus: this.initialStatus,
26
- selectedStatusText: this.initialStatusText,
27
- selectedType: '',
28
- selectedAssignee: '',
29
- selectedAssigneeName: '',
30
22
  };
31
23
  }
32
24
 
33
25
  componentDidMount() {
26
+ this.props.jobStatusesUpdate(this.props.site);
27
+ this.props.jobHideSeenUpdate(this.props.site);
34
28
  this.refresh();
35
29
  this.refreshTypes();
36
-
37
30
  this.resetDataSource();
38
31
  }
39
32
 
40
33
  componentDidUpdate(prevProps) {
41
34
  if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();
42
- if (!_.isEqual(prevProps.jobs, this.props.jobs)) this.resetDataSource();
35
+ if (!_.isEqual(prevProps.jobs, this.props.jobs) || !_.isEqual(prevProps.jobfilters, this.props.jobfilters)) this.resetDataSource();
43
36
  }
44
37
 
45
38
  refresh = () => {
46
39
  this.onLoadingChanged(true, async () => {
47
40
  try {
48
- const { selectedStatus, selectedType } = this.state;
49
- // console.log('filters', { selectedStatus, selectedType });
50
- const res = await maintenanceActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
51
- // console.log('refresh', res?.data);
52
- if (selectedStatus !== this.initialStatus || !_.isEmpty(selectedType)) {
41
+ const { jobfilters } = this.props;
42
+ const res = await maintenanceActions.getJobsRecursive(this.props.site, jobfilters.status, jobfilters.priority, jobfilters.type);
43
+ // console.log('refresh', res ? JSON.stringify(res[0], null, 2) : null);
44
+ if (!_.isEmpty(jobfilters.status) || !_.isEmpty(jobfilters.priority) || !_.isEmpty(jobfilters.type)) {
53
45
  this.props.jobsAdded(res);
54
46
  } else {
55
47
  this.props.jobsLoaded(res);
@@ -96,7 +88,8 @@ class MaintenanceList extends Component {
96
88
  }
97
89
 
98
90
  resetDataSource = (source = '') => {
99
- const { searchText, selectedStatus, selectedType, selectedAssignee } = this.state;
91
+ const { jobfilters } = this.props;
92
+ const { searchText } = this.state;
100
93
  const { jobs } = this.props;
101
94
 
102
95
  let filteredList = jobs;
@@ -111,9 +104,10 @@ class MaintenanceList extends Component {
111
104
  });
112
105
  if (!jobIdMatch) this.fetchJob(searchText);
113
106
  }
114
- if (selectedStatus) filteredList = filteredList.filter(j => selectedStatus.includes(j.status));
115
- if (selectedType) filteredList = filteredList.filter(j => selectedType.includes(j.type));
116
- if (selectedAssignee) filteredList = filteredList.filter(j => selectedAssignee.includes(j.AssigneeId));
107
+ if (jobfilters.status) filteredList = filteredList.filter(j => jobfilters.status.includes(j.status));
108
+ if (jobfilters.priority) filteredList = filteredList.filter(j => jobfilters.priority.includes(j.priority));
109
+ if (jobfilters.type) filteredList = filteredList.filter(j => jobfilters.type.includes(j.type));
110
+ if (jobfilters.assignee) filteredList = filteredList.filter(j => jobfilters.assignee.includes(j.AssigneeId));
117
111
  if (jobIdMatch) {
118
112
  const jobIndex = filteredList.indexOf(jobIdMatch);
119
113
  if (jobIndex > -1) {
@@ -148,33 +142,24 @@ class MaintenanceList extends Component {
148
142
  };
149
143
 
150
144
  onSelectFilter = selected => {
151
- this.setState(
152
- {
153
- selectedStatus: selected.status,
154
- selectedStatusText: selected.statusText,
155
- selectedType: selected.type,
156
- selectedAssignee: selected.assignee,
157
- selectedAssigneeName: selected.assigneeName,
158
- },
159
- () => {
160
- this.resetDataSource();
161
- this.onToggleFilter();
162
- },
163
- );
145
+ this.props.jobsFilterLoaded(selected);
146
+ this.onToggleFilter();
164
147
  };
165
148
 
166
149
  getFilterButtonText = () => {
167
- const { selectedStatus, selectedStatusText, selectedType, selectedAssignee, selectedAssigneeName } = this.state;
150
+ const { jobfilters } = this.props;
168
151
  const filterTexts = [];
169
- if (!_.isEmpty(selectedStatus)) {
170
- filterTexts.push(selectedStatusText);
152
+ if (!_.isEmpty(jobfilters.status)) {
153
+ filterTexts.push(jobfilters.statusText);
171
154
  }
172
-
173
- if (!_.isEmpty(selectedType)) {
174
- filterTexts.push(selectedType);
155
+ if (!_.isEmpty(jobfilters.priority)) {
156
+ filterTexts.push(jobfilters.priority);
157
+ }
158
+ if (!_.isEmpty(jobfilters.type)) {
159
+ filterTexts.push(jobfilters.type);
175
160
  }
176
- if (!_.isEmpty(selectedAssignee)) {
177
- filterTexts.push(selectedAssigneeName);
161
+ if (!_.isEmpty(jobfilters.assignee)) {
162
+ filterTexts.push(jobfilters.assigneeName);
178
163
  }
179
164
  if (_.isEmpty(filterTexts)) {
180
165
  return 'Filter';
@@ -244,16 +229,18 @@ class MaintenanceList extends Component {
244
229
  }
245
230
 
246
231
  renderFilterPopup() {
247
- const { showFilterPopup, types, selectedStatus, selectedType, selectedAssignee } = this.state;
232
+ const { jobfilters } = this.props;
233
+ const { showFilterPopup, types } = this.state;
248
234
  if (!showFilterPopup) return null;
249
235
 
250
236
  return (
251
237
  <FilterPopupMenu
252
238
  site={this.props.site}
253
239
  types={types}
254
- status={selectedStatus}
255
- assignee={selectedAssignee}
256
- type={selectedType}
240
+ status={jobfilters.status}
241
+ priority={jobfilters.priority}
242
+ assignee={jobfilters.assignee}
243
+ type={jobfilters.type}
257
244
  onClose={this.onSelectFilter}
258
245
  />
259
246
  );
@@ -329,7 +316,11 @@ const mapStateToProps = state => {
329
316
  userCategory: user.category,
330
317
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
331
318
  dataUpdated: notifications.dataUpdated[values.updateKey],
319
+ statusTypes: state[values.reducerKey].jobstatuses,
320
+ jobfilters: state[values.reducerKey].jobfilters,
332
321
  };
333
322
  };
334
323
 
335
- export default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded }, null, { forwardRef: true })(MaintenanceList);
324
+ export default connect(mapStateToProps, { jobsLoaded, jobAdded, jobsAdded, jobStatusesUpdate, jobHideSeenUpdate, jobsFilterLoaded }, null, { forwardRef: true })(
325
+ MaintenanceList,
326
+ );