@plusscommunities/pluss-maintenance-app-forms 6.0.10 → 6.0.11-auth.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 (106) 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/index.js +1 -1
  4. package/dist/module/actions/index.js.map +1 -1
  5. package/dist/module/actions/types.js +4 -1
  6. package/dist/module/actions/types.js.map +1 -1
  7. package/dist/module/apis/index.js +4 -1
  8. package/dist/module/apis/index.js.map +1 -1
  9. package/dist/module/apis/maintenanceActions.js +61 -38
  10. package/dist/module/apis/maintenanceActions.js.map +1 -1
  11. package/dist/module/apis/userActions.js +23 -0
  12. package/dist/module/apis/userActions.js.map +1 -0
  13. package/dist/module/components/FilterPopupMenu.js +82 -58
  14. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  15. package/dist/module/components/MaintenanceList.js +84 -92
  16. package/dist/module/components/MaintenanceList.js.map +1 -1
  17. package/dist/module/components/MaintenanceListItem.js +94 -80
  18. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  19. package/dist/module/components/MaintenanceWidgetItem.js +39 -38
  20. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  21. package/dist/module/components/PrioritySelectorPopup.js +83 -0
  22. package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
  23. package/dist/module/components/StatusSelectorPopup.js +23 -27
  24. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  25. package/dist/module/components/WidgetLarge.js +2 -2
  26. package/dist/module/components/WidgetLarge.js.map +1 -1
  27. package/dist/module/components/WidgetSmall.js +25 -20
  28. package/dist/module/components/WidgetSmall.js.map +1 -1
  29. package/dist/module/core.config.js +2 -3
  30. package/dist/module/core.config.js.map +1 -1
  31. package/dist/module/feature.config.js +17 -17
  32. package/dist/module/feature.config.js.map +1 -1
  33. package/dist/module/helper.js +41 -26
  34. package/dist/module/helper.js.map +1 -1
  35. package/dist/module/index.js +12 -10
  36. package/dist/module/index.js.map +1 -1
  37. package/dist/module/reducers/JobsReducer.js +36 -6
  38. package/dist/module/reducers/JobsReducer.js.map +1 -1
  39. package/dist/module/screens/JobTypePicker.js +18 -17
  40. package/dist/module/screens/JobTypePicker.js.map +1 -1
  41. package/dist/module/screens/MaintenancePage.js +10 -10
  42. package/dist/module/screens/MaintenancePage.js.map +1 -1
  43. package/dist/module/screens/MaintenanceUserPicker.js +219 -0
  44. package/dist/module/screens/MaintenanceUserPicker.js.map +1 -0
  45. package/dist/module/screens/RequestDetail.js +410 -142
  46. package/dist/module/screens/RequestDetail.js.map +1 -1
  47. package/dist/module/screens/RequestNotes.js +462 -52
  48. package/dist/module/screens/RequestNotes.js.map +1 -1
  49. package/dist/module/screens/ServiceRequest.js +519 -181
  50. package/dist/module/screens/ServiceRequest.js.map +1 -1
  51. package/dist/module/values.config.a.js +30 -23
  52. package/dist/module/values.config.a.js.map +1 -1
  53. package/dist/module/values.config.default.js +35 -28
  54. package/dist/module/values.config.default.js.map +1 -1
  55. package/dist/module/values.config.enquiry.js +43 -0
  56. package/dist/module/values.config.enquiry.js.map +1 -0
  57. package/dist/module/values.config.feedback.js +43 -0
  58. package/dist/module/values.config.feedback.js.map +1 -0
  59. package/dist/module/values.config.food.js +43 -0
  60. package/dist/module/values.config.food.js.map +1 -0
  61. package/dist/module/values.config.forms.js +35 -28
  62. package/dist/module/values.config.forms.js.map +1 -1
  63. package/dist/module/values.config.js +35 -28
  64. package/dist/module/values.config.js.map +1 -1
  65. package/package.json +55 -51
  66. package/src/actions/JobActions.js +75 -16
  67. package/src/actions/index.js +1 -1
  68. package/src/actions/types.js +4 -1
  69. package/src/apis/index.js +6 -1
  70. package/src/apis/maintenanceActions.js +189 -160
  71. package/src/apis/userActions.js +21 -0
  72. package/src/components/FilterPopupMenu.js +316 -230
  73. package/src/components/MaintenanceList.js +391 -326
  74. package/src/components/MaintenanceListItem.js +348 -274
  75. package/src/components/MaintenanceWidgetItem.js +146 -120
  76. package/src/components/PrioritySelectorPopup.js +93 -0
  77. package/src/components/StatusSelectorPopup.js +82 -76
  78. package/src/components/WidgetLarge.js +5 -5
  79. package/src/components/WidgetSmall.js +154 -131
  80. package/src/core.config.js +25 -3
  81. package/src/feature.config.js +62 -62
  82. package/src/helper.js +67 -30
  83. package/src/index.js +22 -20
  84. package/src/reducers/JobsReducer.js +85 -41
  85. package/src/screens/JobTypePicker.js +116 -92
  86. package/src/screens/MaintenancePage.js +89 -80
  87. package/src/screens/MaintenanceUserPicker.js +233 -0
  88. package/src/screens/RequestDetail.js +1354 -892
  89. package/src/screens/RequestNotes.js +946 -408
  90. package/src/screens/ServiceRequest.js +1808 -1222
  91. package/src/values.config.a.js +33 -26
  92. package/src/values.config.default.js +39 -32
  93. package/src/values.config.enquiry.js +43 -0
  94. package/src/values.config.feedback.js +43 -0
  95. package/src/values.config.food.js +43 -0
  96. package/src/values.config.forms.js +39 -32
  97. package/src/values.config.js +39 -32
  98. package/dist/module/values.config.b.js +0 -30
  99. package/dist/module/values.config.b.js.map +0 -1
  100. package/dist/module/values.config.c.js +0 -30
  101. package/dist/module/values.config.c.js.map +0 -1
  102. package/dist/module/values.config.d.js +0 -30
  103. package/dist/module/values.config.d.js.map +0 -1
  104. package/src/values.config.b.js +0 -30
  105. package/src/values.config.c.js +0 -30
  106. package/src/values.config.d.js +0 -30
