@plusscommunities/pluss-maintenance-app 6.0.5-auth.0 → 6.1.1-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 (71) hide show
  1. package/dist/module/actions/types.js +4 -3
  2. package/dist/module/actions/types.js.map +1 -1
  3. package/dist/module/apis/{maintenanceActions.js → generalActions.js} +51 -33
  4. package/dist/module/apis/generalActions.js.map +1 -0
  5. package/dist/module/apis/index.js +1 -1
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/components/FilterPopupMenu.js +12 -48
  8. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  9. package/dist/module/components/MaintenanceList.js +19 -52
  10. package/dist/module/components/MaintenanceList.js.map +1 -1
  11. package/dist/module/components/MaintenanceListItem.js +13 -8
  12. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  13. package/dist/module/components/MaintenanceWidgetItem.js +9 -4
  14. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  15. package/dist/module/components/StatusSelectorPopup.js +1 -2
  16. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  17. package/dist/module/components/WidgetSmall.js +10 -7
  18. package/dist/module/components/WidgetSmall.js.map +1 -1
  19. package/dist/module/feature.config.js +18 -33
  20. package/dist/module/feature.config.js.map +1 -1
  21. package/dist/module/helper.js +2 -10
  22. package/dist/module/helper.js.map +1 -1
  23. package/dist/module/index.js +15 -10
  24. package/dist/module/index.js.map +1 -1
  25. package/dist/module/reducers/JobsReducer.js +2 -2
  26. package/dist/module/reducers/JobsReducer.js.map +1 -1
  27. package/dist/module/screens/JobTypePicker.js +2 -2
  28. package/dist/module/screens/MaintenancePage.js +9 -5
  29. package/dist/module/screens/MaintenancePage.js.map +1 -1
  30. package/dist/module/screens/RequestDetail.js +39 -128
  31. package/dist/module/screens/RequestDetail.js.map +1 -1
  32. package/dist/module/screens/RequestNotes.js +8 -7
  33. package/dist/module/screens/RequestNotes.js.map +1 -1
  34. package/dist/module/screens/ServiceRequest.js +12 -9
  35. package/dist/module/screens/ServiceRequest.js.map +1 -1
  36. package/dist/module/values.config.a.js +28 -0
  37. package/dist/module/values.config.a.js.map +1 -0
  38. package/dist/module/values.config.b.js +28 -0
  39. package/dist/module/values.config.b.js.map +1 -0
  40. package/dist/module/values.config.c.js +28 -0
  41. package/dist/module/values.config.c.js.map +1 -0
  42. package/dist/module/values.config.d.js +28 -0
  43. package/dist/module/values.config.d.js.map +1 -0
  44. package/dist/module/values.config.default.js +28 -0
  45. package/dist/module/values.config.default.js.map +1 -0
  46. package/dist/module/values.config.js +28 -0
  47. package/dist/module/values.config.js.map +1 -0
  48. package/package.json +13 -9
  49. package/src/actions/types.js +5 -3
  50. package/src/apis/{maintenanceActions.js → generalActions.js} +50 -30
  51. package/src/apis/index.js +1 -1
  52. package/src/components/FilterPopupMenu.js +7 -39
  53. package/src/components/MaintenanceList.js +21 -59
  54. package/src/components/MaintenanceListItem.js +7 -6
  55. package/src/components/MaintenanceWidgetItem.js +3 -2
  56. package/src/components/StatusSelectorPopup.js +1 -2
  57. package/src/components/WidgetSmall.js +7 -4
  58. package/src/feature.config.js +18 -30
  59. package/src/helper.js +2 -11
  60. package/src/index.js +15 -8
  61. package/src/screens/MaintenancePage.js +5 -4
  62. package/src/screens/RequestDetail.js +16 -122
  63. package/src/screens/RequestNotes.js +6 -5
  64. package/src/screens/ServiceRequest.js +8 -6
  65. package/src/values.config.a.js +28 -0
  66. package/src/values.config.b.js +28 -0
  67. package/src/values.config.c.js +28 -0
  68. package/src/values.config.d.js +28 -0
  69. package/src/values.config.default.js +28 -0
  70. package/src/values.config.js +28 -0
  71. package/dist/module/apis/maintenanceActions.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle"],"sources":["values.config.d.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceD',\n aliases: ['maintenanceRequestD'],\n reducerKey: 'jobsD',\n serviceKey: 'maintenanceD',\n updateKey: 'jobsD',\n actionJobsLoaded: 'JOBS_LOADEDD',\n actionJobAdded: 'JOB_ADDEDD',\n actionJobsAdded: 'JOBS_ADDEDD',\n screenMaintenance: 'maintenanceD',\n screenRequestDetail: 'requestDetailD',\n screenServiceRequest: 'serviceRequestD',\n screenJobTypePicker: 'jobTypePickerD',\n screenRequestNotes: 'requestNotesD',\n permissionMaintenanceTracking: 'maintenanceTrackingD',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request D',\n textAddMenuTitle: 'Request D',\n textMoreMenuTitle: 'Request D',\n textKioskActionTitle: 'Request D',\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,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,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;AACxB,CAAC;AAED,SAASxB,MAAM","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenance',
