@plusscommunities/pluss-maintenance-app 3.0.2 → 4.0.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/dist/module/actions/JobActions.js.map +1 -1
- package/dist/module/actions/index.js.map +1 -1
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/generalActions.js +2 -8
- package/dist/module/apis/generalActions.js.map +1 -1
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/components/FilterPopupMenu.js +5 -19
- package/dist/module/components/FilterPopupMenu.js.map +1 -1
- package/dist/module/components/MaintenanceList.js +13 -49
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/components/MaintenanceListItem.js +7 -21
- package/dist/module/components/MaintenanceListItem.js.map +1 -1
- package/dist/module/components/MaintenanceWidgetItem.js +3 -12
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
- package/dist/module/components/StatusSelectorPopup.js +0 -5
- package/dist/module/components/StatusSelectorPopup.js.map +1 -1
- package/dist/module/components/WidgetLarge.js +0 -3
- package/dist/module/components/WidgetLarge.js.map +1 -1
- package/dist/module/components/WidgetSmall.js +5 -22
- package/dist/module/components/WidgetSmall.js.map +1 -1
- package/dist/module/core.config.js.map +1 -1
- package/dist/module/feature.config.js +2 -3
- package/dist/module/feature.config.js.map +1 -1
- package/dist/module/helper.js +0 -3
- package/dist/module/helper.js.map +1 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/reducers/JobsReducer.js +6 -14
- package/dist/module/reducers/JobsReducer.js.map +1 -1
- package/dist/module/screens/JobTypePicker.js +5 -14
- package/dist/module/screens/JobTypePicker.js.map +1 -1
- package/dist/module/screens/MaintenancePage.js +3 -14
- package/dist/module/screens/MaintenancePage.js.map +1 -1
- package/dist/module/screens/RequestDetail.js +15 -59
- package/dist/module/screens/RequestDetail.js.map +1 -1
- package/dist/module/screens/RequestNotes.js +7 -40
- package/dist/module/screens/RequestNotes.js.map +1 -1
- package/dist/module/screens/ServiceRequest.js +7 -59
- package/dist/module/screens/ServiceRequest.js.map +1 -1
- package/package.json +4 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED","jobsLoaded","jobs","type","payload","jobAdded","job","jobsAdded"],"sources":["JobActions.js"],"sourcesContent":["import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from './types';\n\nexport const jobsLoaded = jobs => {\n return {\n type: JOBS_LOADED,\n payload: jobs,\n };\n};\n\nexport const jobAdded = job => {\n return {\n type: JOB_ADDED,\n payload: job,\n };\n};\n\nexport const jobsAdded = jobs => {\n return {\n type: JOBS_ADDED,\n payload: jobs,\n };\n};\n"],"mappings":"AAAA,SAASA,
|
1
|
+
{"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED","jobsLoaded","jobs","type","payload","jobAdded","job","jobsAdded"],"sources":["JobActions.js"],"sourcesContent":["import { JOBS_LOADED, JOB_ADDED, JOBS_ADDED } from './types';\n\nexport const jobsLoaded = jobs => {\n return {\n type: JOBS_LOADED,\n payload: jobs,\n };\n};\n\nexport const jobAdded = job => {\n return {\n type: JOB_ADDED,\n payload: job,\n };\n};\n\nexport const jobsAdded = jobs => {\n return {\n type: JOBS_ADDED,\n payload: jobs,\n };\n};\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,UAAU,QAAQ,SAAS;AAE5D,OAAO,MAAMC,UAAU,GAAGC,IAAI,IAAI;EAChC,OAAO;IACLC,IAAI,EAAEL,WAAW;IACjBM,OAAO,EAAEF;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,QAAQ,GAAGC,GAAG,IAAI;EAC7B,OAAO;IACLH,IAAI,EAAEJ,SAAS;IACfK,OAAO,EAAEE;EACX,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,SAAS,GAAGL,IAAI,IAAI;EAC/B,OAAO;IACLC,IAAI,EAAEH,UAAU;IAChBI,OAAO,EAAEF;EACX,CAAC;AACH,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './JobActions';\n"],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './JobActions';\n"],"mappings":"AAAA,cAAc,cAAc"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED"],"sources":["types.js"],"sourcesContent":["export const JOBS_LOADED = 'JOBS_LOADED';\nexport const JOB_ADDED = 'JOB_ADDED';\nexport const JOBS_ADDED = 'JOBS_ADDED';\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,
|
1
|
+
{"version":3,"names":["JOBS_LOADED","JOB_ADDED","JOBS_ADDED"],"sources":["types.js"],"sourcesContent":["export const JOBS_LOADED = 'JOBS_LOADED';\nexport const JOB_ADDED = 'JOB_ADDED';\nexport const JOBS_ADDED = 'JOBS_ADDED';\n"],"mappings":"AAAA,OAAO,MAAMA,WAAW,GAAG,aAAa;AACxC,OAAO,MAAMC,SAAS,GAAG,WAAW;AACpC,OAAO,MAAMC,UAAU,GAAG,YAAY"}
|
@@ -40,19 +40,15 @@ export const generalActions = {
|
|
40
40
|
const query = {
|
41
41
|
site
|
42
42
|
};
|
43
|
-
|
44
43
|
if (status) {
|
45
44
|
query.status = status;
|
46
45
|
}
|
47
|
-
|
48
46
|
if (type) {
|
49
47
|
query.type = type;
|
50
48
|
}
|
51
|
-
|
52
49
|
if (lastKey) {
|
53
50
|
query.lastKey = JSON.stringify(lastKey);
|
54
51
|
}
|
55
|
-
|
56
52
|
return Session.authedFunction({
|
57
53
|
method: 'GET',
|
58
54
|
url: Helper.getUrl('maintenance', 'get/requests', query)
|
@@ -63,11 +59,9 @@ export const generalActions = {
|
|
63
59
|
return new Promise(resolve => {
|
64
60
|
generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {
|
65
61
|
const newJobs = [...jobs, ...jobRes.data.Items];
|
66
|
-
|
67
62
|
if (!jobRes.data.LastKey) {
|
68
63
|
return resolve(newJobs);
|
69
64
|
}
|
70
|
-
|
71
65
|
return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));
|
72
66
|
});
|
73
67
|
});
|
@@ -162,7 +156,8 @@ export const generalActions = {
|
|
162
156
|
site
|
163
157
|
}
|
164
158
|
});
|
165
|
-
}
|
159
|
+
}
|
160
|
+
// sendBookingRequest: async bookingInfo => {
|
166
161
|
// return authedFunction({
|
167
162
|
// method: 'POST',
|
168
163
|
// data: {
|
@@ -190,6 +185,5 @@ export const generalActions = {
|
|
190
185
|
// //deprecated
|
191
186
|
// return null;
|
192
187
|
// },
|
193
|
-
|
194
188
|
};
|
195
189
|
//# sourceMappingURL=generalActions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Helper","Session","generalActions","getJob","site","id","authedFunction","method","url","getUrl","data","getJobByJobId","jobId","getJobs","status","type","getJobs2","lastKey","query","JSON","stringify","getJobsRecursive","jobs","Promise","resolve","then","jobRes","newJobs","Items","LastKey","sendMaintenanceRequest","userID","userName","phone","room","title","description","date","images","location","isHome","homeText","request","editJob","job","editJobStatus","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes"],"sources":["generalActions.js"],"sourcesContent":["// import axios from 'axios';\n// import { getUrl } from './helper';\n// import { authedFunction } from '../js';\nimport { Helper, Session } from '../core.config';\n\nexport const generalActions = {\n getJob: (site, id) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, id },\n });\n },\n getJobByJobId: (site, jobId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, jobId },\n });\n },\n getJobs: (site, status = '', type = '') => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJobs'),\n data: { site, status, type },\n });\n },\n getJobs2: (site, status, type, lastKey) => {\n const query = { site };\n if (status) {\n query.status = status;\n }\n if (type) {\n query.type = type;\n }\n if (lastKey) {\n query.lastKey = JSON.stringify(lastKey);\n }\n return Session.authedFunction({\n method: 'GET',\n url: Helper.getUrl('maintenance', 'get/requests', query),\n });\n },\n getJobsRecursive: (site, status, type, lastKey, jobs = []) => {\n return new Promise(resolve => {\n generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {\n const newJobs = [...jobs, ...jobRes.data.Items];\n if (!jobRes.data.LastKey) {\n return resolve(newJobs);\n }\n return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));\n });\n });\n },\n sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {\n const request = {\n method: 'POST',\n url: Helper.getUrl('maintenance', 'sendMaintenance'),\n data: {\n userID,\n userName,\n phone,\n room,\n title,\n description,\n date,\n type,\n images,\n location,\n isHome,\n homeText,\n },\n };\n return Session.authedFunction(request);\n },\n editJob: (job, site) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJob'),\n data: { job, site },\n });\n },\n editJobStatus: (id, status) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJobStatus'),\n data: { id, status },\n });\n },\n addNote: (jobId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n action: 'AddNote',\n },\n });\n },\n editNote: (jobId, noteId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n noteId,\n action: 'EditNote',\n },\n });\n },\n deleteNote: (jobId, noteId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n noteId,\n action: 'DeleteNote',\n },\n });\n },\n // getWeeklyMenu: async time => {\n // //deprecated\n // return null;\n // },\n getJobTypes: async site => {\n const url = Helper.getUrl('maintenance', 'getjobtypes');\n return Session.authedFunction({\n method: 'POST',\n url,\n data: { site },\n });\n },\n // sendBookingRequest: async bookingInfo => {\n // return authedFunction({\n // method: 'POST',\n // data: {\n // bookingInfo,\n // },\n // url: getUrl('utility', 'sendBookingRequest'),\n // });\n // },\n // getString: async (site, id, useDefault) => {\n // return axios({\n // method: 'GET',\n // url: getUrl('strings', `get/${site}_${id}`, useDefault ? { useDefault } : undefined),\n // }).catch(error => {\n // console.log('getString error', error);\n // throw error;\n // });\n // },\n // getGeneralTerms: async () => {\n // return axios({\n // method: 'GET',\n // url: 'https://pluss.plussapp.com.au/strings-prd/get/plussSpace_termsofuse',\n // });\n // },\n // declineTerms: async (site, userID) => {\n // //deprecated\n // return null;\n // },\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,
|
1
|
+
{"version":3,"names":["Helper","Session","generalActions","getJob","site","id","authedFunction","method","url","getUrl","data","getJobByJobId","jobId","getJobs","status","arguments","length","undefined","type","getJobs2","lastKey","query","JSON","stringify","getJobsRecursive","jobs","Promise","resolve","then","jobRes","newJobs","Items","LastKey","sendMaintenanceRequest","userID","userName","phone","room","title","description","date","images","location","isHome","homeText","request","editJob","job","editJobStatus","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes"],"sources":["generalActions.js"],"sourcesContent":["// import axios from 'axios';\n// import { getUrl } from './helper';\n// import { authedFunction } from '../js';\nimport { Helper, Session } from '../core.config';\n\nexport const generalActions = {\n getJob: (site, id) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, id },\n });\n },\n getJobByJobId: (site, jobId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJob'),\n data: { site, jobId },\n });\n },\n getJobs: (site, status = '', type = '') => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'getJobs'),\n data: { site, status, type },\n });\n },\n getJobs2: (site, status, type, lastKey) => {\n const query = { site };\n if (status) {\n query.status = status;\n }\n if (type) {\n query.type = type;\n }\n if (lastKey) {\n query.lastKey = JSON.stringify(lastKey);\n }\n return Session.authedFunction({\n method: 'GET',\n url: Helper.getUrl('maintenance', 'get/requests', query),\n });\n },\n getJobsRecursive: (site, status, type, lastKey, jobs = []) => {\n return new Promise(resolve => {\n generalActions.getJobs2(site, status, type, lastKey).then(jobRes => {\n const newJobs = [...jobs, ...jobRes.data.Items];\n if (!jobRes.data.LastKey) {\n return resolve(newJobs);\n }\n return resolve(generalActions.getJobsRecursive(site, status, type, jobRes.data.LastKey, newJobs));\n });\n });\n },\n sendMaintenanceRequest: (userID, userName, phone, room, title, description, date, type, images, location, isHome, homeText) => {\n const request = {\n method: 'POST',\n url: Helper.getUrl('maintenance', 'sendMaintenance'),\n data: {\n userID,\n userName,\n phone,\n room,\n title,\n description,\n date,\n type,\n images,\n location,\n isHome,\n homeText,\n },\n };\n return Session.authedFunction(request);\n },\n editJob: (job, site) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJob'),\n data: { job, site },\n });\n },\n editJobStatus: (id, status) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'editJobStatus'),\n data: { id, status },\n });\n },\n addNote: (jobId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n action: 'AddNote',\n },\n });\n },\n editNote: (jobId, noteId, note, attachments) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n note,\n attachments,\n noteId,\n action: 'EditNote',\n },\n });\n },\n deleteNote: (jobId, noteId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'requests/note'),\n data: {\n id: jobId,\n noteId,\n action: 'DeleteNote',\n },\n });\n },\n // getWeeklyMenu: async time => {\n // //deprecated\n // return null;\n // },\n getJobTypes: async site => {\n const url = Helper.getUrl('maintenance', 'getjobtypes');\n return Session.authedFunction({\n method: 'POST',\n url,\n data: { site },\n });\n },\n // sendBookingRequest: async bookingInfo => {\n // return authedFunction({\n // method: 'POST',\n // data: {\n // bookingInfo,\n // },\n // url: getUrl('utility', 'sendBookingRequest'),\n // });\n // },\n // getString: async (site, id, useDefault) => {\n // return axios({\n // method: 'GET',\n // url: getUrl('strings', `get/${site}_${id}`, useDefault ? { useDefault } : undefined),\n // }).catch(error => {\n // console.log('getString error', error);\n // throw error;\n // });\n // },\n // getGeneralTerms: async () => {\n // return axios({\n // method: 'GET',\n // url: 'https://pluss.plussapp.com.au/strings-prd/get/plussSpace_termsofuse',\n // });\n // },\n // declineTerms: async (site, userID) => {\n // //deprecated\n // return null;\n // },\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,OAAO,QAAQ,gBAAgB;AAEhD,OAAO,MAAMC,cAAc,GAAG;EAC5BC,MAAM,EAAEA,CAACC,IAAI,EAAEC,EAAE,KAAK;IACpB,OAAOJ,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;MAC3CC,IAAI,EAAE;QAAEN,IAAI;QAAEC;MAAG;IACnB,CAAC,CAAC;EACJ,CAAC;EACDM,aAAa,EAAEA,CAACP,IAAI,EAAEQ,KAAK,KAAK;IAC9B,OAAOX,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC;MAC3CC,IAAI,EAAE;QAAEN,IAAI;QAAEQ;MAAM;IACtB,CAAC,CAAC;EACJ,CAAC;EACDC,OAAO,EAAE,SAAAA,CAACT,IAAI,EAA6B;IAAA,IAA3BU,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IACpC,OAAOd,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC;MAC5CC,IAAI,EAAE;QAAEN,IAAI;QAAEU,MAAM;QAAEI;MAAK;IAC7B,CAAC,CAAC;EACJ,CAAC;EACDC,QAAQ,EAAEA,CAACf,IAAI,EAAEU,MAAM,EAAEI,IAAI,EAAEE,OAAO,KAAK;IACzC,MAAMC,KAAK,GAAG;MAAEjB;IAAK,CAAC;IACtB,IAAIU,MAAM,EAAE;MACVO,KAAK,CAACP,MAAM,GAAGA,MAAM;IACvB;IACA,IAAII,IAAI,EAAE;MACRG,KAAK,CAACH,IAAI,GAAGA,IAAI;IACnB;IACA,IAAIE,OAAO,EAAE;MACXC,KAAK,CAACD,OAAO,GAAGE,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC;IACzC;IACA,OAAOnB,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,KAAK;MACbC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,cAAc,EAAEY,KAAK;IACzD,CAAC,CAAC;EACJ,CAAC;EACDG,gBAAgB,EAAE,SAAAA,CAACpB,IAAI,EAAEU,MAAM,EAAEI,IAAI,EAAEE,OAAO,EAAgB;IAAA,IAAdK,IAAI,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IACvD,OAAO,IAAIW,OAAO,CAACC,OAAO,IAAI;MAC5BzB,cAAc,CAACiB,QAAQ,CAACf,IAAI,EAAEU,MAAM,EAAEI,IAAI,EAAEE,OAAO,CAAC,CAACQ,IAAI,CAACC,MAAM,IAAI;QAClE,MAAMC,OAAO,GAAG,CAAC,GAAGL,IAAI,EAAE,GAAGI,MAAM,CAACnB,IAAI,CAACqB,KAAK,CAAC;QAC/C,IAAI,CAACF,MAAM,CAACnB,IAAI,CAACsB,OAAO,EAAE;UACxB,OAAOL,OAAO,CAACG,OAAO,CAAC;QACzB;QACA,OAAOH,OAAO,CAACzB,cAAc,CAACsB,gBAAgB,CAACpB,IAAI,EAAEU,MAAM,EAAEI,IAAI,EAAEW,MAAM,CAACnB,IAAI,CAACsB,OAAO,EAAEF,OAAO,CAAC,CAAC;MACnG,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EACDG,sBAAsB,EAAEA,CAACC,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,WAAW,EAAEC,IAAI,EAAEtB,IAAI,EAAEuB,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,KAAK;IAC7H,MAAMC,OAAO,GAAG;MACdtC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC;MACpDC,IAAI,EAAE;QACJwB,MAAM;QACNC,QAAQ;QACRC,KAAK;QACLC,IAAI;QACJC,KAAK;QACLC,WAAW;QACXC,IAAI;QACJtB,IAAI;QACJuB,MAAM;QACNC,QAAQ;QACRC,MAAM;QACNC;MACF;IACF,CAAC;IACD,OAAO3C,OAAO,CAACK,cAAc,CAACuC,OAAO,CAAC;EACxC,CAAC;EACDC,OAAO,EAAEA,CAACC,GAAG,EAAE3C,IAAI,KAAK;IACtB,OAAOH,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC;MAC5CC,IAAI,EAAE;QAAEqC,GAAG;QAAE3C;MAAK;IACpB,CAAC,CAAC;EACJ,CAAC;EACD4C,aAAa,EAAEA,CAAC3C,EAAE,EAAES,MAAM,KAAK;IAC7B,OAAOb,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;MAClDC,IAAI,EAAE;QAAEL,EAAE;QAAES;MAAO;IACrB,CAAC,CAAC;EACJ,CAAC;EACDmC,OAAO,EAAEA,CAACrC,KAAK,EAAEsC,IAAI,EAAEC,WAAW,KAAK;IACrC,OAAOlD,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;MAClDC,IAAI,EAAE;QACJL,EAAE,EAAEO,KAAK;QACTsC,IAAI;QACJC,WAAW;QACXC,MAAM,EAAE;MACV;IACF,CAAC,CAAC;EACJ,CAAC;EACDC,QAAQ,EAAEA,CAACzC,KAAK,EAAE0C,MAAM,EAAEJ,IAAI,EAAEC,WAAW,KAAK;IAC9C,OAAOlD,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;MAClDC,IAAI,EAAE;QACJL,EAAE,EAAEO,KAAK;QACTsC,IAAI;QACJC,WAAW;QACXG,MAAM;QACNF,MAAM,EAAE;MACV;IACF,CAAC,CAAC;EACJ,CAAC;EACDG,UAAU,EAAEA,CAAC3C,KAAK,EAAE0C,MAAM,KAAK;IAC7B,OAAOrD,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAER,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;MAClDC,IAAI,EAAE;QACJL,EAAE,EAAEO,KAAK;QACT0C,MAAM;QACNF,MAAM,EAAE;MACV;IACF,CAAC,CAAC;EACJ,CAAC;EACD;EACA;EACA;EACA;EACAI,WAAW,EAAE,MAAMpD,IAAI,IAAI;IACzB,MAAMI,GAAG,GAAGR,MAAM,CAACS,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;IACvD,OAAOR,OAAO,CAACK,cAAc,CAAC;MAC5BC,MAAM,EAAE,MAAM;MACdC,GAAG;MACHE,IAAI,EAAE;QAAEN;MAAK;IACf,CAAC,CAAC;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './generalActions';\n"],"mappings":"AAAA,cAAc,
|
1
|
+
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["export * from './generalActions';\n"],"mappings":"AAAA,cAAc,kBAAkB"}
|
@@ -1,16 +1,15 @@
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
-
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
3
4
|
import React, { Component } from 'react';
|
4
5
|
import { View, Text, TouchableOpacity, Modal } from 'react-native';
|
5
6
|
import { connect } from 'react-redux';
|
6
7
|
import _ from 'lodash';
|
7
8
|
import { generalActions } from '../apis';
|
8
9
|
import { Colours, Helper } from '../core.config';
|
9
|
-
|
10
10
|
class FilterPopupMenu extends Component {
|
11
11
|
constructor(props) {
|
12
12
|
super(props);
|
13
|
-
|
14
13
|
_defineProperty(this, "refreshTypes", async () => {
|
15
14
|
const {
|
16
15
|
data
|
@@ -24,19 +23,17 @@ class FilterPopupMenu extends Component {
|
|
24
23
|
types.splice(0, 0, {
|
25
24
|
label: 'All',
|
26
25
|
value: ''
|
27
|
-
});
|
28
|
-
|
26
|
+
});
|
27
|
+
// console.log('refreshTypes', types);
|
29
28
|
this.setState({
|
30
29
|
types
|
31
30
|
});
|
32
31
|
});
|
33
|
-
|
34
32
|
_defineProperty(this, "onSelectOption", (key, value) => {
|
35
33
|
const newState = {};
|
36
34
|
newState[key] = value;
|
37
35
|
this.setState(newState);
|
38
36
|
});
|
39
|
-
|
40
37
|
_defineProperty(this, "onDone", () => {
|
41
38
|
const {
|
42
39
|
onClose
|
@@ -50,7 +47,6 @@ class FilterPopupMenu extends Component {
|
|
50
47
|
type: selectedType
|
51
48
|
});
|
52
49
|
});
|
53
|
-
|
54
50
|
this.state = {
|
55
51
|
types: props.types || [],
|
56
52
|
selectedStatus: props.status || '',
|
@@ -73,17 +69,14 @@ class FilterPopupMenu extends Component {
|
|
73
69
|
value: 'Completed'
|
74
70
|
}];
|
75
71
|
}
|
76
|
-
|
77
72
|
componentDidMount() {
|
78
73
|
if (_.isEmpty(this.state.types)) this.refreshTypes();
|
79
74
|
}
|
80
|
-
|
81
75
|
componentDidUpdate(prevProps) {
|
82
76
|
if (prevProps.site !== this.props.site) {
|
83
77
|
this.refreshTypes();
|
84
78
|
}
|
85
79
|
}
|
86
|
-
|
87
80
|
renderTitle() {
|
88
81
|
const {
|
89
82
|
title
|
@@ -94,7 +87,6 @@ class FilterPopupMenu extends Component {
|
|
94
87
|
style: styles.titleText
|
95
88
|
}, title || 'Filter By'));
|
96
89
|
}
|
97
|
-
|
98
90
|
renderCancel() {
|
99
91
|
const {
|
100
92
|
colourBrandingMain,
|
@@ -110,7 +102,6 @@ class FilterPopupMenu extends Component {
|
|
110
102
|
}]
|
111
103
|
}, cancelText || 'Done')));
|
112
104
|
}
|
113
|
-
|
114
105
|
renderOptions(title, options, selectedKey) {
|
115
106
|
const {
|
116
107
|
colourBrandingMain
|
@@ -140,7 +131,6 @@ class FilterPopupMenu extends Component {
|
|
140
131
|
}, o.label)));
|
141
132
|
})));
|
142
133
|
}
|
143
|
-
|
144
134
|
render() {
|
145
135
|
return /*#__PURE__*/React.createElement(Modal, {
|
146
136
|
visible: true,
|
@@ -155,9 +145,7 @@ class FilterPopupMenu extends Component {
|
|
155
145
|
style: styles.optionContent
|
156
146
|
}, this.renderOptions('Status', this.statusOptions, 'selectedStatus'), this.renderOptions('Type', this.state.types, 'selectedType')), this.renderCancel())));
|
157
147
|
}
|
158
|
-
|
159
148
|
}
|
160
|
-
|
161
149
|
const styles = {
|
162
150
|
container: {
|
163
151
|
position: 'absolute',
|
@@ -234,7 +222,6 @@ const styles = {
|
|
234
222
|
fontSize: 13
|
235
223
|
}
|
236
224
|
};
|
237
|
-
|
238
225
|
const mapStateToProps = state => {
|
239
226
|
const {
|
240
227
|
user
|
@@ -244,6 +231,5 @@ const mapStateToProps = state => {
|
|
244
231
|
colourBrandingMain: Colours.getMainBrandingColourFromState(state)
|
245
232
|
};
|
246
233
|
};
|
247
|
-
|
248
234
|
export default connect(mapStateToProps, {})(FilterPopupMenu);
|
249
235
|
//# sourceMappingURL=FilterPopupMenu.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","Component","View","Text","TouchableOpacity","Modal","connect","_","generalActions","Colours","Helper","FilterPopupMenu","constructor","props","data","getJobTypes","getSite","site","types","map","t","label","typeName","value","splice","setState","key","newState","onClose","selectedStatus","selectedType","state","status","type","statusOptions","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onDone","cancelContainer","color","renderOptions","options","selectedKey","optionsContainer","optionsTitle","o","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","height","borderRadius","borderWidth","marginRight","mapStateToProps","user","getMainBrandingColourFromState"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Modal } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { generalActions } from '../apis';\nimport { Colours, Helper } from '../core.config';\n\nclass FilterPopupMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n types: props.types || [],\n selectedStatus: props.status || '',\n selectedType: props.type || '',\n };\n this.statusOptions = [\n {\n label: 'All',\n value: '',\n },\n {\n label: 'Incomplete',\n value: 'Unassigned|In Progress',\n },\n {\n label: 'Unassigned',\n value: 'Unassigned',\n },\n {\n label: 'In Progress',\n value: 'In Progress',\n },\n {\n label: 'Completed',\n value: 'Completed',\n },\n ];\n }\n\n componentDidMount() {\n if (_.isEmpty(this.state.types)) this.refreshTypes();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.site !== this.props.site) {\n this.refreshTypes();\n }\n }\n\n refreshTypes = async () => {\n const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n onSelectOption = (key, value) => {\n const newState = {};\n newState[key] = value;\n this.setState(newState);\n };\n\n onDone = () => {\n const { onClose } = this.props;\n const { selectedStatus, selectedType } = this.state;\n if (onClose)\n onClose({\n status: selectedStatus,\n type: selectedType,\n });\n };\n\n renderTitle() {\n const { title } = this.props;\n return (\n <View style={styles.titleContainer}>\n <Text style={styles.titleText}>{title || 'Filter By'}</Text>\n </View>\n );\n }\n\n renderCancel() {\n const { colourBrandingMain, cancelText } = this.props;\n return (\n <TouchableOpacity onPress={this.onDone}>\n <View style={styles.cancelContainer}>\n <Text style={[styles.cancelText, { color: colourBrandingMain }]}>{cancelText || 'Done'}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderOptions(title, options, selectedKey) {\n const { colourBrandingMain } = this.props;\n return (\n <View style={styles.optionsContainer}>\n <Text style={styles.optionsTitle}>{title}</Text>\n <View style={styles.options}>\n {options.map(o => {\n const selected = this.state[selectedKey];\n const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';\n const color = o.value === selected ? '#fff' : colourBrandingMain;\n return (\n <TouchableOpacity key={o.label} onPress={() => this.onSelectOption(selectedKey, o.value)}>\n <View style={[styles.optionContainer, { backgroundColor, borderColor: colourBrandingMain }]}>\n <Text style={[styles.optionText, { color }]}>{o.label}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <Modal visible transparent animationType=\"slide\" onRequestClose={this.onDone}>\n <View style={styles.container}>\n <View style={styles.menu}>\n {this.renderTitle()}\n <View style={styles.optionContent}>\n {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}\n {this.renderOptions('Type', this.state.types, 'selectedType')}\n </View>\n {this.renderCancel()}\n </View>\n </View>\n </Modal>\n );\n }\n}\n\nconst styles = {\n container: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.5)',\n zIndex: 1000,\n },\n menu: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: '#fff',\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n },\n cancelContainer: {\n paddingVertical: 16,\n borderColor: Colours.LINEGREY,\n borderTopWidth: 1,\n paddingHorizontal: 16,\n },\n cancelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n titleContainer: {\n padding: 16,\n borderColor: Colours.LINEGREY,\n borderBottomWidth: 1,\n },\n titleText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n optionContent: {\n paddingVertical: 10,\n },\n optionsContainer: {\n marginHorizontal: 14,\n },\n optionsTitle: {\n fontFamily: 'sf-semibold',\n marginBottom: 4,\n },\n options: {\n flex: 1,\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n optionContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 50,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n borderWidth: 1,\n marginRight: 8,\n marginBottom: 8,\n },\n optionText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n\n return {\n site: user.site,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","Component","View","Text","TouchableOpacity","Modal","connect","_","generalActions","Colours","Helper","FilterPopupMenu","constructor","props","_defineProperty","data","getJobTypes","getSite","site","types","map","t","label","typeName","value","splice","setState","key","newState","onClose","selectedStatus","selectedType","state","status","type","statusOptions","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","options","selectedKey","optionsContainer","optionsTitle","o","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","height","borderRadius","borderWidth","marginRight","mapStateToProps","user","getMainBrandingColourFromState"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Modal } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { generalActions } from '../apis';\nimport { Colours, Helper } from '../core.config';\n\nclass FilterPopupMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n types: props.types || [],\n selectedStatus: props.status || '',\n selectedType: props.type || '',\n };\n this.statusOptions = [\n {\n label: 'All',\n value: '',\n },\n {\n label: 'Incomplete',\n value: 'Unassigned|In Progress',\n },\n {\n label: 'Unassigned',\n value: 'Unassigned',\n },\n {\n label: 'In Progress',\n value: 'In Progress',\n },\n {\n label: 'Completed',\n value: 'Completed',\n },\n ];\n }\n\n componentDidMount() {\n if (_.isEmpty(this.state.types)) this.refreshTypes();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.site !== this.props.site) {\n this.refreshTypes();\n }\n }\n\n refreshTypes = async () => {\n const { data } = await generalActions.getJobTypes(Helper.getSite(this.props.site));\n const types = data.map(t => {\n return { label: t.typeName, value: t.typeName };\n });\n types.splice(0, 0, { label: 'All', value: '' });\n // console.log('refreshTypes', types);\n this.setState({ types });\n };\n\n onSelectOption = (key, value) => {\n const newState = {};\n newState[key] = value;\n this.setState(newState);\n };\n\n onDone = () => {\n const { onClose } = this.props;\n const { selectedStatus, selectedType } = this.state;\n if (onClose)\n onClose({\n status: selectedStatus,\n type: selectedType,\n });\n };\n\n renderTitle() {\n const { title } = this.props;\n return (\n <View style={styles.titleContainer}>\n <Text style={styles.titleText}>{title || 'Filter By'}</Text>\n </View>\n );\n }\n\n renderCancel() {\n const { colourBrandingMain, cancelText } = this.props;\n return (\n <TouchableOpacity onPress={this.onDone}>\n <View style={styles.cancelContainer}>\n <Text style={[styles.cancelText, { color: colourBrandingMain }]}>{cancelText || 'Done'}</Text>\n </View>\n </TouchableOpacity>\n );\n }\n\n renderOptions(title, options, selectedKey) {\n const { colourBrandingMain } = this.props;\n return (\n <View style={styles.optionsContainer}>\n <Text style={styles.optionsTitle}>{title}</Text>\n <View style={styles.options}>\n {options.map(o => {\n const selected = this.state[selectedKey];\n const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';\n const color = o.value === selected ? '#fff' : colourBrandingMain;\n return (\n <TouchableOpacity key={o.label} onPress={() => this.onSelectOption(selectedKey, o.value)}>\n <View style={[styles.optionContainer, { backgroundColor, borderColor: colourBrandingMain }]}>\n <Text style={[styles.optionText, { color }]}>{o.label}</Text>\n </View>\n </TouchableOpacity>\n );\n })}\n </View>\n </View>\n );\n }\n\n render() {\n return (\n <Modal visible transparent animationType=\"slide\" onRequestClose={this.onDone}>\n <View style={styles.container}>\n <View style={styles.menu}>\n {this.renderTitle()}\n <View style={styles.optionContent}>\n {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}\n {this.renderOptions('Type', this.state.types, 'selectedType')}\n </View>\n {this.renderCancel()}\n </View>\n </View>\n </Modal>\n );\n }\n}\n\nconst styles = {\n container: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.5)',\n zIndex: 1000,\n },\n menu: {\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: '#fff',\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n },\n cancelContainer: {\n paddingVertical: 16,\n borderColor: Colours.LINEGREY,\n borderTopWidth: 1,\n paddingHorizontal: 16,\n },\n cancelText: {\n fontFamily: 'sf-medium',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n titleContainer: {\n padding: 16,\n borderColor: Colours.LINEGREY,\n borderBottomWidth: 1,\n },\n titleText: {\n fontFamily: 'sf-semibold',\n fontSize: 16,\n textAlign: 'center',\n color: Colours.TEXT_DARK,\n },\n optionContent: {\n paddingVertical: 10,\n },\n optionsContainer: {\n marginHorizontal: 14,\n },\n optionsTitle: {\n fontFamily: 'sf-semibold',\n marginBottom: 4,\n },\n options: {\n flex: 1,\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n optionContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: 50,\n height: 30,\n paddingHorizontal: 8,\n borderRadius: 4,\n borderWidth: 1,\n marginRight: 8,\n marginBottom: 8,\n },\n optionText: {\n color: '#fff',\n textAlign: 'center',\n fontFamily: 'sf-semibold',\n fontSize: 13,\n },\n};\n\nconst mapStateToProps = state => {\n const { user } = state;\n\n return {\n site: user.site,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
-
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
3
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
3
4
|
import React, { Component } from 'react';
|
4
5
|
import { View, StyleSheet, FlatList, TouchableOpacity, Text } from 'react-native';
|
5
6
|
import _ from 'lodash';
|
@@ -9,24 +10,21 @@ import { jobsLoaded, jobAdded, jobsAdded } from '../actions';
|
|
9
10
|
import MaintenanceListItem from '../components/MaintenanceListItem';
|
10
11
|
import FilterPopupMenu from './FilterPopupMenu';
|
11
12
|
import { Components, Colours, Config, Helper } from '../core.config';
|
12
|
-
|
13
13
|
class MaintenanceList extends Component {
|
14
14
|
constructor(props) {
|
15
15
|
var _this;
|
16
|
-
|
17
16
|
super(props);
|
18
17
|
_this = this;
|
19
|
-
|
20
18
|
_defineProperty(this, "refresh", () => {
|
21
19
|
this.onLoadingChanged(true, async () => {
|
22
20
|
try {
|
23
21
|
const {
|
24
22
|
selectedStatus,
|
25
23
|
selectedType
|
26
|
-
} = this.state;
|
27
|
-
|
28
|
-
const res = await generalActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
|
29
|
-
|
24
|
+
} = this.state;
|
25
|
+
// console.log('filters', { selectedStatus, selectedType });
|
26
|
+
const res = await generalActions.getJobsRecursive(this.props.site, selectedStatus, selectedType);
|
27
|
+
// console.log('refresh', res?.data);
|
30
28
|
if (selectedStatus || selectedType) {
|
31
29
|
this.props.jobsAdded(res);
|
32
30
|
} else {
|
@@ -39,7 +37,6 @@ class MaintenanceList extends Component {
|
|
39
37
|
}
|
40
38
|
});
|
41
39
|
});
|
42
|
-
|
43
40
|
_defineProperty(this, "refreshTypes", async () => {
|
44
41
|
const {
|
45
42
|
data
|
@@ -53,19 +50,18 @@ class MaintenanceList extends Component {
|
|
53
50
|
types.splice(0, 0, {
|
54
51
|
label: 'All',
|
55
52
|
value: ''
|
56
|
-
});
|
57
|
-
|
53
|
+
});
|
54
|
+
// console.log('refreshTypes', types);
|
58
55
|
this.setState({
|
59
56
|
types
|
60
57
|
});
|
61
58
|
});
|
62
|
-
|
63
59
|
_defineProperty(this, "fetchJob", jobId => {
|
64
60
|
if (this.state.loading) return;
|
65
61
|
this.onLoadingChanged(true, async () => {
|
66
62
|
try {
|
67
|
-
const job = await generalActions.getJobByJobId(this.props.site, jobId);
|
68
|
-
|
63
|
+
const job = await generalActions.getJobByJobId(this.props.site, jobId);
|
64
|
+
// console.log('fetchJob', job?.data);
|
69
65
|
this.props.jobAdded(job.data);
|
70
66
|
} catch (error) {
|
71
67
|
console.log('fetchJob error', error);
|
@@ -74,7 +70,6 @@ class MaintenanceList extends Component {
|
|
74
70
|
}
|
75
71
|
});
|
76
72
|
});
|
77
|
-
|
78
73
|
_defineProperty(this, "resetDataSource", function () {
|
79
74
|
let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
80
75
|
const {
|
@@ -87,39 +82,30 @@ class MaintenanceList extends Component {
|
|
87
82
|
} = _this.props;
|
88
83
|
let filteredList = jobs;
|
89
84
|
let jobIdMatch = null;
|
90
|
-
|
91
85
|
if (searchText) {
|
92
86
|
jobIdMatch = _.find(jobs, j => j.jobId === searchText);
|
93
87
|
filteredList = jobs.filter(j => {
|
94
88
|
if (j.room && j.room.toLowerCase().indexOf(searchText.toLowerCase()) > -1) {
|
95
89
|
return true;
|
96
90
|
}
|
97
|
-
|
98
91
|
return false;
|
99
92
|
});
|
100
93
|
if (!jobIdMatch) _this.fetchJob(searchText);
|
101
94
|
}
|
102
|
-
|
103
95
|
if (selectedStatus) filteredList = filteredList.filter(j => selectedStatus.includes(j.status));
|
104
96
|
if (selectedType) filteredList = filteredList.filter(j => selectedType.includes(j.type));
|
105
|
-
|
106
97
|
if (jobIdMatch) {
|
107
98
|
const jobIndex = filteredList.indexOf(jobIdMatch);
|
108
|
-
|
109
99
|
if (jobIndex > -1) {
|
110
100
|
filteredList.splice(jobIndex, 1);
|
111
101
|
}
|
112
|
-
|
113
102
|
filteredList.unshift(jobIdMatch);
|
114
103
|
}
|
115
|
-
|
116
104
|
if (source !== 'search') _this.refresh();
|
117
|
-
|
118
105
|
_this.setState({
|
119
106
|
filteredList
|
120
107
|
});
|
121
108
|
});
|
122
|
-
|
123
109
|
_defineProperty(this, "onLoadingChanged", (loading, callback) => {
|
124
110
|
this.setState({
|
125
111
|
loading
|
@@ -128,7 +114,6 @@ class MaintenanceList extends Component {
|
|
128
114
|
if (callback) callback();
|
129
115
|
});
|
130
116
|
});
|
131
|
-
|
132
117
|
_defineProperty(this, "onSearchText", value => {
|
133
118
|
this.setState({
|
134
119
|
searchText: value
|
@@ -136,17 +121,14 @@ class MaintenanceList extends Component {
|
|
136
121
|
if (_.isEmpty(this.state.searchText)) this.resetDataSource('search');
|
137
122
|
});
|
138
123
|
});
|
139
|
-
|
140
124
|
_defineProperty(this, "onSearchSubmit", () => {
|
141
125
|
this.resetDataSource('search');
|
142
126
|
});
|
143
|
-
|
144
127
|
_defineProperty(this, "onToggleFilter", () => {
|
145
128
|
this.setState({
|
146
129
|
showFilterPopup: !this.state.showFilterPopup
|
147
130
|
});
|
148
131
|
});
|
149
|
-
|
150
132
|
_defineProperty(this, "onSelectFilter", selected => {
|
151
133
|
this.setState({
|
152
134
|
selectedStatus: selected.status,
|
@@ -156,7 +138,6 @@ class MaintenanceList extends Component {
|
|
156
138
|
this.onToggleFilter();
|
157
139
|
});
|
158
140
|
});
|
159
|
-
|
160
141
|
this.state = {
|
161
142
|
types: [],
|
162
143
|
filteredList: props.jobs,
|
@@ -167,26 +148,21 @@ class MaintenanceList extends Component {
|
|
167
148
|
selectedType: ''
|
168
149
|
};
|
169
150
|
}
|
170
|
-
|
171
151
|
componentDidMount() {
|
172
152
|
this.refresh();
|
173
153
|
this.refreshTypes();
|
174
154
|
this.resetDataSource();
|
175
155
|
}
|
176
|
-
|
177
156
|
componentDidUpdate(prevProps) {
|
178
157
|
if (!prevProps.dataUpdated && this.props.dataUpdated) this.refresh();
|
179
158
|
if (!_.isEqual(prevProps.jobs, this.props.jobs)) this.resetDataSource();
|
180
159
|
}
|
181
|
-
|
182
160
|
getEmptyStateText() {
|
183
161
|
if (this.props.options && !_.isEmpty(this.props.options.EmptyText)) {
|
184
162
|
return this.props.options.EmptyText;
|
185
163
|
}
|
186
|
-
|
187
164
|
return this.props.userCategory === 'staff' ? Config.env.strings.EMPTY_REQUESTS_STAFF : Config.env.strings.EMPTY_REQUESTS_USER;
|
188
165
|
}
|
189
|
-
|
190
166
|
renderEmptyList() {
|
191
167
|
return this.state.loading ? null : /*#__PURE__*/React.createElement(Components.EmptyStateMain, {
|
192
168
|
title: this.getEmptyStateText(),
|
@@ -195,7 +171,6 @@ class MaintenanceList extends Component {
|
|
195
171
|
}
|
196
172
|
});
|
197
173
|
}
|
198
|
-
|
199
174
|
renderFilterButton() {
|
200
175
|
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
201
176
|
onPress: this.onToggleFilter
|
@@ -207,7 +182,6 @@ class MaintenanceList extends Component {
|
|
207
182
|
}]
|
208
183
|
}, "Filter")));
|
209
184
|
}
|
210
|
-
|
211
185
|
renderSearch() {
|
212
186
|
if (!this.props.hasPermission) return null;
|
213
187
|
return /*#__PURE__*/React.createElement(View, {
|
@@ -218,12 +192,12 @@ class MaintenanceList extends Component {
|
|
218
192
|
onChangeText: this.onSearchText,
|
219
193
|
onSubmitEditing: this.onSearchSubmit,
|
220
194
|
squaredCorners: true,
|
221
|
-
hasClear: true
|
195
|
+
hasClear: true
|
196
|
+
// keyboardType={'numeric'}
|
222
197
|
,
|
223
198
|
returnKeyType: 'done'
|
224
199
|
}));
|
225
200
|
}
|
226
|
-
|
227
201
|
renderListHeader() {
|
228
202
|
const {
|
229
203
|
ListHeaderComponent
|
@@ -234,7 +208,6 @@ class MaintenanceList extends Component {
|
|
234
208
|
}
|
235
209
|
}), this.renderFilterButton(), this.renderSearch());
|
236
210
|
}
|
237
|
-
|
238
211
|
renderList() {
|
239
212
|
const {
|
240
213
|
filteredList
|
@@ -262,7 +235,6 @@ class MaintenanceList extends Component {
|
|
262
235
|
ListHeaderComponent: this.renderListHeader()
|
263
236
|
});
|
264
237
|
}
|
265
|
-
|
266
238
|
renderFilterPopup() {
|
267
239
|
const {
|
268
240
|
showFilterPopup,
|
@@ -279,15 +251,12 @@ class MaintenanceList extends Component {
|
|
279
251
|
onClose: this.onSelectFilter
|
280
252
|
});
|
281
253
|
}
|
282
|
-
|
283
254
|
render() {
|
284
255
|
return /*#__PURE__*/React.createElement(View, {
|
285
256
|
style: [styles.container, this.props.style]
|
286
257
|
}, this.renderList(), this.renderFilterPopup());
|
287
258
|
}
|
288
|
-
|
289
259
|
}
|
290
|
-
|
291
260
|
const styles = StyleSheet.create({
|
292
261
|
container: {
|
293
262
|
flex: 1,
|
@@ -334,18 +303,14 @@ const styles = StyleSheet.create({
|
|
334
303
|
fontSize: 16
|
335
304
|
}
|
336
305
|
});
|
337
|
-
|
338
306
|
const mapStateToProps = state => {
|
339
307
|
const {
|
340
308
|
user,
|
341
309
|
jobs,
|
342
310
|
notifications
|
343
311
|
} = state;
|
344
|
-
|
345
312
|
const jobsOrdered = _.orderBy(jobs.jobs, ['createdUnix'], ['desc']);
|
346
|
-
|
347
313
|
const hasPermission = _.includes(user.permissions, 'maintenanceTracking');
|
348
|
-
|
349
314
|
return {
|
350
315
|
hasPermission,
|
351
316
|
jobs: jobsOrdered,
|
@@ -355,7 +320,6 @@ const mapStateToProps = state => {
|
|
355
320
|
dataUpdated: notifications.dataUpdated['jobs']
|
356
321
|
};
|
357
322
|
};
|
358
|
-
|
359
323
|
export default connect(mapStateToProps, {
|
360
324
|
jobsLoaded,
|
361
325
|
jobAdded,
|