@@ -1,16 +1,47 @@
1
1
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
- import React, { Component } from 'react';
5
- import { View, Text, TouchableOpacity, Modal, ScrollView, Dimensions } from 'react-native';
6
- import { connect } from 'react-redux';
7
- import _ from 'lodash';
8
- import { maintenanceActions } from '../apis';
9
- import { Colours, Helper } from '../core.config';
10
- const SCREEN_HEIGHT = Dimensions.get('window').height;
4
+ import React, { Component } from "react";
5
+ import { Text } from "@plusscommunities/pluss-core-app/components";
6
+ import { View, TouchableOpacity, Modal, ScrollView, Dimensions } from "react-native";
7
+ import { connect } from "react-redux";
8
+ import _ from "lodash";
9
+ import { maintenanceActions } from "../apis";
10
+ import { Colours, Helper } from "../core.config";
11
+ import { getJobStatusOptions, getIncompleteJobStatuses, jobPriorityOptions, getDefaultJobPriority } from "../helper";
12
+ import { values } from "../values.config";
13
+ const SCREEN_HEIGHT = Dimensions.get("window").height;
11
14
  class FilterPopupMenu extends Component {
12
15
  constructor(props) {
13
16
  super(props);
17
+ _defineProperty(this, "getStatusOptions", () => {
18
+ const statusOptions = getJobStatusOptions(this.props);
19
+ const options = [{
20
+ label: "All",
21
+ value: ""
22
+ }, {
23
+ label: "Incomplete",
24
+ value: `Unassigned|${getIncompleteJobStatuses(this.props).map(s => s.text).join("|")}`
25
+ }, ...statusOptions.map(s => ({
26
+ label: s.text,
27
+ value: s.text
28
+ }))];
29
+ // console.log('getStatusOptions', JSON.stringify(options, null, 2));
30
+ return options;
31
+ });
32
+ _defineProperty(this, "getPriorityOptions", () => {
33
+ const priorityOptions = jobPriorityOptions;
34
+ const defaultPriority = getDefaultJobPriority();
35
+ const options = [{
36
+ label: "All",
37
+ value: ""
38
+ }, ...priorityOptions.map(p => ({
39
+ label: p.label,
40
+ value: p.label === (defaultPriority === null || defaultPriority === void 0 ? void 0 : defaultPriority.label) ? `${p.label}|undefined` : p.label
41
+ }))];
42
+ // console.log('getPriorityOptions', JSON.stringify(options, null, 2));
43
+ return options;
44
+ });
14
45
  _defineProperty(this, "getAssignees", async () => {
15
46
  try {
16
47
  const res = await maintenanceActions.getAssignees(this.props.site);
@@ -20,21 +51,21 @@ class FilterPopupMenu extends Component {
20
51
  value: t.id
21
52
  };
22
53
  });
23
- assignees = _.orderBy(assignees, 'label');
54
+ assignees = _.orderBy(assignees, "label");
24
55
  assignees.splice(0, 0, {
25
- label: 'All',
26
- value: ''
56
+ label: "All",
57
+ value: ""
27
58
  });
28
59
  const newState = {
29
60
  assignees
30
61
  };
31
62
  if (!assignees.some(a => a.value === this.state.selectedAssignee)) {
32
- newState.selectedAssignee = '';
63
+ newState.selectedAssignee = "";
33
64
  }
34
65
  // console.log('refreshassignees', assignees);
35
66
  this.setState(newState);
36
67
  } catch (error) {
37
- console.error('getAssignees', error);
68
+ console.error("getAssignees", error);
38
69
  }
39
70
  });