3
+ aliases: ['maintenanceRequest'],
4
+ reducerKey: 'jobs',
5
+ serviceKey: 'maintenance',
6
+ updateKey: 'jobs',
7
+ actionJobsLoaded: 'JOBS_LOADED',
8
+ actionJobAdded: 'JOB_ADDED',
9
+ actionJobsAdded: 'JOBS_ADDED',
10
+ screenMaintenance: 'maintenance',
11
+ screenRequestDetail: 'requestDetail',
12
+ screenServiceRequest: 'serviceRequest',
13
+ screenJobTypePicker: 'jobTypePicker',
14
+ screenRequestNotes: 'requestNotes',
15
+ permissionMaintenanceTracking: 'maintenanceTracking',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request',
23
+ textAddMenuTitle: 'Request',
24
+ textMoreMenuTitle: 'Request',
25
+ textKioskActionTitle: 'Request'
26
+ };
27
+ export { values };
28
+ //# sourceMappingURL=values.config.default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle"],"sources":["values.config.default.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\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 iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\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,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,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,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAASxB,MAAM","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenance',
3
+ aliases: ['maintenanceRequest'],
4
+ reducerKey: 'jobs',
5
+ serviceKey: 'maintenance',
6
+ updateKey: 'jobs',
7
+ actionJobsLoaded: 'JOBS_LOADED',
8
+ actionJobAdded: 'JOB_ADDED',
9
+ actionJobsAdded: 'JOBS_ADDED',
10
+ screenMaintenance: 'maintenance',
11
+ screenRequestDetail: 'requestDetail',
12
+ screenServiceRequest: 'serviceRequest',
13
+ screenJobTypePicker: 'jobTypePicker',
14
+ screenRequestNotes: 'requestNotes',
15
+ permissionMaintenanceTracking: 'maintenanceTracking',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request',
23
+ textAddMenuTitle: 'Request',
24
+ textMoreMenuTitle: 'Request',
25
+ textKioskActionTitle: 'Request'
26
+ };
27
+ export { values };
28
+ //# sourceMappingURL=values.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle"],"sources":["values.config.js"],"sourcesContent":["const values = {\n featureKey: 'maintenance',\n aliases: ['maintenanceRequest'],\n reducerKey: 'jobs',\n serviceKey: 'maintenance',\n updateKey: 'jobs',\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 iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request',\n textAddMenuTitle: 'Request',\n textMoreMenuTitle: 'Request',\n textKioskActionTitle: 'Request',\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,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,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,SAAS;EAC3BC,gBAAgB,EAAE,SAAS;EAC3BC,iBAAiB,EAAE,SAAS;EAC5BC,oBAAoB,EAAE;AACxB,CAAC;AAED,SAASxB,MAAM","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-app",
3
- "version": "6.0.5-auth.0",
3
+ "version": "6.1.1-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",
@@ -15,17 +15,19 @@
15
15
  "patch": "npm version patch",
16
16
  "betaupload": "npm run build && npm publish --access public --tag beta",
17
17
  "betaupload:p": "npm run betapatch && npm run betaupload",
18
- "authpatch": "npm version prepatch --preid=auth",
19
- "authupload": "npm run build && npm publish --access public --tag auth",
20
- "authupload:p": "npm run authpatch && npm run authupload",
21
18
  "upload": "npm run build && npm publish --access public",
