@plusscommunities/pluss-maintenance-app 6.0.6-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 +17 -15
  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 +44 -145
  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 +10 -13
  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 +19 -135
  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
@@ -5,12 +5,13 @@ import { Icon } from 'react-native-elements';
5
5
  import _ from 'lodash';
6
6
  import moment from 'moment';
7
7
  import { connect } from 'react-redux';
8
- import { maintenanceActions } from '../apis';
8
+ import { generalActions } from '../apis';
9
9
  import { jobAdded } from '../actions';
10
10
  import StatusSelectorPopup from '../components/StatusSelectorPopup';
11
11
  import { jobStatusOptions, getJobStatusProps } from '../helper';
12
12
  import { Services } from '../feature.config';
13
13
  import { Colours, Helper, Components, Config } from '../core.config';
14
+ import { values } from '../values.config';
14
15
 
15
16
  class RequestDetail extends Component {
16
17
  constructor(props) {
@@ -24,14 +25,13 @@ class RequestDetail extends Component {
24
25
  expectedDate: null,
25
26
  expectedDateText: '',
26
27
  seen: false,
27
- showMore: true,
28
+ showMore: false,
28
29
  showStatusPopup: false,
29
30
  loading: false,
30
31
  showFullscreenVideo: false,
31
32
  currentVideoUrl: '',
32
33
  galleryOpen: false,
33
34
  showMessages: false,
34
- assignees: [],
35
35
  };
36
36
 
37
37
  this.scrollView = React.createRef();
@@ -40,9 +40,7 @@ class RequestDetail extends Component {
40
40
  }
41
41
 
42
42
  componentDidMount() {
43
- this.getJob();
44
43
  this.updateJobState();
45
- this.getAssignees();
46
44
  }
47
45
 
48
46
  componentDidUpdate(prevProps) {
@@ -51,38 +49,6 @@ class RequestDetail extends Component {
51
49
  }
52
50
  }
53
51
 
54
- getJob = async () => {
55
- console.log('getting job');
56
- this.setState({ loading: true }, async () => {
57
- try {
58
- const res = await maintenanceActions.getJob(this.props.job.site, this.props.job.id);
59
- this.props.jobAdded(res.data);
60
- console.log('got the job');
61
- } catch (error) {
62
- console.log('getJob error', error.toString());
63
- // check for 403 or 404 error
64
- if (error.response.status === 403 || error.response.status === 404) {
65
- this.setState({
66
- forbidden: true,
67
- });
68
- }
69
- console.log('getJob error', error);
70
- } finally {
71
- this.setState({ loading: false });
72
- }
73
- });
74
- };
75
-
76
- getAssignees = async () => {
77
- if (!this.hasPermission()) return;
78
- try {
79
- const res = await maintenanceActions.getAssignees(this.props.user.site);
80
- this.setState({ assignees: res.data.Users });
81
- } catch (error) {
82
- console.log('getAssignees error', error);
83
- }
84
- };
85
-
86
52
  updateJobState() {
87
53
  const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || this.props.job;
88
54
  const newState = { job, status: job.status };
@@ -108,7 +74,7 @@ class RequestDetail extends Component {
108
74
  this.setState({ loading: true }, async () => {
109
75
  try {
110
76
  const updated = { id: job.id, seen: true, status: job.status || 'Unassigned' };
111
- const res = await maintenanceActions.editJob(updated, user.site);
77
+ const res = await generalActions.editJob(updated, user.site);
112
78
  // console.log('markSeen updated');
113
79
  this.props.jobAdded(res.data.job);
114
80
  this.setState({ loading: false, seen: true });
@@ -130,7 +96,7 @@ class RequestDetail extends Component {
130
96
  .utc()
131
97
  .toISOString();
132
98
  }
133
- const res = await maintenanceActions.editJob(updated, user.site);
99
+ const res = await generalActions.editJob(updated, user.site);
134
100
  this.props.jobAdded(res.data.job);
135
101
  } catch (error) {
136
102
  console.log('updateJob error', error);
@@ -143,7 +109,7 @@ class RequestDetail extends Component {
143
109
  updateJobStatus = () => {
144
110
  this.setState({ loading: true }, async () => {
145
111
  try {
146
- const res = await maintenanceActions.editJobStatus(this.props.job.id, this.state.status);
112
+ const res = await generalActions.editJobStatus(this.props.job.id, this.state.status);
147
113
  this.props.jobAdded(res.data.job);
148
114
  } catch (error) {
149
115
  console.log('updateJobStatus error', error);
@@ -172,7 +138,7 @@ class RequestDetail extends Component {
172
138
  };
173
139
 
174
140
  openStaffNotes = () => {
175
- Services.navigation.navigate('requestNotes', { job: this.state.job });
141
+ Services.navigation.navigate(values.screenRequestNotes, { job: this.state.job });
176
142
  };
177
143
 
178
144
  onOpenDatePicker = () => {
@@ -216,7 +182,7 @@ class RequestDetail extends Component {
216
182
  onCommentAdded = () => {
217
183
  this.setState({ loading: true }, async () => {
218
184
  try {
219
- const job = await maintenanceActions.getJob(this.props.user.site, this.props.job.id);
185
+ const job = await generalActions.getJob(this.props.user.site, this.props.job.id);
220
186
  // console.log('onCommentAdded', job?.data);
221
187
  this.props.jobAdded(job.data);
222
188
  } catch (error) {
@@ -228,15 +194,8 @@ class RequestDetail extends Component {
228
194
  };
229
195
 
230
196
  hasPermission = () => {
231
- const { job } = this.state;
232
197
  const { permissions } = this.props.user;
233
- if (_.includes(permissions, 'maintenanceTracking')) {
234
- return true;
235
- }
236
- if (_.includes(permissions, 'maintenanceAssignment')) {
237
- return job.AssigneeId === this.props.user.Id;
238
- }
239
- return false;
198
+ return _.includes(permissions, values.permissionMaintenanceTracking);
240
199
  };
241
200
 
242
201
  toggleFullscreenVideo = url => {
@@ -257,32 +216,6 @@ class RequestDetail extends Component {
257
216
  });
258
217
  }
259
218
 
260
- onOpenAssigneePicker = () => {
261
- const options = this.state.assignees.map(a => {
262
- return { key: a.id, name: a.displayName };
263
- });
264
- Services.navigation.navigate('optionSelector', {
265
- options,
266
- selection: this.state.job.AssigneeId,
267
- title: 'Assign request',
268
- onSelect: this.onSelectAssignee,
269
- });
270
- };
271
-
272
- onSelectAssignee = assignee => {
273
- this.setState({ loading: true }, async () => {
274
- try {
275
- console.log('onSelectAssignee', this.props.job.id, assignee.key);
276
- const res = await maintenanceActions.assignJob(this.props.job.id, assignee.key);
277
- this.props.jobAdded(res.data.job);
278
- } catch (error) {
279
- console.log('onSelectAssignee error', error);
280
- } finally {
281
- this.setState({ loading: false });
282
- }
283
- });
284
- };
285
-
286
219
  renderLoading() {
287
220
  return <Components.LoadingIndicator visible={this.state.loading} />;
288
221
  }
@@ -296,13 +229,10 @@ class RequestDetail extends Component {
296
229
  return (
297
230
  <View style={{ ...Helper.getShadowStyle() }}>
298
231
  <View style={styles.jobTitleContainer}>
299
- {job.jobId ? <Text style={[styles.jobIdText, { color: this.props.colourBrandingMain }]}>{`Job #${job.jobId}`}</Text> : null}
300
232
  <Text style={styles.jobTitleText}>{job.title}</Text>
301
233
  <View style={styles.jobTypeSeenContainer}>
302
234
  <View style={[styles.jobTypeContainer, { backgroundColor: Colours.hexToRGBAstring(this.props.colourBrandingMain, 0.2) }]}>
303
- <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]} numberOfLines={2}>
304
- {job.type}
305
- </Text>
235
+ <Text style={[styles.jobTypeText, { color: this.props.colourBrandingMain }]}>{job.type}</Text>
306
236
  </View>
307
237
  {showSeen && this.state.seen && (
308
238
  <View style={styles.jobSeenContainer}>
@@ -320,7 +250,7 @@ class RequestDetail extends Component {
320
250
  </View>
321
251
  </View>
322
252
  )}
323
- {/* <View style={styles.textSectionInner}>
253
+ <View style={styles.textSectionInner}>
324
254
  <Text style={styles.textSectionLabel}>Expected Date</Text>
325
255
  <TouchableOpacity onPress={this.onOpenDatePicker}>
326
256
  <View style={styles.textSectionTextContainer}>
@@ -332,13 +262,14 @@ class RequestDetail extends Component {
332
262
  />
333
263
  </View>
334
264
  </TouchableOpacity>
335
- </View> */}
265
+ </View>
336
266
  </View>
337
267
  <View style={styles.jobStatusExpectedContainer}>
338
268
  <View style={styles.jobStatusOuterContainer}>
339
269
  <Text style={styles.jobStatusHeading}>STATUS</Text>
340
270
  <TouchableOpacity onPress={canEdit ? this.onOpenStatusPicker : null}>
341
271
  <View style={[styles.jobStatusContainer, { backgroundColor: statusColor }]}>
272
+ <Icon name="wrench" type="font-awesome" iconStyle={styles.jobStatusIcon} />
342
273
  <Text style={styles.jobStatusText}>{statusText}</Text>
343
274
  </View>
344
275
  </TouchableOpacity>
@@ -419,42 +350,6 @@ class RequestDetail extends Component {
419
350
  );
420
351
  }
421
352
 
422
- renderAssignee() {
423
- const { job } = this.state;
424
- if (!this.hasPermission() && !job.Assignee) return null;
425
-
426
- const content = (
427
- <View>
428
- <Text style={styles.locationLabel}>Assigned To</Text>
429
- <View>
430
- {job.Assignee && (
431
- <View style={styles.profileContainer}>
432
- <Components.ProfilePic ProfilePic={job.Assignee.profilePic} Diameter={40} />
433
- <View style={styles.nameContainer}>
434
- <Text style={styles.nameText}>{job.Assignee.displayName}</Text>
435
- </View>
436
- </View>
437
- )}
438
- </View>
439
- </View>
440
- );
441
-
442
- if (this.hasPermission()) {
443
- return (
444
- <Components.FormCardSectionOptionLauncher
445
- onPress={this.onOpenAssigneePicker}
446
- title="Assigned To"
447
- value={job.Assignee ? job.Assignee.displayName : 'Unassigned'}
448
- textStyle={styles.detailsText}
449
- sectionStyle={styles.detailsSection}
450
- >
451
- {content}
452
- </Components.FormCardSectionOptionLauncher>
453
- );
454
- }
455
- return content;
456
- }
457
-
458
353
  rendeDetails() {
459
354
  const { job } = this.state;
460
355
 
@@ -504,8 +399,8 @@ class RequestDetail extends Component {
504
399
  ref={this.commentSection}
505
400
  commentReply={this.commentReply}
506
401
  scrollView={this.scrollView}
507
- adminPermission="maintenanceTracking"
508
- entityType="maintenancerequest"
402
+ adminPermission={values.permissionMaintenanceTracking}
403
+ entityType={values.featureKey}
509
404
  entityId={this.props.job.id}
510
405
  entityName={this.props.job.title}
511
406
  site={this.state.job.site || this.state.job.location}
@@ -542,7 +437,7 @@ class RequestDetail extends Component {
542
437
  ref={this.commentReply}
543
438
  commentSection={this.commentSection}
544
439
  scrollView={this.scrollView}
545
- entityType="maintenancerequest"
440
+ entityType={values.featureKey}
546
441
  entityId={this.props.job.id}
547
442
  entityName={this.props.job.title}
548
443
  site={this.state.job.site || this.state.job.location}
@@ -558,9 +453,6 @@ class RequestDetail extends Component {
558
453
  }
559
454
 
560
455
  render() {
561
- if (this.state.forbidden) {
562
- return <Components.Forbidden />;
563
- }
564
456
  return (
565
457
  <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.container}>
566
458
  <Components.Header leftIcon="angle-left" onPressLeft={this.onPressBack} text={Config.env.strings.MAINTENANCE_REQUEST_DETAILS} />
@@ -568,7 +460,6 @@ class RequestDetail extends Component {
568
460
  <ScrollView ref={this.scrollView} contentContainerStyle={{ paddingBottom: 26 }} style={{ height: '100%' }}>
569
461
  <View style={styles.innerContainer}>
570
462
  {this.renderTop()}
571
- {this.renderAssignee()}
572
463
  {this.rendeDetails()}
573
464
  {this.renderMessages()}
574
465
  </View>
@@ -601,11 +492,6 @@ const styles = StyleSheet.create({
601
492
  paddingVertical: 14,
602
493
  paddingHorizontal: 12,
603
494
  },
604
- jobIdText: {
605
- fontFamily: 'sf-medium',
606
- fontSize: 12,
607
- marginBottom: 4,
608
- },
609
495
  jobTitleText: {
610
496
  fontFamily: 'sf-semibold',
611
497
  fontSize: 20,
@@ -617,9 +503,8 @@ const styles = StyleSheet.create({
617
503
  alignItems: 'center',
618
504
  },
619
505
  jobTypeContainer: {
620
- padding: 4,
621
- minWidth: 80,
622
- maxWidth: 140,
506
+ height: 20,
507
+ width: 80,
623
508
  borderRadius: 4,
624
509
  justifyContent: 'center',
625
510
  },
@@ -627,7 +512,6 @@ const styles = StyleSheet.create({
627
512
  fontFamily: 'sf-semibold',
628
513
  fontSize: 12,
629
514
  textAlign: 'center',
630
- maxWidth: '100%',
631
515
  },
632
516
  jobSeenContainer: {
633
517
  flexDirection: 'row',
@@ -837,7 +721,7 @@ const mapStateToProps = state => {
837
721
  return {
838
722
  user: state.user,
839
723
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
840
- jobs: state.jobs.jobs,
724
+ jobs: state[values.reducerKey].jobs,
841
725
  };
842
726
  };
843
727
 
@@ -5,10 +5,11 @@ import { Icon } from 'react-native-elements';
5
5
  import _ from 'lodash';
6
6
  import moment from 'moment';
7
7
  import { jobAdded } from '../actions';
8
- import { maintenanceActions } from '../apis';
8
+ import { generalActions } from '../apis';
9
9
  import { getBottomSpace } from 'react-native-iphone-x-helper';
10
10
  import { Services } from '../feature.config';
11
11
  import { Components, Colours, Helper } from '../core.config';
12
+ import { values } from '../values.config';
12
13
 
13
14
  class RequestNotes extends Component {
14
15
  constructor(props) {
@@ -61,7 +62,7 @@ class RequestNotes extends Component {
61
62
  };
62
63
 
63
64
  onPressConfirmDelete = () => {
64
- maintenanceActions.deleteNote(this.props.job.id, this.state.noteToDelete.Id);
65
+ generalActions.deleteNote(this.props.job.id, this.state.noteToDelete.Id);
65
66
  const newNotes = _.filter(this.state.job.Notes, note => {
66
67
  return note.Id !== this.state.noteToDelete.Id;
67
68
  });
@@ -126,7 +127,7 @@ class RequestNotes extends Component {
126
127
  try {
127
128
  this.setState({ submittingNote: true });
128
129
  const res = await (this.state.editingNote
129
- ? maintenanceActions.editNote(
130
+ ? generalActions.editNote(
130
131
  this.props.job.id,
131
132
  this.state.editingNote,
132
133
  this.state.noteInput,
@@ -137,7 +138,7 @@ class RequestNotes extends Component {
137
138
  };
138
139
  }),
139
140
  )
140
- : maintenanceActions.addNote(
141
+ : generalActions.addNote(
141
142
  this.props.job.id,
142
143
  this.state.noteInput,
143
144
  this.state.noteAttachments.map(a => {
@@ -408,7 +409,7 @@ const mapStateToProps = state => {
408
409
  user: state.user,
409
410
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
410
411
  colourBrandingLight: Colours.getLightBrandingColourFromState(state),
411
- jobs: state.jobs.jobs,
412
+ jobs: state[values.reducerKey].jobs,
412
413
  };
413
414
  };
414
415
 
@@ -16,9 +16,10 @@ import _ from 'lodash';
16
16
  import { Icon } from 'react-native-elements';
17
17
  import { connect } from 'react-redux';
18
18
  import { jobAdded } from '../actions';
19
- import { maintenanceActions } from '../apis';
19
+ import { generalActions } from '../apis';
20
20
  import { Services } from '../feature.config';
21
21
  import { Components, Colours, Helper, Config } from '../core.config';
22
+ import { values } from '../values.config';
22
23
 
23
24
  const PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;
24
25
 
@@ -143,7 +144,7 @@ class MaintenanceRequest extends Component {
143
144
  }
144
145
 
145
146
  onPressType() {
146
- Services.navigation.navigate('jobTypePicker', {
147
+ Services.navigation.navigate(values.screenJobTypePicker, {
147
148
  currentType: this.state.type,
148
149
  types: this.state.types,
149
150
  onSelectType: this.pickType.bind(this),
@@ -179,7 +180,7 @@ class MaintenanceRequest extends Component {
179
180
 
180
181
  getJobTypes() {
181
182
  const self = this;
182
- maintenanceActions
183
+ generalActions
183
184
  .getJobTypes(Helper.getSite(this.props.site))
184
185
  .then(res => {
185
186
  self.setState({
@@ -227,7 +228,7 @@ class MaintenanceRequest extends Component {
227
228
  return img.url;
228
229
  });
229
230
 
230
- maintenanceActions
231
+ generalActions
231
232
  .sendMaintenanceRequest(
232
233
  this.props.uid,
233
234
  this.state.userName,
@@ -268,7 +269,7 @@ class MaintenanceRequest extends Component {
268
269
 
269
270
  refreshRequest = async id => {
270
271
  try {
271
- const job = await maintenanceActions.getJob(Helper.getSite(this.props.site), id);
272
+ const job = await generalActions.getJob(Helper.getSite(this.props.site), id);
272
273
  // console.log('refreshRequest', job?.data);
273
274
  this.props.jobAdded(job.data);
274
275
  } catch (error) {
@@ -614,7 +615,7 @@ class MaintenanceRequest extends Component {
614
615
  <Components.Header
615
616
  leftIcon="angle-left"
616
617
  onPressLeft={this.onPressBack.bind(this)}
617
- text={Config.env.strings.MAINTENANCE}
618
+ text={this.props.strings[`${values.featureKey}_textFeatureTitle`] || values.textFeatureTitle}
618
619
  rightText={this.state.submitting || this.state.success ? null : 'Done'}
619
620
  onPressRight={this.submitRequest.bind(this)}
620
621
  absoluteRight
@@ -740,6 +741,7 @@ const mapStateToProps = state => {
740
741
  unit,
741
742
  phoneNumber,
742
743
  colourBrandingMain: Colours.getMainBrandingColourFromState(state),
744
+ strings: state.strings?.config || {},
743
745
  };
744
746
  };
745
747
 
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenanceA',
3
+ aliases: ['maintenanceRequestA'],
4
+ reducerKey: 'jobsA',
5
+ serviceKey: 'maintenanceA',
6
+ updateKey: 'jobsA',
7
+ actionJobsLoaded: 'JOBS_LOADEDA',
8
+ actionJobAdded: 'JOB_ADDEDA',
9
+ actionJobsAdded: 'JOBS_ADDEDA',
10
+ screenMaintenance: 'maintenanceA',
11
+ screenRequestDetail: 'requestDetailA',
12
+ screenServiceRequest: 'serviceRequestA',
13
+ screenJobTypePicker: 'jobTypePickerA',
14
+ screenRequestNotes: 'requestNotesA',
15
+ permissionMaintenanceTracking: 'maintenanceTrackingA',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request A',
23
+ textAddMenuTitle: 'Request A',
24
+ textMoreMenuTitle: 'Request A',
25
+ textKioskActionTitle: 'Request A',
26
+ };
27
+
28
+ export { values };
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenanceB',
3
+ aliases: ['maintenanceRequestB'],
4
+ reducerKey: 'jobsB',
5
+ serviceKey: 'maintenanceB',
6
+ updateKey: 'jobsB',
7
+ actionJobsLoaded: 'JOBS_LOADEDB',
8
+ actionJobAdded: 'JOB_ADDEDB',
9
+ actionJobsAdded: 'JOBS_ADDEDB',
10
+ screenMaintenance: 'maintenanceB',
11
+ screenRequestDetail: 'requestDetailB',
12
+ screenServiceRequest: 'serviceRequestB',
13
+ screenJobTypePicker: 'jobTypePickerB',
14
+ screenRequestNotes: 'requestNotesB',
15
+ permissionMaintenanceTracking: 'maintenanceTrackingB',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request B',
23
+ textAddMenuTitle: 'Request B',
24
+ textMoreMenuTitle: 'Request B',
25
+ textKioskActionTitle: 'Request B',
26
+ };
27
+
28
+ export { values };
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenanceC',
3
+ aliases: ['maintenanceRequestC'],
4
+ reducerKey: 'jobsC',
5
+ serviceKey: 'maintenanceC',
6
+ updateKey: 'jobsC',
7
+ actionJobsLoaded: 'JOBS_LOADEDC',
8
+ actionJobAdded: 'JOB_ADDEDC',
9
+ actionJobsAdded: 'JOBS_ADDEDC',
10
+ screenMaintenance: 'maintenanceC',
11
+ screenRequestDetail: 'requestDetailC',
12
+ screenServiceRequest: 'serviceRequestC',
13
+ screenJobTypePicker: 'jobTypePickerC',
14
+ screenRequestNotes: 'requestNotesC',
15
+ permissionMaintenanceTracking: 'maintenanceTrackingC',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request C',
23
+ textAddMenuTitle: 'Request C',
24
+ textMoreMenuTitle: 'Request C',
25
+ textKioskActionTitle: 'Request C',
26
+ };
27
+
28
+ export { values };
@@ -0,0 +1,28 @@
1
+ const values = {
2
+ featureKey: 'maintenanceD',
3
+ aliases: ['maintenanceRequestD'],
4
+ reducerKey: 'jobsD',
5
+ serviceKey: 'maintenanceD',
6
+ updateKey: 'jobsD',
7
+ actionJobsLoaded: 'JOBS_LOADEDD',
8
+ actionJobAdded: 'JOB_ADDEDD',
9
+ actionJobsAdded: 'JOBS_ADDEDD',
10
+ screenMaintenance: 'maintenanceD',
11
+ screenRequestDetail: 'requestDetailD',
12
+ screenServiceRequest: 'serviceRequestD',
13
+ screenJobTypePicker: 'jobTypePickerD',
14
+ screenRequestNotes: 'requestNotesD',
15
+ permissionMaintenanceTracking: 'maintenanceTrackingD',
16
+ iconGridMenu: 'maintenance',
17
+ iconAddMenu: 'request',
18
+ iconKioskAction: 'wrench',
19
+ orderAddMenu: 5,
20
+ orderMoreMenu: 4,
21
+ orderKioskAction: 1,
22
+ textFeatureTitle: 'Request D',
23
+ textAddMenuTitle: 'Request D',
24
+ textMoreMenuTitle: 'Request D',
25
+ textKioskActionTitle: 'Request D',
26
+ };
27
+
28
+ export { values };
@@ -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
+
28
+ export { values };
@@ -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
+
28
+ export { values };
@@ -1 +0,0 @@
1
- {"version":3,"names":["Helper","Session","maintenanceActions","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","assignJob","userId","getAssignees","addNote","note","attachments","action","editNote","noteId","deleteNote","getJobTypes"],"sources":["maintenanceActions.js"],"sourcesContent":["import { Helper, Session } from '../core.config';\n\nexport const maintenanceActions = {\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 maintenanceActions.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(maintenanceActions.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 assignJob: (jobId, userId) => {\n return Session.authedFunction({\n method: 'POST',\n url: Helper.getUrl('maintenance', 'update/assign'),\n data: {\n id: jobId,\n userId,\n },\n });\n },\n getAssignees: site => {\n return Session.authedFunction({\n method: 'GET',\n url: Helper.getUrl('maintenance', 'get/assignees', { site }),\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 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};\n"],"mappings":"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","ignoreList":[]}