40
71
  _defineProperty(this, "refreshTypes", async () => {
@@ -48,8 +79,8 @@ class FilterPopupMenu extends Component {
48
79
  };
49
80
  });
50
81
  types.splice(0, 0, {
51
- label: 'All',
52
- value: ''
82
+ label: "All",
83
+ value: ""
53
84
  });
54
85
  // console.log('refreshTypes', types);
55
86
  this.setState({
@@ -62,18 +93,21 @@ class FilterPopupMenu extends Component {
62
93
  this.setState(newState);
63
94
  });
64
95
  _defineProperty(this, "onDone", () => {
65
- var _this$statusOptions$f, _this$state$assignees;
96
+ var _this$getStatusOption, _this$getPriorityOpti, _this$state$assignees;
66
97
  const {
67
98
  onClose
68
99
  } = this.props;
69
100
  const {
70
101
  selectedStatus,
102
+ selectedPriority,
71
103
  selectedType,
72
104
  selectedAssignee
73
105
  } = this.state;
74
106
  if (onClose) onClose({
75
107
  status: selectedStatus,
76
- statusText: (_this$statusOptions$f = this.statusOptions.find(o => o.value === selectedStatus)) === null || _this$statusOptions$f === void 0 ? void 0 : _this$statusOptions$f.label,
108
+ statusText: (_this$getStatusOption = this.getStatusOptions().find(o => o.value === selectedStatus)) === null || _this$getStatusOption === void 0 ? void 0 : _this$getStatusOption.label,
109
+ priority: selectedPriority,
110
+ priorityText: (_this$getPriorityOpti = this.getPriorityOptions().find(o => o.value === selectedPriority)) === null || _this$getPriorityOpti === void 0 ? void 0 : _this$getPriorityOpti.label,
77
111
  type: selectedType,
78
112
  assignee: selectedAssignee,
79
113
  assigneeName: (_this$state$assignees = this.state.assignees.find(a => a.value === selectedAssignee)) === null || _this$state$assignees === void 0 ? void 0 : _this$state$assignees.label
@@ -81,27 +115,12 @@ class FilterPopupMenu extends Component {
81
115
  });
82
116
  this.state = {
83
117
  types: props.types || [],
84
- selectedStatus: props.status || '',
85
- selectedType: props.type || '',
86
- selectedAssignee: props.assignee || '',
118
+ selectedStatus: props.status || "",
119
+ selectedPriority: props.priority || "",
120
+ selectedType: props.type || "",
121
+ selectedAssignee: props.assignee || "",
87
122
  assignees: []
88
123
  };
89
- this.statusOptions = [{
90
- label: 'All',
91
- value: ''
92
- }, {
93
- label: 'Incomplete',
94
- value: 'Unassigned|In Progress'
95
- }, {
96
- label: 'Open',
97
- value: 'Unassigned'
98
- }, {
99
- label: 'In Progress',
100
- value: 'In Progress'
101
- }, {
102
- label: 'Completed',
103
- value: 'Completed'
104
- }];
105
124
  }
106
125
  componentDidMount() {
107
126
  this.getAssignees();
@@ -120,7 +139,7 @@ class FilterPopupMenu extends Component {
120
139
  style: styles.titleContainer
121
140
  }, /*#__PURE__*/React.createElement(Text, {
122
141
  style: styles.titleText
123
- }, title || 'Filter By'));
142
+ }, title || "Filter By"));
124
143
  }