22
- "upload:p": "npm run patch && npm run upload"
19
+ "upload:p": "npm run patch && npm run upload",
20
+ "copy:add": "run(){ ext=${1:-default}; test -f src/values.config.$ext.js || cp src/values.config.default.js src/values.config.$ext.js; }; run",
21
+ "copy:get": "echo $npm_package_name",
22
+ "copy:set": "run(){ target='\\@plusscommunities\\/pluss-maintenance-app'; ext=${1:-default}; [ $ext == 'default' ] && replace=$target || replace=$target'-'$ext; echo 'Setting target to '$replace; test -f src/values.config.$ext.js && cp -f src/values.config.$ext.js src/values.config.js; sed -i '' -e 's/'$target'.*\"/'$replace'\"/g' package.json; }; run",
23
+ "copy:uploadnopatch": "for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run upload; done; npm run copy:set;",
24
+ "copy:upload": "npm run patch; npm run copy:uploadnopatch;",
25
+ "copy:betaupload": "npm run betapatch; for file in `ls ./src/values.config.*.js`; do dup=`echo $file | sed 's/.*values\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run betaupload; done; npm run copy:set;"
23
26
  },
24
27
  "author": "Thorbjorn Kappel Davis",
25
28
  "license": "ISC",
26
- "dependencies": {},
27
- "peerDependencies": {
28
- "@plusscommunities/pluss-core-app": "^6.0.10-auth.0",
29
+ "dependencies": {
30
+ "@plusscommunities/pluss-core-app": "^6.0.3",
29
31
  "axios": "^1.6.8",
30
32
  "lodash": "^4.17.4",
31
33
  "moment": "^2.30.1",
@@ -34,7 +36,9 @@
34
36
  "react-native-elements": "^0.17.0",
35
37
  "react-native-iphone-x-helper": "^1.3.1",
36
38
  "react-native-webview": "13.6.4",
37
- "react-redux": "^7.2.6",
39
+ "react-redux": "^7.2.6"
40
+ },
41
+ "peerDependencies": {
38
42
  "redux-persist": "^6.0.0"
39
43
  },
40
44
  "devDependencies": {
@@ -1,3 +1,5 @@
1
- export const JOBS_LOADED = 'JOBS_LOADED';
2
- export const JOB_ADDED = 'JOB_ADDED';
3
- export const JOBS_ADDED = 'JOBS_ADDED';
1
+ import { values } from '../values.config';
2
+
3
+ export const JOBS_LOADED = values.actionJobsLoaded;
4
+ export const JOB_ADDED = values.actionJobAdded;
5
+ export const JOBS_ADDED = values.actionJobsAdded;
@@ -1,24 +1,28 @@
1
+ // import axios from 'axios';
2
+ // import { getUrl } from './helper';
3
+ // import { authedFunction } from '../js';
1
4
  import { Helper, Session } from '../core.config';
5
+ import { values } from '../values.config';
2
6
 
3
- export const maintenanceActions = {
7
+ export const generalActions = {
4
8
  getJob: (site, id) => {
5
9
  return Session.authedFunction({
6
10
  method: 'POST',
7
- url: Helper.getUrl('maintenance', 'getJob'),
11
+ url: Helper.getUrl(values.serviceKey, 'getJob'),
8
12
  data: { site, id },
9
13
  });
10
14
  },
11
15
  getJobByJobId: (site, jobId) => {
12
16
  return Session.authedFunction({
13
17
  method: 'POST',
14
- url: Helper.getUrl('maintenance', 'getJob'),
18
+ url: Helper.getUrl(values.serviceKey, 'getJob'),
15
19
  data: { site, jobId },
16
20
  });
17
21
  },
18
22
  getJobs: (site, status = '', type = '') => {
19
23
  return Session.authedFunction({
20
24
  method: 'POST',
21
- url: Helper.getUrl('maintenance', 'getJobs'),
25
+ url: Helper.getUrl(values.serviceKey, 'getJobs'),
22
26
  data: { site, status, type },
23
27
  });
24
28
  },
@@ -35,24 +39,24 @@ export const maintenanceActions = {
35
39
  }
36
40
  return Session.authedFunction({
37
41
  method: 'GET',
38
- url: Helper.getUrl('maintenance', 'get/requests', query),
42
+ url: Helper.getUrl(values.serviceKey, 'get/requests', query),
39
43
  });
40
44
  },
41
45
  getJobsRecursive: (site, status, type, lastKey, jobs = []) => {
42
46
  return new Promise(resolve => {
43
- maintenanceActions.getJobs2(site, status, type, lastKey).then(jobRes => {
47
+ generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {
44
48
  const newJobs = [...jobs, ...jobRes.data.Items];
45
49
  if (!jobRes.data.LastKey) {
46
50
  return resolve(newJobs);
47
51
  }
48
- return resolve(maintenanceActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));
52
+ return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));
49
53
  });
50
54
  });
51
55
  },
52
56
  sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {
53
57
  const request = {
54
58
  method: 'POST',
55
- url: Helper.getUrl('maintenance', 'sendMaintenance'),
59
+ url: Helper.getUrl(values.serviceKey, 'sendMaintenance'),
56
60
  data: {
57
61
  userID,
58
62
  userName,
@@ -73,37 +77,21 @@ export const maintenanceActions = {
73
77
  editJob: (job, site) => {
74
78
  return Session.authedFunction({
75
79
  method: 'POST',
76
- url: Helper.getUrl('maintenance', 'editJob'),
80
+ url: Helper.getUrl(values.serviceKey, 'editJob'),
77
81
  data: { job, site },
78
82
  });
79
83
  },
80
84
  editJobStatus: (id, status) => {
81
85
  return Session.authedFunction({
82
86
  method: 'POST',
83
- url: Helper.getUrl('maintenance', 'editJobStatus'),
87
+ url: Helper.getUrl(values.serviceKey, 'editJobStatus'),
84
88
  data: { id, status },
85
89
  });
86
90
  },
87
- assignJob: (jobId, userId) => {
88
- return Session.authedFunction({
89
- method: 'POST',
90
- url: Helper.getUrl('maintenance', 'update/assign'),
91
- data: {
92
- id: jobId,
93
- userId,
94
- },
95
- });
96
- },
97
- getAssignees: site => {
98
- return Session.authedFunction({
99
- method: 'GET',
100
- url: Helper.getUrl('maintenance', 'get/assignees', { site }),
101
- });
102
- },
103
91
  addNote: (jobId, note, attachments) => {
104
92
  return Session.authedFunction({
105
93
  method: 'POST',
106
- url: Helper.getUrl('maintenance', 'requests/note'),
94
+ url: Helper.getUrl(values.serviceKey, 'requests/note'),
107
95
  data: {
108
96
  id: jobId,
109
97
  note,
@@ -115,7 +103,7 @@ export const maintenanceActions = {
115
103
  editNote: (jobId, noteId, note, attachments) => {
116
104
  return Session.authedFunction({
117
105
  method: 'POST',
118
- url: Helper.getUrl('maintenance', 'requests/note'),
106
+ url: Helper.getUrl(values.serviceKey, 'requests/note'),
119
107
  data: {
120
108
  id: jobId,
121
109
  note,
@@ -128,7 +116,7 @@ export const maintenanceActions = {
128
116
  deleteNote: (jobId, noteId) => {
129
117
  return Session.authedFunction({
130
118
  method: 'POST',
131
- url: Helper.getUrl('maintenance', 'requests/note'),
119
+ url: Helper.getUrl(values.serviceKey, 'requests/note'),
132
120
  data: {
133
121
  id: jobId,
134
122
  noteId,
@@ -136,12 +124,44 @@ export const maintenanceActions = {
136
124
  },
137
125
  });
138
126
  },
127
+ // getWeeklyMenu: async time => {
128
+ // //deprecated
129
+ // return null;
130
+ // },
139
131
  getJobTypes: async site => {
140
- const url = Helper.getUrl('maintenance', 'getjobtypes');
132
+ const url = Helper.getUrl(values.serviceKey, 'getjobtypes');
141
133
  return Session.authedFunction({
142
134
  method: 'POST',
143
135
  url,
144
136
  data: { site },
145
137
  });
146
138
  },
139
+ // sendBookingRequest: async bookingInfo => {
140
+ // return authedFunction({
141
+ // method: 'POST',
142
+ // data: {
143
+ // bookingInfo,
144
+ // },
145
+ // url: getUrl('utility', 'sendBookingRequest'),
146
+ // });
147
+ // },
148
+ // getString: async (site, id, useDefault) => {
149
+ // return axios({
150
+ // method: 'GET',
151
+ // url: getUrl('strings', `get/${site}_${id}`, useDefault ? { useDefault } : undefined),
152
+ // }).catch(error => {
153
+ // console.log('getString error', error);
154
+ // throw error;
155
+ // });
156
+ // },
157
+ // getGeneralTerms: async () => {
158
+ // return axios({
159
+ // method: 'GET',
160
+ // url: 'https://pluss.plussapp.com.au/strings-prd/get/plussSpace_termsofuse',
161
+ // });
162
+ // },
163
+ // declineTerms: async (site, userID) => {
164
+ // //deprecated
165
+ // return null;
166
+ // },
147
167
  };
package/src/apis/index.js CHANGED
@@ -1 +1 @@
1
- export * from './maintenanceActions';
1
+ export * from './generalActions';
@@ -1,12 +1,10 @@
1
1
  import React, { Component } from 'react';
2
- import { View, Text, TouchableOpacity, Modal, ScrollView, Dimensions } from 'react-native';
2
+ import { View, Text, TouchableOpacity, Modal } from 'react-native';
3
3
  import { connect } from 'react-redux';
4
4
  import _ from 'lodash';
5
- import { maintenanceActions } from '../apis';
5
+ import { generalActions } from '../apis';
6
6
  import { Colours, Helper } from '../core.config';
7
7
 
8
- const SCREEN_HEIGHT = Dimensions.get('window').height;
9
-
10
8
  class FilterPopupMenu extends Component {
11
9
  constructor(props) {
12
10
  super(props);
@@ -15,8 +13,6 @@ class FilterPopupMenu extends Component {
15
13
  types: props.types || [],
16
14
  selectedStatus: props.status || '',
17
15
  selectedType: props.type || '',
18
- selectedAssignee: props.assignee || '',
19
- assignees: [],
20
16
  };
21
17
  this.statusOptions = [
22
18
  {
@@ -28,7 +24,7 @@ class FilterPopupMenu extends Component {
28
24
  value: 'Unassigned|In Progress',
29
25
  },
30
26
  {
31
- label: 'Open',
27
+ label: 'Unassigned',
32
28
  value: 'Unassigned',
33
29
  },
34
30
  {
@@ -43,7 +39,6 @@ class FilterPopupMenu extends Component {
43
39
  }
44
40
 
45
41
  componentDidMount() {
46
- this.getAssignees();
47
42
  if (_.isEmpty(this.state.types)) this.refreshTypes();
48
43
  }
49
44
 
@@ -53,30 +48,8 @@ class FilterPopupMenu extends Component {
53
48
  }
54
49
  }
55
50
 
56
- getAssignees = async () => {
57
- try {
58
- const res = await maintenanceActions.getAssignees(this.props.site);
59
- let assignees = res.data.Users.map(t => {
60
- return { label: t.displayName, value: t.id };
61
- });
62
- assignees = _.orderBy(assignees, 'label');
63
-
64
- assignees.splice(0, 0, { label: 'All', value: '' });
65
-
66
- const newState = { assignees };
67
-
68
- if (!assignees.some(a => a.value === this.state.selectedAssignee)) {
69
- newState.selectedAssignee = '';
70
- }
71
- // console.log('refreshassignees', assignees);
72
- this.setState(newState);
73
- } catch (error) {
74
- console.error('getAssignees', error);
75
- }
76
- };
77
-
78
51
  refreshTypes = async () => {
79
- const { data } = await maintenanceActions.getJobTypes(Helper.getSite(this.props.site));
52
+ const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));
80
53
  const types = data.map(t => {
81
54
  return { label: t.typeName, value: t.typeName };
82
55
  });
@@ -93,14 +66,11 @@ class FilterPopupMenu extends Component {
93
66
 
94
67
  onDone = () => {
95
68
  const { onClose } = this.props;
96
- const { selectedStatus, selectedType, selectedAssignee } = this.state;
69
+ const { selectedStatus, selectedType } = this.state;
97
70
  if (onClose)
98
71
  onClose({
99
72
  status: selectedStatus,
100
- statusText: this.statusOptions.find(o => o.value === selectedStatus)?.label,
101
73
  type: selectedType,
102
- assignee: selectedAssignee,
103
- assigneeName: this.state.assignees.find(a => a.value === selectedAssignee)?.label,
104
74
  });
105
75
  };
106
76
 
@@ -153,11 +123,10 @@ class FilterPopupMenu extends Component {
153
123
  <View style={styles.container}>
154
124
  <View style={styles.menu}>
155
125
  {this.renderTitle()}
156
- <ScrollView style={styles.optionContent}>
126
+ <View style={styles.optionContent}>
157
127
  {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}
158
128
  {this.renderOptions('Type', this.state.types, 'selectedType')}
159
- {this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee')}
160
- </ScrollView>
129
+ </View>
161
130
  {this.renderCancel()}
162
131
  </View>
163
132
  </View>
@@ -184,7 +153,6 @@ const styles = {
184
153
  backgroundColor: '#fff',
185
154
  borderTopLeftRadius: 12,
186
155
  borderTopRightRadius: 12,
187
- maxHeight: SCREEN_HEIGHT * 0.8,
188
156
  },
189
157
  cancelContainer: {
190
158
  paddingVertical: 16,
@@ -2,18 +2,18 @@ import React, { Component } from 'react';
2
2
  import { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native';
3
3
  import _ from 'lodash';
4
4
  import { connect } from 'react-redux';
5
- import { maintenanceActions } from '../apis';
5
+ import { generalActions } from '../apis';
6
6
  import { jobsLoaded, jobAdded, jobsAdded } from '../actions';
7
7
  import MaintenanceListItem from '../components/MaintenanceListItem';
8
8
  import FilterPopupMenu from './FilterPopupMenu';
9
9
  import { Components, Colours, Config, Helper } from '../core.config';
10
+ import { values } from '../values.config';
10
11
 
11
12
  class MaintenanceList extends Component {
12
13
  constructor(props) {
13
14
  super(props);
14
15
 
15
16
  this.initialStatus = props.hasPermission ? 'Unassigned|In Progress' : '';
16
- this.initialStatusText = props.hasPermission ? 'Incomplete' : '';
17
17
 
18
18
  this.state = {
19
19
  types: [],
@@ -22,10 +22,7 @@ class MaintenanceList extends Component {
22
22
  searchText: '',
23
23
  showFilterPopup: false,
24
24
  selectedStatus: this.initialStatus,
25
- selectedStatusText: this.initialStatusText,
26
25
  selectedType: '',
27
- selectedAssignee: '',
28
- selectedAssigneeName: '',
29
26
  };
30
27
  }
31
28
 
@@ -46,8 +43,8 @@ class MaintenanceList extends Component {
46
43
  try {
47
44
  const { selectedStatus, selectedType } = this.state;
48
45
  // console.log('filters', { selectedStatus, selectedType });
49
- const res = await maintenanceActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
50
- // console.log('refresh', res?.data);
46
+ const res = await generalActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
47
+ // console.log('refresh', JSON.stringify(res, null, 2));
51
48
  if (selectedStatus !== this.initialStatus || !_.isEmpty(selectedType)) {
52
49
  this.props.jobsAdded(res);
53
50
  } else {
@@ -62,7 +59,7 @@ class MaintenanceList extends Component {
62
59
  };
63
60
 
64
61
  refreshTypes = async () => {
65
- const { data } = await maintenanceActions.getJobTypes(Helper.getSite(this.props.site));
62
+ const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));
66
63
  const types = data.map(t => {
67
64
  return { label: t.typeName, value: t.typeName };
68
65
  });
@@ -76,7 +73,7 @@ class MaintenanceList extends Component {
76
73
 
77
74
  this.onLoadingChanged(true, async () => {
78
75
  try {
79
- const job = await maintenanceActions.getJobByJobId(this.props.site, jobId);
76
+ const job = await generalActions.getJobByJobId(this.props.site, jobId);
80
77
  // console.log('fetchJob', job?.data);
81
78
  this.props.jobAdded(job.data);
82
79
  } catch (error) {
@@ -95,7 +92,7 @@ class MaintenanceList extends Component {
95
92
  }
96
93
 
97
94
  resetDataSource = (source = '') => {
98
- const { searchText, selectedStatus, selectedType, selectedAssignee } = this.state;
95
+ const { searchText, selectedStatus, selectedType } = this.state;
99
96
  const { jobs } = this.props;
100
97
 
101
98
  let filteredList = jobs;
@@ -112,7 +109,6 @@ class MaintenanceList extends Component {
112
109
  }
113
110
  if (selectedStatus) filteredList = filteredList.filter(j => selectedStatus.includes(j.status));
114
111
  if (selectedType) filteredList = filteredList.filter(j => selectedType.includes(j.type));
115
- if (selectedAssignee) filteredList = filteredList.filter(j => selectedAssignee.includes(j.AssigneeId));
116
112
  if (jobIdMatch) {
117
113
  const jobIndex = filteredList.indexOf(jobIdMatch);
118
114
  if (jobIndex > -1) {
@@ -147,38 +143,10 @@ class MaintenanceList extends Component {
147
143
  };
148
144
 
149
145
  onSelectFilter = selected => {
150
- this.setState(
151
- {
152
- selectedStatus: selected.status,
153
- selectedStatusText: selected.statusText,
154
- selectedType: selected.type,
155
- selectedAssignee: selected.assignee,
156
- selectedAssigneeName: selected.assigneeName,
157
- },
158
- () => {
159
- this.resetDataSource();
160
- this.onToggleFilter();
161
- },
162
- );
163
- };
164
-
165
- getFilterButtonText = () => {
166
- const { selectedStatus, selectedStatusText, selectedType, selectedAssignee, selectedAssigneeName } = this.state;
167
- const filterTexts = [];
168
- if (!_.isEmpty(selectedStatus)) {
169
- filterTexts.push(selectedStatusText);
170
- }
171
-
172
- if (!_.isEmpty(selectedType)) {
173
- filterTexts.push(selectedType);
174
- }
175
- if (!_.isEmpty(selectedAssignee)) {
176
- filterTexts.push(selectedAssigneeName);
177
- }
178
- if (_.isEmpty(filterTexts)) {
179
- return 'Filter';
180
- }
181
- return `Filtering by ${filterTexts.join(', ')}`;
146
+ this.setState({ selectedStatus: selected.status, selectedType: selected.type }, () => {
147
+ this.resetDataSource();
148
+ this.onToggleFilter();
149
+ });
182
150
  };
183
151
 
184
152
  renderEmptyList() {
@@ -189,7 +157,7 @@ class MaintenanceList extends Component {
189
157
  return (
190
158
  <TouchableOpacity onPress={this.onToggleFilter}>
191
159
  <View style={styles.filterButton}>
192
- <Text style={[styles.filterButtonText, { color: this.props.colourBrandingMain }]}>{this.getFilterButtonText()}</Text>
160
+ <Text style={[styles.filterButtonText, { color: this.props.colourBrandingMain }]}>Filter</Text>
193
161
  </View>
194
162
  </TouchableOpacity>
195
163
  );
@@ -218,7 +186,7 @@ class MaintenanceList extends Component {
218
186
  const { ListHeaderComponent } = this.props;
219
187
  return (
220
188
  <View>
221
- {ListHeaderComponent ? ListHeaderComponent : <View style={{ height: 8 }} />}
189
+ {ListHeaderComponent ? ListHeaderComponent : <View style={{ height: 32 }} />}
222
190
  {this.renderFilterButton()}
223
191
  {this.renderSearch()}
224
192
  </View>
@@ -243,18 +211,11 @@ class MaintenanceList extends Component {
243
211
  }
244
212
 
245
213
  renderFilterPopup() {
246
- const { showFilterPopup, types, selectedStatus, selectedType, selectedAssignee } = this.state;
214
+ const { showFilterPopup, types, selectedStatus, selectedType } = this.state;
247
215
  if (!showFilterPopup) return null;
248
216
 
249
217
  return (
250
- <FilterPopupMenu
251
- site={this.props.site}
252
- types={types}
253
- status={selectedStatus}
254
- assignee={selectedAssignee}
255
- type={selectedType}
256
- onClose={this.onSelectFilter}
257
- />
218
+ <FilterPopupMenu site={this.props.site} types={types} status={selectedStatus} type={selectedType} onClose={this.onSelectFilter} />
258
219
  );
259
220
  }
260
221
 
@@ -305,9 +266,9 @@ const styles = StyleSheet.create({
305
266
  paddingHorizontal: 16,
306
267
  },
307
268
  filterButton: {
308
- paddingBottom: 8,
309
- paddingHorizontal: 16,
310
- flexDirection: 'row-reverse',
269
+ position: 'absolute',
270
+ right: 20,
271
+ top: -32,
311
272
  },
312
273
  filterButtonText: {
313
274
  fontFamily: 'sf-semibold',
@@ -316,7 +277,8 @@ const styles = StyleSheet.create({
316
277
  });
317
278
 
318
279
  const mapStateToProps = state => {
319
- const { user, jobs, notifications } = state;
280
+ const { user, notifications } = state;
281
+ const jobs = state[values.reducerKey];
320
282
  const jobsOrdered = _.orderBy(jobs.jobs, ['createdUnix'], ['desc']);
321
283
  const hasPermission = _.includes(user.permissions, 'maintenanceTracking');
322
284
 
@@ -326,7 +288,7 @@ const mapStateToProps = state => {
326
288
  site: user.site,
327
289
  userCategory: user.category,
328
290
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
329
- dataUpdated: notifications.dataUpdated['jobs'],
291
+ dataUpdated: notifications.dataUpdated[values.updateKey],
330
292
  };
331
293
  };
332
294
 
@@ -19,10 +19,11 @@ import moment from 'moment';
19
19
  import { getJobStatusProps, jobStatusOptions } from '../helper';
20
20
  import { Services } from '../feature.config';
21
21
  import { Helper, Colours } from '../core.config';
22
+ import { values } from '../values.config';
22
23
 
23
24
  class MaintenanceListItem extends Component {
24
25
  onPressJob = () => {
25
- Services.navigation.navigate('requestDetail', { job: this.props.job });
26
+ Services.navigation.navigate(values.screenRequestDetail, { job: this.props.job });
26
27
  };
27
28
 
28
29
  renderCommentCount() {
@@ -63,7 +64,7 @@ class MaintenanceListItem extends Component {
63
64
  const { job } = this.props;
64
65
  const createdTime = moment(job.createdUnix);
65
66
  const createdTimeText = `${createdTime.format('ddd, D MMMM')} • ${createdTime.format('h:mma')}`;
66
- const assigneeText = job.Assignee ? `Assigned to\n${job.Assignee.displayName}` : '';
67
+ const activityTimeText = job.expectedDate ? moment(job.expectedDate).format('D MMMM') : '--';
67
68
  const { statusText, statusColor } = getJobStatusProps(job.status);
68
69
 
69
70
  return (
@@ -92,14 +93,14 @@ class MaintenanceListItem extends Component {
92
93
  <Text style={styles.jobCreatedText}>{createdTimeText}</Text>
93
94
  <View style={styles.jobActivityContainer}>
94
95
  <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>
95
- {/* <Icon name="wrench" type="font-awesome" iconStyle={styles.jobStatusIcon} /> */}
96
+ <Icon name="wrench" type="font-awesome" iconStyle={styles.jobStatusIcon} />
96
97
  <Text style={styles.jobStatusText}>{statusText}</Text>
97
98
  </View>
98
99
  <View style={[styles.jobStatusLine, { borderColor: statusColor }]}>
99
100
  <View style={styles.jobStatusLineMask} />
100
101
  </View>
101
102
  <View style={[styles.jobStatusCircle, { backgroundColor: statusColor }]} />
102
- <Text style={styles.jobStatusDateText}>{assigneeText}</Text>
103
+ <Text style={styles.jobStatusDateText}>{activityTimeText}</Text>
103
104
  </View>
104
105
  </View>
105
106
  </View>
@@ -227,7 +228,7 @@ const styles = StyleSheet.create({
227
228
  jobStatusContainer: {
228
229
  flexDirection: 'row',
229
230
  alignItems: 'center',
230
- justifyContent: 'center',
231
+ justifyContent: 'space-between',
231
232
  width: 105,
232
233
  height: 30,
233
234
  paddingHorizontal: 8,
@@ -265,7 +266,7 @@ const styles = StyleSheet.create({
265
266
  jobStatusDateText: {
266
267
  flex: 1,
267
268
  textAlign: 'right',
268
- fontFamily: 'sf-medium',
269
+ fontFamily: 'sf-bold',
269
270
  fontSize: 14,
270
271
  color: Colours.TEXT_DARK,
271
272
  },