125
144
  renderCancel() {
126
145
  const {
@@ -135,7 +154,7 @@ class FilterPopupMenu extends Component {
135
154
  style: [styles.cancelText, {
136
155
  color: colourBrandingMain
137
156
  }]
138
- }, cancelText || 'Done')));
157
+ }, cancelText || "Done")));
139
158
  }
140
159
  renderOptions(title, options, selectedKey) {
141
160
  const {
@@ -149,8 +168,8 @@ class FilterPopupMenu extends Component {
149
168
  style: styles.options
150
169
  }, options.map(o => {
151
170
  const selected = this.state[selectedKey];
152
- const backgroundColor = o.value === selected ? colourBrandingMain : '#fff';
153
- const color = o.value === selected ? '#fff' : colourBrandingMain;
171
+ const backgroundColor = o.value === selected ? colourBrandingMain : "#fff";
172
+ const color = o.value === selected ? "#fff" : colourBrandingMain;
154
173
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
155
174
  key: o.label,
156
175
  onPress: () => this.onSelectOption(selectedKey, o.value)
@@ -167,6 +186,9 @@ class FilterPopupMenu extends Component {
167
186
  })));
168
187
  }
169
188
  render() {
189
+ // console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))
190
+ const isStaff = this.props.user.category === "staff";
191
+ const canFilterAssignee = !_.includes(this.props.user.permissions, values.permissionMaintenanceAssignment);
170
192
  return /*#__PURE__*/React.createElement(Modal, {
171
193
  visible: true,
172
194
  transparent: true,
@@ -178,25 +200,25 @@ class FilterPopupMenu extends Component {
178
200
  style: styles.menu
179
201
  }, this.renderTitle(), /*#__PURE__*/React.createElement(ScrollView, {
180
202
  style: styles.optionContent
181
- }, this.renderOptions('Status', this.statusOptions, 'selectedStatus'), this.renderOptions('Type', this.state.types, 'selectedType'), this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee')), this.renderCancel())));
203
+ }, this.renderOptions("Status", this.getStatusOptions(), "selectedStatus"), isStaff ? this.renderOptions("Priority", this.getPriorityOptions(), "selectedPriority") : null, this.renderOptions("Type", this.state.types, "selectedType"), canFilterAssignee ? this.renderOptions("Assigned To", this.state.assignees, "selectedAssignee") : null), this.renderCancel())));
182
204
  }
183
205
  }
184
206
  const styles = {
185
207
  container: {
186
- position: 'absolute',
208
+ position: "absolute",
187
209
  bottom: 0,
188
210
  left: 0,
189
211
  right: 0,
190
212
  top: 0,
191
- backgroundColor: 'rgba(0,0,0,0.5)',
213
+ backgroundColor: "rgba(0,0,0,0.5)",
192
214
  zIndex: 1000
193
215
  },
194
216
  menu: {
195
- position: 'absolute',
217
+ position: "absolute",
196
218
  bottom: 0,
197
219
  left: 0,
198
220
  right: 0,
199
- backgroundColor: '#fff',
221
+ backgroundColor: "#fff",
200
222
  borderTopLeftRadius: 12,
201
223
  borderTopRightRadius: 12,
202
224
  maxHeight: SCREEN_HEIGHT * 0.8
@@ -208,9 +230,9 @@ const styles = {
208
230
  paddingHorizontal: 16
209
231
  },
210
232
  cancelText: {
211
- fontFamily: 'sf-medium',
233
+ fontFamily: "sf-medium",
212
234
  fontSize: 16,
213
- textAlign: 'center',
235
+ textAlign: "center",
214
236
  color: Colours.TEXT_DARK
215
237
  },
216
238
  titleContainer: {
@@ -219,9 +241,9 @@ const styles = {
219
241
  borderBottomWidth: 1
220
242
  },
221
243
  titleText: {
222
- fontFamily: 'sf-semibold',
244
+ fontFamily: "sf-semibold",
223
245
  fontSize: 16,
224
- textAlign: 'center',
246
+ textAlign: "center",
225
247
  color: Colours.TEXT_DARK
226
248
  },
227
249
  optionContent: {
@@ -231,18 +253,18 @@ const styles = {
231
253
  marginHorizontal: 14
232
254
  },
233
255
  optionsTitle: {
234
- fontFamily: 'sf-semibold',
256
+ fontFamily: "sf-semibold",
235
257
  marginBottom: 4
236
258
  },
237
259
  options: {
238
260
  flex: 1,
239
- flexDirection: 'row',
240
- flexWrap: 'wrap'
261
+ flexDirection: "row",
262
+ flexWrap: "wrap"
241
263
  },
242
264
  optionContainer: {
243
- flexDirection: 'row',
244
- alignItems: 'center',
245
- justifyContent: 'center',
265
+ flexDirection: "row",
266
+ alignItems: "center",
267
+ justifyContent: "center",
246
268
  minWidth: 50,
247
269
  height: 30,
248
270
  paddingHorizontal: 8,
@@ -252,9 +274,9 @@ const styles = {
252
274
  marginBottom: 8
253
275
  },
254
276
  optionText: {
255
- color: '#fff',
256
- textAlign: 'center',
257
- fontFamily: 'sf-semibold',
277
+ color: "#fff",
278
+ textAlign: "center",
279
+ fontFamily: "sf-semibold",
258
280
  fontSize: 13
259
281
  }
260
282
  };
@@ -263,8 +285,10 @@ const mapStateToProps = state => {
263
285
  user
264
286
  } = state;
265
287
  return {
288
+ user,
266
289
  site: user.site,
267
- colourBrandingMain: Colours.getMainBrandingColourFromState(state)
290
+ colourBrandingMain: Colours.getMainBrandingColourFromState(state),
291
+ statusTypes: state[values.reducerKey].jobstatuses
268
292
  };
269
293
  };
270
294
  export default connect(mapStateToProps, {})(FilterPopupMenu);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","Text","TouchableOpacity","Modal","ScrollView","Dimensions","connect","_","maintenanceActions","Colours","Helper","SCREEN_HEIGHT","get","height","FilterPopupMenu","constructor","props","_defineProperty","res","getAssignees","site","assignees","data","Users","map","t","label","displayName","value","id","orderBy","splice","newState","some","a","state","selectedAssignee","setState","error","console","getJobTypes","getSite","types","typeName","key","_this$statusOptions$f","_this$state$assignees","onClose","selectedStatus","selectedType","status","statusText","statusOptions","find","o","type","assignee","assigneeName","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","options","selectedKey","optionsContainer","optionsTitle","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","maxHeight","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","borderRadius","borderWidth","marginRight","mapStateToProps","user","getMainBrandingColourFromState"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { View, Text, TouchableOpacity, Modal, ScrollView, Dimensions } from 'react-native';\nimport { connect } from 'react-redux';\nimport _ from 'lodash';\nimport { maintenanceActions } from '../apis';\nimport { Colours, Helper } from '../core.config';\n\nconst SCREEN_HEIGHT = Dimensions.get('window').height;\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 selectedAssignee: props.assignee || '',\n assignees: [],\n };\n this.statusOptions = [\n {\n label: 'All',\n value: '',\n },\n {\n label: 'Incomplete',\n value: 'Unassigned|In Progress',\n },\n {\n label: 'Open',\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 this.getAssignees();\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 getAssignees = async () => {\n try {\n const res = await maintenanceActions.getAssignees(this.props.site);\n let assignees = res.data.Users.map(t => {\n return { label: t.displayName, value: t.id };\n });\n assignees = _.orderBy(assignees, 'label');\n\n assignees.splice(0, 0, { label: 'All', value: '' });\n\n const newState = { assignees };\n\n if (!assignees.some(a => a.value === this.state.selectedAssignee)) {\n newState.selectedAssignee = '';\n }\n // console.log('refreshassignees', assignees);\n this.setState(newState);\n } catch (error) {\n console.error('getAssignees', error);\n }\n };\n\n refreshTypes = async () => {\n const { data } = await maintenanceActions.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, selectedAssignee } = this.state;\n if (onClose)\n onClose({\n status: selectedStatus,\n statusText: this.statusOptions.find(o => o.value === selectedStatus)?.label,\n type: selectedType,\n assignee: selectedAssignee,\n assigneeName: this.state.assignees.find(a => a.value === selectedAssignee)?.label,\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 <ScrollView style={styles.optionContent}>\n {this.renderOptions('Status', this.statusOptions, 'selectedStatus')}\n {this.renderOptions('Type', this.state.types, 'selectedType')}\n {this.renderOptions('Assigned To', this.state.assignees, 'selectedAssignee')}\n </ScrollView>\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 maxHeight: SCREEN_HEIGHT * 0.8,\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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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Text","View","TouchableOpacity","Modal","ScrollView","Dimensions","connect","_","maintenanceActions","Colours","Helper","getJobStatusOptions","getIncompleteJobStatuses","jobPriorityOptions","getDefaultJobPriority","values","SCREEN_HEIGHT","get","height","FilterPopupMenu","constructor","props","_defineProperty","statusOptions","options","label","value","map","s","text","join","priorityOptions","defaultPriority","p","res","getAssignees","site","assignees","data","Users","t","displayName","id","orderBy","splice","newState","some","a","state","selectedAssignee","setState","error","console","getJobTypes","getSite","types","typeName","key","_this$getStatusOption","_this$getPriorityOpti","_this$state$assignees","onClose","selectedStatus","selectedPriority","selectedType","status","statusText","getStatusOptions","find","o","priority","priorityText","getPriorityOptions","type","assignee","assigneeName","componentDidMount","isEmpty","refreshTypes","componentDidUpdate","prevProps","renderTitle","title","createElement","style","styles","titleContainer","titleText","renderCancel","colourBrandingMain","cancelText","onPress","onDone","cancelContainer","color","renderOptions","selectedKey","optionsContainer","optionsTitle","selected","backgroundColor","onSelectOption","optionContainer","borderColor","optionText","render","isStaff","user","category","canFilterAssignee","includes","permissions","permissionMaintenanceAssignment","visible","transparent","animationType","onRequestClose","container","menu","optionContent","position","bottom","left","right","top","zIndex","borderTopLeftRadius","borderTopRightRadius","maxHeight","paddingVertical","LINEGREY","borderTopWidth","paddingHorizontal","fontFamily","fontSize","textAlign","TEXT_DARK","padding","borderBottomWidth","marginHorizontal","marginBottom","flex","flexDirection","flexWrap","alignItems","justifyContent","minWidth","borderRadius","borderWidth","marginRight","mapStateToProps","getMainBrandingColourFromState","statusTypes","reducerKey","jobstatuses"],"sources":["FilterPopupMenu.js"],"sourcesContent":["import React, { Component } from \"react\";\nimport { Text } from \"@plusscommunities/pluss-core-app/components\";\nimport {\n\tView,\n\tTouchableOpacity,\n\tModal,\n\tScrollView,\n\tDimensions,\n} from \"react-native\";\nimport { connect } from \"react-redux\";\nimport _ from \"lodash\";\nimport { maintenanceActions } from \"../apis\";\nimport { Colours, Helper } from \"../core.config\";\nimport {\n\tgetJobStatusOptions,\n\tgetIncompleteJobStatuses,\n\tjobPriorityOptions,\n\tgetDefaultJobPriority,\n} from \"../helper\";\nimport { values } from \"../values.config\";\n\nconst SCREEN_HEIGHT = Dimensions.get(\"window\").height;\n\nclass FilterPopupMenu extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttypes: props.types || [],\n\t\t\tselectedStatus: props.status || \"\",\n\t\t\tselectedPriority: props.priority || \"\",\n\t\t\tselectedType: props.type || \"\",\n\t\t\tselectedAssignee: props.assignee || \"\",\n\t\t\tassignees: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.getAssignees();\n\t\tif (_.isEmpty(this.state.types)) this.refreshTypes();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (prevProps.site !== this.props.site) {\n\t\t\tthis.refreshTypes();\n\t\t}\n\t}\n\n\tgetStatusOptions = () => {\n\t\tconst statusOptions = getJobStatusOptions(this.props);\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: \"Incomplete\",\n\t\t\t\tvalue: `Unassigned|${getIncompleteJobStatuses(this.props)\n\t\t\t\t\t.map((s) => s.text)\n\t\t\t\t\t.join(\"|\")}`,\n\t\t\t},\n\t\t\t...statusOptions.map((s) => ({\n\t\t\t\tlabel: s.text,\n\t\t\t\tvalue: s.text,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getStatusOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetPriorityOptions = () => {\n\t\tconst priorityOptions = jobPriorityOptions;\n\t\tconst defaultPriority = getDefaultJobPriority();\n\t\tconst options = [\n\t\t\t{\n\t\t\t\tlabel: \"All\",\n\t\t\t\tvalue: \"\",\n\t\t\t},\n\t\t\t...priorityOptions.map((p) => ({\n\t\t\t\tlabel: p.label,\n\t\t\t\tvalue:\n\t\t\t\t\tp.label === defaultPriority?.label ? `${p.label}|undefined` : p.label,\n\t\t\t})),\n\t\t];\n\t\t// console.log('getPriorityOptions', JSON.stringify(options, null, 2));\n\t\treturn options;\n\t};\n\n\tgetAssignees = async () => {\n\t\ttry {\n\t\t\tconst res = await maintenanceActions.getAssignees(this.props.site);\n\t\t\tlet assignees = res.data.Users.map((t) => {\n\t\t\t\treturn { label: t.displayName, value: t.id };\n\t\t\t});\n\t\t\tassignees = _.orderBy(assignees, \"label\");\n\n\t\t\tassignees.splice(0, 0, { label: \"All\", value: \"\" });\n\n\t\t\tconst newState = { assignees };\n\n\t\t\tif (!assignees.some((a) => a.value === this.state.selectedAssignee)) {\n\t\t\t\tnewState.selectedAssignee = \"\";\n\t\t\t}\n\t\t\t// console.log('refreshassignees', assignees);\n\t\t\tthis.setState(newState);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"getAssignees\", error);\n\t\t}\n\t};\n\n\trefreshTypes = async () => {\n\t\tconst { data } = await maintenanceActions.getJobTypes(\n\t\t\tHelper.getSite(this.props.site),\n\t\t);\n\t\tconst types = data.map((t) => {\n\t\t\treturn { label: t.typeName, value: t.typeName };\n\t\t});\n\t\ttypes.splice(0, 0, { label: \"All\", value: \"\" });\n\t\t// console.log('refreshTypes', types);\n\t\tthis.setState({ types });\n\t};\n\n\tonSelectOption = (key, value) => {\n\t\tconst newState = {};\n\t\tnewState[key] = value;\n\t\tthis.setState(newState);\n\t};\n\n\tonDone = () => {\n\t\tconst { onClose } = this.props;\n\t\tconst { selectedStatus, selectedPriority, selectedType, selectedAssignee } =\n\t\t\tthis.state;\n\t\tif (onClose)\n\t\t\tonClose({\n\t\t\t\tstatus: selectedStatus,\n\t\t\t\tstatusText: this.getStatusOptions().find(\n\t\t\t\t\t(o) => o.value === selectedStatus,\n\t\t\t\t)?.label,\n\t\t\t\tpriority: selectedPriority,\n\t\t\t\tpriorityText: this.getPriorityOptions().find(\n\t\t\t\t\t(o) => o.value === selectedPriority,\n\t\t\t\t)?.label,\n\t\t\t\ttype: selectedType,\n\t\t\t\tassignee: selectedAssignee,\n\t\t\t\tassigneeName: this.state.assignees.find(\n\t\t\t\t\t(a) => a.value === selectedAssignee,\n\t\t\t\t)?.label,\n\t\t\t});\n\t};\n\n\trenderTitle() {\n\t\tconst { title } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.titleContainer}>\n\t\t\t\t<Text style={styles.titleText}>{title || \"Filter By\"}</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trenderCancel() {\n\t\tconst { colourBrandingMain, cancelText } = this.props;\n\t\treturn (\n\t\t\t<TouchableOpacity onPress={this.onDone}>\n\t\t\t\t<View style={styles.cancelContainer}>\n\t\t\t\t\t<Text style={[styles.cancelText, { color: colourBrandingMain }]}>\n\t\t\t\t\t\t{cancelText || \"Done\"}\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableOpacity>\n\t\t);\n\t}\n\n\trenderOptions(title, options, selectedKey) {\n\t\tconst { colourBrandingMain } = this.props;\n\t\treturn (\n\t\t\t<View style={styles.optionsContainer}>\n\t\t\t\t<Text style={styles.optionsTitle}>{title}</Text>\n\t\t\t\t<View style={styles.options}>\n\t\t\t\t\t{options.map((o) => {\n\t\t\t\t\t\tconst selected = this.state[selectedKey];\n\t\t\t\t\t\tconst backgroundColor =\n\t\t\t\t\t\t\to.value === selected ? colourBrandingMain : \"#fff\";\n\t\t\t\t\t\tconst color = o.value === selected ? \"#fff\" : colourBrandingMain;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\t\tkey={o.label}\n\t\t\t\t\t\t\t\tonPress={() => this.onSelectOption(selectedKey, o.value)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\tstyles.optionContainer,\n\t\t\t\t\t\t\t\t\t\t{ backgroundColor, borderColor: colourBrandingMain },\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Text style={[styles.optionText, { color }]}>{o.label}</Text>\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\t// console.log('FilterPopupMenu', JSON.stringify({ category: this.props.user.category, permissions: this.props.user.permissions }, null, 2))\n\t\tconst isStaff = this.props.user.category === \"staff\";\n\t\tconst canFilterAssignee = !_.includes(\n\t\t\tthis.props.user.permissions,\n\t\t\tvalues.permissionMaintenanceAssignment,\n\t\t);\n\n\t\treturn (\n\t\t\t<Modal\n\t\t\t\tvisible\n\t\t\t\ttransparent\n\t\t\t\tanimationType=\"slide\"\n\t\t\t\tonRequestClose={this.onDone}\n\t\t\t>\n\t\t\t\t<View style={styles.container}>\n\t\t\t\t\t<View style={styles.menu}>\n\t\t\t\t\t\t{this.renderTitle()}\n\t\t\t\t\t\t<ScrollView style={styles.optionContent}>\n\t\t\t\t\t\t\t{this.renderOptions(\n\t\t\t\t\t\t\t\t\"Status\",\n\t\t\t\t\t\t\t\tthis.getStatusOptions(),\n\t\t\t\t\t\t\t\t\"selectedStatus\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{isStaff\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Priority\",\n\t\t\t\t\t\t\t\t\t\tthis.getPriorityOptions(),\n\t\t\t\t\t\t\t\t\t\t\"selectedPriority\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t\t{this.renderOptions(\"Type\", this.state.types, \"selectedType\")}\n\t\t\t\t\t\t\t{canFilterAssignee\n\t\t\t\t\t\t\t\t? this.renderOptions(\n\t\t\t\t\t\t\t\t\t\t\"Assigned To\",\n\t\t\t\t\t\t\t\t\t\tthis.state.assignees,\n\t\t\t\t\t\t\t\t\t\t\"selectedAssignee\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: null}\n\t\t\t\t\t\t</ScrollView>\n\t\t\t\t\t\t{this.renderCancel()}\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</Modal>\n\t\t);\n\t}\n}\n\nconst styles = {\n\tcontainer: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbackgroundColor: \"rgba(0,0,0,0.5)\",\n\t\tzIndex: 1000,\n\t},\n\tmenu: {\n\t\tposition: \"absolute\",\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbackgroundColor: \"#fff\",\n\t\tborderTopLeftRadius: 12,\n\t\tborderTopRightRadius: 12,\n\t\tmaxHeight: SCREEN_HEIGHT * 0.8,\n\t},\n\tcancelContainer: {\n\t\tpaddingVertical: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderTopWidth: 1,\n\t\tpaddingHorizontal: 16,\n\t},\n\tcancelText: {\n\t\tfontFamily: \"sf-medium\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\ttitleContainer: {\n\t\tpadding: 16,\n\t\tborderColor: Colours.LINEGREY,\n\t\tborderBottomWidth: 1,\n\t},\n\ttitleText: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 16,\n\t\ttextAlign: \"center\",\n\t\tcolor: Colours.TEXT_DARK,\n\t},\n\toptionContent: {\n\t\tpaddingVertical: 10,\n\t},\n\toptionsContainer: {\n\t\tmarginHorizontal: 14,\n\t},\n\toptionsTitle: {\n\t\tfontFamily: \"sf-semibold\",\n\t\tmarginBottom: 4,\n\t},\n\toptions: {\n\t\tflex: 1,\n\t\tflexDirection: \"row\",\n\t\tflexWrap: \"wrap\",\n\t},\n\toptionContainer: {\n\t\tflexDirection: \"row\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tminWidth: 50,\n\t\theight: 30,\n\t\tpaddingHorizontal: 8,\n\t\tborderRadius: 4,\n\t\tborderWidth: 1,\n\t\tmarginRight: 8,\n\t\tmarginBottom: 8,\n\t},\n\toptionText: {\n\t\tcolor: \"#fff\",\n\t\ttextAlign: \"center\",\n\t\tfontFamily: \"sf-semibold\",\n\t\tfontSize: 13,\n\t},\n};\n\nconst mapStateToProps = (state) => {\n\tconst { user } = state;\n\n\treturn {\n\t\tuser,\n\t\tsite: user.site,\n\t\tcolourBrandingMain: Colours.getMainBrandingColourFromState(state),\n\t\tstatusTypes: state[values.reducerKey].jobstatuses,\n\t};\n};\n\nexport default connect(mapStateToProps, {})(FilterPopupMenu);\n"],"mappings":"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","ignoreList":[]}