@plusscommunities/pluss-maintenance-app 6.0.10 → 6.0.12-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/module/actions/JobActions.js +44 -1
  2. package/dist/module/actions/JobActions.js.map +1 -1
  3. package/dist/module/actions/types.js +3 -0
  4. package/dist/module/actions/types.js.map +1 -1
  5. package/dist/module/apis/index.js +2 -0
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/apis/maintenanceActions.js +21 -6
  8. package/dist/module/apis/maintenanceActions.js.map +1 -1
  9. package/dist/module/components/FilterPopupMenu.js +34 -18
  10. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  11. package/dist/module/components/MaintenanceList.js +47 -56
  12. package/dist/module/components/MaintenanceList.js.map +1 -1
  13. package/dist/module/components/MaintenanceListItem.js +39 -26
  14. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  15. package/dist/module/components/MaintenanceWidgetItem.js +12 -12
  16. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  17. package/dist/module/components/PrioritySelectorPopup.js +82 -0
  18. package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
  19. package/dist/module/components/StatusSelectorPopup.js +9 -14
  20. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  21. package/dist/module/components/WidgetSmall.js +7 -3
  22. package/dist/module/components/WidgetSmall.js.map +1 -1
  23. package/dist/module/helper.js +39 -25
  24. package/dist/module/helper.js.map +1 -1
  25. package/dist/module/reducers/JobsReducer.js +31 -2
  26. package/dist/module/reducers/JobsReducer.js.map +1 -1
  27. package/dist/module/screens/RequestDetail.js +92 -20
  28. package/dist/module/screens/RequestDetail.js.map +1 -1
  29. package/dist/module/screens/RequestNotes.js +335 -19
  30. package/dist/module/screens/RequestNotes.js.map +1 -1
  31. package/dist/module/values.config.a.js +7 -1
  32. package/dist/module/values.config.a.js.map +1 -1
  33. package/dist/module/values.config.default.js +7 -1
  34. package/dist/module/values.config.default.js.map +1 -1
  35. package/dist/module/values.config.forms.js +7 -1
  36. package/dist/module/values.config.forms.js.map +1 -1
  37. package/dist/module/values.config.js +7 -1
  38. package/dist/module/values.config.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/actions/JobActions.js +53 -1
  41. package/src/actions/types.js +4 -0
  42. package/src/apis/index.js +4 -0
  43. package/src/apis/maintenanceActions.js +18 -6
  44. package/src/components/FilterPopupMenu.js +40 -21
  45. package/src/components/MaintenanceList.js +38 -47
  46. package/src/components/MaintenanceListItem.js +35 -21
  47. package/src/components/MaintenanceWidgetItem.js +16 -12
  48. package/src/components/PrioritySelectorPopup.js +79 -0
  49. package/src/components/StatusSelectorPopup.js +8 -14
  50. package/src/components/WidgetSmall.js +5 -3
  51. package/src/helper.js +50 -21
  52. package/src/reducers/JobsReducer.js +25 -1
  53. package/src/screens/RequestDetail.js +91 -28
  54. package/src/screens/RequestNotes.js +348 -28
  55. package/src/values.config.a.js +6 -0
  56. package/src/values.config.default.js +6 -0
  57. package/src/values.config.forms.js +6 -0
  58. package/src/values.config.js +6 -0
  59. package/dist/module/values.config.b.js +0 -30
  60. package/dist/module/values.config.b.js.map +0 -1
  61. package/dist/module/values.config.c.js +0 -30
  62. package/dist/module/values.config.c.js.map +0 -1
  63. package/dist/module/values.config.d.js +0 -30
  64. package/dist/module/values.config.d.js.map +0 -1
  65. package/src/values.config.b.js +0 -30
  66. package/src/values.config.c.js +0 -30
  67. package/src/values.config.d.js +0 -30
@@ -1,5 +1,5 @@
1
1
  import React, { Component } from 'react';
2
- import { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView, Platform } from 'react-native';
2
+ import { ScrollView, View, Text, TouchableOpacity, Modal, KeyboardAvoidingView, Platform, FlatList, Dimensions, ImageBackground, Keyboard } from 'react-native';
3
3
  import { connect } from 'react-redux';
4
4
  import { Icon } from 'react-native-elements';
5
5
  import _ from 'lodash';
@@ -11,6 +11,8 @@ import { Services } from '../feature.config';
11
11
  import { Components, Colours, Helper } from '../core.config';
12
12
  import { values } from '../values.config';
13
13
 
14
+ const PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;
15
+
14
16
  class RequestNotes extends Component {
15
17
  constructor(props) {
16
18
  super(props);
@@ -21,7 +23,10 @@ class RequestNotes extends Component {
21
23
  noteAttachments: [],
22
24
  noteInput: '',
23
25
  addNoteOpen: false,
26
+ noteImages: [{ add: true }],
27
+ uploadingImage: false,
24
28
  };
29
+ this.checkThumb = null;
25
30
  }
26
31
 
27
32
  componentDidMount() {
@@ -34,6 +39,10 @@ class RequestNotes extends Component {
34
39
  }
35
40
  }
36
41
 
42
+ componentWillUnmount() {
43
+ clearInterval(this.checkThumb);
44
+ }
45
+
37
46
  updateJobState() {
38
47
  const job = _.find(this.props.jobs, j => j.id === this.props.job.id) || this.props.job;
39
48
  this.setState({ job });
@@ -81,14 +90,10 @@ class RequestNotes extends Component {
81
90
  };
82
91
 
83
92
  isReadyToSaveNote = () => {
84
- if (
85
- _.some(this.state.noteAttachments, n => {
86
- return n.Uploading;
87
- })
88
- ) {
89
- return false;
90
- }
91
- return !_.isEmpty(this.state.noteInput) || !_.isEmpty(this.state.noteAttachments);
93
+ const uploadingAttachments = _.some(this.state.noteAttachments, n => n.Uploading);
94
+ const uploadingImages = _.some(this.state.noteImages, n => n.uploading);
95
+ if (uploadingAttachments || uploadingImages) return false;
96
+ return !_.isEmpty(this.state.noteInput) || !_.isEmpty(this.state.noteAttachments) || !_.isEmpty(this.state.noteImages.filter(img => !img.add));
92
97
  };
93
98
 
94
99
  openAddNote = () => {
@@ -106,13 +111,16 @@ class RequestNotes extends Component {
106
111
  if (!!this.state.editingNote) {
107
112
  newState.noteInput = '';
108
113
  newState.noteAttachments = [];
114
+ newState.noteImages = [];
109
115
  }
110
116
  this.setState(newState);
111
117
  };
112
118
 
113
119
  openEditNote = n => {
120
+ const noteImages = [...((n.Images || []).map(i => ({ url: i, thumbNailUrl: Helper.getThumb300(i) }))), { add: true }];
114
121
  this.setState({
115
122
  noteAttachments: n.Attachments || [],
123
+ noteImages,
116
124
  noteInput: n.Note || '',
117
125
  addNoteOpen: true,
118
126
  editingNote: n.Id,
@@ -127,28 +135,27 @@ class RequestNotes extends Component {
127
135
 
128
136
  try {
129
137
  this.setState({ submittingNote: true });
138
+ const attachments = this.state.noteAttachments.filter(a => !a.add).map(a => {
139
+ return {
140
+ Title: a.Title,
141
+ Source: a.Source,
142
+ };
143
+ });
144
+ const images = this.state.noteImages.filter(img => !img.add).map(img => img.url);
130
145
  const res = await (this.state.editingNote
131
146
  ? maintenanceActions.editNote(
132
- this.props.job.id,
133
- this.state.editingNote,
134
- this.state.noteInput,
135
- this.state.noteAttachments.map(a => {
136
- return {
137
- Title: a.Title,
138
- Source: a.Source,
139
- };
140
- }),
141
- )
147
+ this.props.job.id,
148
+ this.state.editingNote,
149
+ this.state.noteInput,
150
+ attachments,
151
+ images,
152
+ )
142
153
  : maintenanceActions.addNote(
143
- this.props.job.id,
144
- this.state.noteInput,
145
- this.state.noteAttachments.map(a => {
146
- return {
147
- Title: a.Title,
148
- Source: a.Source,
149
- };
150
- }),
151
- ));
154
+ this.props.job.id,
155
+ this.state.noteInput,
156
+ attachments,
157
+ images,
158
+ ));
152
159
  this.setState(
153
160
  {
154
161
  job: res.data.job,
@@ -156,6 +163,8 @@ class RequestNotes extends Component {
156
163
  addNoteOpen: false,
157
164
  noteInput: '',
158
165
  noteAttachments: [],
166
+ noteImages: [{ add: true }],
167
+ uploadingImage: false,
159
168
  editingNote: null,
160
169
  },
161
170
  () => {
@@ -168,10 +177,148 @@ class RequestNotes extends Component {
168
177
  console.log(err);
169
178
  this.setState({
170
179
  submittingNote: false,
180
+ uploadingImage: false,
171
181
  });
172
182
  }
173
183
  };
174
184
 
185
+ setImages = (noteImages, uploadingImage = false, callback = null) => {
186
+ this.setState({ noteImages, uploadingImage }, callback);
187
+ };
188
+
189
+ getImages = () => {
190
+ const { noteImages } = this.state;
191
+ const imagesList = _.cloneDeep(noteImages);
192
+ if (!imagesList || !Array.isArray(imagesList) || imagesList.length === 0) {
193
+ return [{ add: true }];
194
+ }
195
+ return imagesList;
196
+ };
197
+
198
+ getImageUrls = () => {
199
+ const imagesList = this.getImages();
200
+ return _.filter(imagesList, img => {
201
+ return !img.uploading && !img.add;
202
+ }).map(img => {
203
+ return img.url;
204
+ });
205
+ };
206
+
207
+ waitForThumbnails = () => {
208
+ if (this.checkThumb) return;
209
+
210
+ this.checkThumb = setInterval(async () => {
211
+ const imagesList = this.getImages();
212
+ const imagesUpdate = [];
213
+ await Promise.all(
214
+ imagesList.map(image => {
215
+ return new Promise(async resolve => {
216
+ const newImage = { ...image };
217
+ imagesUpdate.push(newImage);
218
+ if (newImage.url && !newImage.thumbNailExists) {
219
+ newImage.uploading = false;
220
+ newImage.allowRetry = false;
221
+ newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);
222
+ resolve(newImage.thumbNailExists);
223
+ }
224
+ resolve(true);
225
+ });
226
+ }),
227
+ );
228
+ const thumbnailsExist = imagesUpdate.every(image => !image.url || image.thumbNailExists);
229
+ if (thumbnailsExist) {
230
+ clearInterval(this.checkThumb);
231
+ this.checkThumb = null;
232
+ this.setImages(imagesUpdate);
233
+ }
234
+ }, 2000);
235
+ };
236
+
237
+ removeImage = (index) => {
238
+ const imagesUpdate = this.getImages();
239
+ imagesUpdate.splice(index, 1);
240
+
241
+ this.setImages(imagesUpdate);
242
+ };
243
+
244
+ showUploadMenu = () => {
245
+ Keyboard.dismiss();
246
+ const { uploadingImage, submittingNote } = this.state;
247
+ if (uploadingImage || submittingNote) return;
248
+ this.imageUploader.showUploadMenu();
249
+ };
250
+
251
+ toggleFullscreenVideo = url => {
252
+ if (typeof url !== 'string') url = '';
253
+ this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });
254
+ };
255
+
256
+ onUploadStarted = (uploadUri, imageUri) => {
257
+ const imagesUpdate = this.getImages();
258
+ imagesUpdate.splice(imagesUpdate.length - 1, 0, {
259
+ uploading: true,
260
+ uploadProgress: '0%',
261
+ uploadUri,
262
+ imageUri,
263
+ allowRetry: true,
264
+ });
265
+
266
+ this.setImages(imagesUpdate, true);
267
+ };
268
+
269
+ onUploadProgress = progress => {
270
+ const imagesUpdate = this.getImages();
271
+ imagesUpdate.map(img => {
272
+ if (img.uploadUri === progress.uri) {
273
+ img.uploadProgress = progress.percentage;
274
+ img.uploading = true;
275
+ img.allowRetry = true;
276
+ }
277
+ });
278
+
279
+ this.setImages(imagesUpdate, true);
280
+ };
281
+
282
+ onUploadSuccess = async (uri, uploadUri) => {
283
+ const imagesUpdate = this.getImages();
284
+ imagesUpdate.map(img => {
285
+ if (img.uploadUri === uploadUri && img.uploading) {
286
+ img.url = uri.replace('/general/', '/general1400/');
287
+ img.thumbNailExists = false;
288
+ img.thumbNailUrl = Helper.getThumb300(img.url);
289
+ img.allowRetry = true;
290
+ }
291
+ });
292
+
293
+ this.setImages(imagesUpdate, false, () => this.waitForThumbnails());
294
+ };
295
+
296
+ onUploadFailed = uploadUri => {
297
+ const imagesUpdate = this.getImages();
298
+ imagesUpdate.map(img => {
299
+ if (img.uploadUri === uploadUri) {
300
+ img.uploading = true; // Requried for retry
301
+ img.uploadProgress = '';
302
+ img.allowRetry = true;
303
+ }
304
+ });
305
+
306
+ this.setImages(imagesUpdate);
307
+ };
308
+
309
+ onLibrarySelected = uri => {
310
+ const imagesUpdate = this.getImages();
311
+ imagesUpdate.splice(imagesUpdate.length - 1, 0, {
312
+ uploading: false,
313
+ allowRetry: false,
314
+ url: Helper.get1400(uri),
315
+ thumbNailExists: true,
316
+ thumbNailUrl: Helper.getThumb300(uri),
317
+ });
318
+
319
+ this.setImages(imagesUpdate);
320
+ };
321
+
175
322
  renderAttachment(a, i) {
176
323
  return (
177
324
  <Components.Attachment
@@ -272,10 +419,118 @@ class RequestNotes extends Component {
272
419
  );
273
420
  }
274
421
 
422
+ renderUploadMenu() {
423
+ return (
424
+ <Components.ImageUploader
425
+ ref={ref => (this.imageUploader = ref)}
426
+ onUploadStarted={this.onUploadStarted}
427
+ onUploadSuccess={this.onUploadSuccess}
428
+ onUploadFailed={this.onUploadFailed}
429
+ onUploadProgress={this.onUploadProgress}
430
+ onLibrarySelected={this.onLibrarySelected}
431
+ size={{ width: 1400 }}
432
+ quality={0.8}
433
+ fileName={'serviceNoteImage'}
434
+ popupTitle={'Upload Image'}
435
+ userId={this.props.user.uid}
436
+ allowsEditing={false}
437
+ multiple
438
+ hideLibrary
439
+ />
440
+ );
441
+ }
442
+
443
+ renderImage(item, index) {
444
+ const isVideoUrl = Helper.isVideo(item.url);
445
+ const imagesList = this.getImages();
446
+
447
+ if (item.add) {
448
+ return (
449
+ <TouchableOpacity activeOpacity={0.8} onPress={() => this.showUploadMenu()}>
450
+ <View
451
+ style={[
452
+ styles.imageContainer,
453
+ imagesList.length > 1 && styles.imageContainerNotEmpty,
454
+ index % 3 === 0 && { marginLeft: 0 },
455
+ index > 2 && { marginTop: 8 },
456
+ ]}
457
+ >
458
+ <View style={styles.imageCircle}>
459
+ <Icon name="camera" type="font-awesome" iconStyle={styles.addImageIcon} />
460
+ </View>
461
+ </View>
462
+ </TouchableOpacity>
463
+ );
464
+ }
465
+ return (
466
+ <View
467
+ style={[
468
+ styles.imageContainer,
469
+ imagesList.length > 1 && styles.imageContainerNotEmpty,
470
+ index % 3 === 0 && { marginLeft: 0 },
471
+ index > 2 && { marginTop: 8 },
472
+ ]}
473
+ >
474
+ {item.uploading ? (
475
+ <Components.ImageUploadProgress uploader={this.imageUploader} image={item} color={this.props.colourBrandingMain} />
476
+ ) : (
477
+ <ImageBackground
478
+ style={styles.imageBackground}
479
+ source={Helper.getImageSource(item.thumbNailExists ? item.thumbNailUrl : (item.url || item))}
480
+ >
481
+ {isVideoUrl && (
482
+ <View style={styles.imagePlayContainer}>
483
+ <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, item.url)}>
484
+ <Icon name="play" type="font-awesome" iconStyle={styles.imageControlIcon} />
485
+ </TouchableOpacity>
486
+ </View>
487
+ )}
488
+ <TouchableOpacity style={styles.removeImage} onPress={() => this.removeImage(index)}>
489
+ <Icon name="remove" type="font-awesome" iconStyle={styles.imageControlIcon} style={styles.removeImage} />
490
+ </TouchableOpacity>
491
+ </ImageBackground>
492
+ )}
493
+ </View>
494
+ );
495
+ }
496
+
497
+ renderImageList() {
498
+ const imagesList = this.getImages();
499
+
500
+ return (
501
+ <View style={styles.imageListContainer}>
502
+ <FlatList
503
+ keyboardShouldPersistTaps="always"
504
+ enableEmptySections
505
+ data={imagesList}
506
+ renderItem={({ item, index }) => this.renderImage(item, index)}
507
+ keyExtractor={(item, index) => index}
508
+ numColumns={3}
509
+ scrollEnabled={false}
510
+ />
511
+ </View>
512
+ );
513
+ }
514
+
515
+ renderVideoPlayerPopup() {
516
+ const { showFullscreenVideo, currentVideoUrl } = this.state;
517
+ if (!currentVideoUrl) return;
518
+
519
+ return (
520
+ <Components.VideoPopup
521
+ uri={currentVideoUrl}
522
+ visible={showFullscreenVideo}
523
+ showFullscreenButton={false}
524
+ onClose={this.toggleFullscreenVideo}
525
+ />
526
+ );
527
+ }
528
+
275
529
  renderAdd() {
276
530
  return (
277
531
  <Modal animationType="slide" visible={this.state.addNoteOpen}>
278
532
  <KeyboardAvoidingView style={styles.container} behavior={Platform.OS === 'ios' && 'padding'}>
533
+ {this.renderUploadMenu()}
279
534
  <Components.Header leftText="Cancel" onPressLeft={this.closeAddNote} text="" />
280
535
  <ScrollView style={styles.scrollContainer} contentContainerStyle={styles.innerContainer}>
281
536
  <Components.TextStyle type="pageHeading">Add Staff Note</Components.TextStyle>
@@ -297,6 +552,7 @@ class RequestNotes extends Component {
297
552
  sectionStyle={styles.inputSection}
298
553
  />
299
554
  <Components.GenericInputSection label="Attachments" sectionStyle={styles.inputSection}>
555
+ {this.renderImageList()}
300
556
  {this.state.editingNote ? (
301
557
  (this.state.noteAttachments || []).map((a, i) => this.renderAttachment(a, i))
302
558
  ) : (
@@ -307,6 +563,7 @@ class RequestNotes extends Component {
307
563
  </Components.GenericInputSection>
308
564
  </ScrollView>
309
565
  <View style={styles.popupFooter}>{this.renderFooterContent()}</View>
566
+ {this.renderVideoPlayerPopup()}
310
567
  </KeyboardAvoidingView>
311
568
  </Modal>
312
569
  );
@@ -404,6 +661,69 @@ const styles = {
404
661
  attachmentInfo: {
405
662
  marginTop: 8,
406
663
  },
664
+ imageListContainer: {
665
+ marginVertical: 8,
666
+ },
667
+ imageContainer: {
668
+ width: PHOTO_SIZE,
669
+ height: PHOTO_SIZE,
670
+ borderStyle: 'dashed',
671
+ justifyContent: 'center',
672
+ alignItems: 'center',
673
+ borderWidth: 1,
674
+ borderColor: Colours.LINEGREY,
675
+ backgroundColor: Colours.BOXGREY,
676
+ borderRadius: 4,
677
+ marginLeft: 8,
678
+ },
679
+ imageContainerNotEmpty: {
680
+ borderWidth: 1,
681
+ borderColor: Colours.LINEGREY,
682
+ backgroundColor: '#fff',
683
+ borderStyle: 'dashed',
684
+ },
685
+ imageBackground: {
686
+ flex: 1,
687
+ height: '100%',
688
+ width: '100%',
689
+ borderRadius: 4,
690
+ },
691
+ imageCircle: {
692
+ width: 90,
693
+ height: 90,
694
+ borderRadius: 45,
695
+ backgroundColor: Colours.PINKISH_GREY,
696
+ justifyContent: 'center',
697
+ },
698
+ addImageIcon: {
699
+ color: '#fff',
700
+ fontSize: 32,
701
+ },
702
+ imagePlayContainer: {
703
+ position: 'absolute',
704
+ top: 0,
705
+ left: 0,
706
+ right: 0,
707
+ bottom: 0,
708
+ alignItems: 'center',
709
+ justifyContent: 'center',
710
+ },
711
+ imageControlIcon: {
712
+ color: '#fff',
713
+ fontSize: 20,
714
+ textShadowColor: 'rgba(0,0,0,0.3)',
715
+ textShadowOffset: { width: 2, height: 2 },
716
+ },
717
+ removeImage: {
718
+ position: 'absolute',
719
+ top: 0,
720
+ right: 0,
721
+ padding: 4,
722
+ width: 40,
723
+ height: 40,
724
+ alignItems: 'center',
725
+ justifyContent: 'center',
726
+ },
407
727
  };
408
728
 
409
729
  const mapStateToProps = state => {
@@ -4,9 +4,13 @@ const values = {
4
4
  reducerKey: 'jobsA',
5
5
  serviceKey: 'maintenanceA',
6
6
  updateKey: 'jobsA',
7
+ commentKey: 'maintenanceA',
7
8
  actionJobsLoaded: 'JOBS_LOADEDA',
8
9
  actionJobAdded: 'JOB_ADDEDA',
9
10
  actionJobsAdded: 'JOBS_ADDEDA',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDA',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEENA',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADEDA',
10
14
  screenMaintenance: 'maintenanceA',
11
15
  screenRequestDetail: 'requestDetailA',
12
16
  screenServiceRequest: 'serviceRequestA',
@@ -25,6 +29,8 @@ const values = {
25
29
  textMoreMenuTitle: 'Request A',
26
30
  textKioskActionTitle: 'Request A',
27
31
  textEntityName: 'Job',
32
+ stringConfigJobStatus: 'maintenanceJobStatusA',
33
+ stringConfigHideSeen: 'maintenanceDisableSeenA',
28
34
  };
29
35
 
30
36
  export { values };
@@ -4,9 +4,13 @@ const values = {
4
4
  reducerKey: 'jobs',
5
5
  serviceKey: 'maintenance',
6
6
  updateKey: 'jobs',
7
+ commentKey: 'maintenancerequest',
7
8
  actionJobsLoaded: 'JOBS_LOADED',
8
9
  actionJobAdded: 'JOB_ADDED',
9
10
  actionJobsAdded: 'JOBS_ADDED',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEEN',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
10
14
  screenMaintenance: 'maintenance',
11
15
  screenRequestDetail: 'requestDetail',
12
16
  screenServiceRequest: 'serviceRequest',
@@ -31,6 +35,8 @@ const values = {
31
35
  emptyRequestsStaff: 'No active Requests',
32
36
  emptyRequestsUser: 'Your Requests will show here',
33
37
  forceCustomFields: false,
38
+ stringConfigJobStatus: 'maintenanceJobStatus',
39
+ stringConfigHideSeen: 'maintenanceDisableSeen',
34
40
  };
35
41
 
36
42
  export { values };
@@ -4,9 +4,13 @@ const values = {
4
4
  reducerKey: 'maintenanceForms',
5
5
  serviceKey: 'maintenanceForms',
6
6
  updateKey: 'jobsForms',
7
+ commentKey: 'maintenanceForms',
7
8
  actionJobsLoaded: 'JOBS_LOADEDForms',
8
9
  actionJobAdded: 'JOB_ADDEDForms',
9
10
  actionJobsAdded: 'JOBS_ADDEDForms',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDForms',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEENForms',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADEDForms',
10
14
  screenMaintenance: 'maintenanceForms',
11
15
  screenRequestDetail: 'requestDetailForms',
12
16
  screenServiceRequest: 'serviceRequestForms',
@@ -31,6 +35,8 @@ const values = {
31
35
  emptyRequestsStaff: 'No active Form Submissions',
32
36
  emptyRequestsUser: 'Your Form Submissions will show here',
33
37
  forceCustomFields: true,
38
+ stringConfigJobStatus: 'maintenanceJobStatusForms',
39
+ stringConfigHideSeen: 'maintenanceDisableSeenForms',
34
40
  };
35
41
 
36
42
  export { values };
@@ -4,9 +4,13 @@ const values = {
4
4
  reducerKey: 'jobs',
5
5
  serviceKey: 'maintenance',
6
6
  updateKey: 'jobs',
7
+ commentKey: 'maintenancerequest',
7
8
  actionJobsLoaded: 'JOBS_LOADED',
8
9
  actionJobAdded: 'JOB_ADDED',
9
10
  actionJobsAdded: 'JOBS_ADDED',
11
+ actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
12
+ actionJobsHideSeen: 'JOBS_HIDE_SEEN',
13
+ actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
10
14
  screenMaintenance: 'maintenance',
11
15
  screenRequestDetail: 'requestDetail',
12
16
  screenServiceRequest: 'serviceRequest',
@@ -31,6 +35,8 @@ const values = {
31
35
  emptyRequestsStaff: 'No active Requests',
32
36
  emptyRequestsUser: 'Your Requests will show here',
33
37
  forceCustomFields: false,
38
+ stringConfigJobStatus: 'maintenanceJobStatus',
39
+ stringConfigHideSeen: 'maintenanceDisableSeen',
34
40
  };
35
41
 
36
42
  export { values };
@@ -1,30 +0,0 @@
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
- permissionMaintenanceAssignment: 'maintenanceAssignmentB',
17
- iconGridMenu: 'maintenance',
18
- iconAddMenu: 'request',
19
- iconKioskAction: 'wrench',
20
- orderAddMenu: 5,
21
- orderMoreMenu: 4,
22
- orderKioskAction: 1,
23
- textFeatureTitle: 'Request B',
24
- textAddMenuTitle: 'Request B',
25
- textMoreMenuTitle: 'Request B',
26
- textKioskActionTitle: 'Request B',
27
- textEntityName: 'Job'
28
- };
29
- export { values };
30
- //# sourceMappingURL=values.config.b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName"],"sources":["values.config.b.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceB',\n aliases: ['maintenanceRequestB'],\n reducerKey: 'jobsB',\n serviceKey: 'maintenanceB',\n updateKey: 'jobsB',\n actionJobsLoaded: 'JOBS_LOADEDB',\n actionJobAdded: 'JOB_ADDEDB',\n actionJobsAdded: 'JOBS_ADDEDB',\n screenMaintenance: 'maintenanceB',\n screenRequestDetail: 'requestDetailB',\n screenServiceRequest: 'serviceRequestB',\n screenJobTypePicker: 'jobTypePickerB',\n screenRequestNotes: 'requestNotesB',\n permissionMaintenanceTracking: 'maintenanceTrackingB',\n permissionMaintenanceAssignment: 'maintenanceAssignmentB',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request B',\n textAddMenuTitle: 'Request B',\n textMoreMenuTitle: 'Request B',\n textKioskActionTitle: 'Request B',\n textEntityName: 'Job',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE,CAAC,qBAAqB,CAAC;EAChCC,UAAU,EAAE,OAAO;EACnBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,OAAO;EAClBC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,eAAe,EAAE,aAAa;EAC9BC,iBAAiB,EAAE,cAAc;EACjCC,mBAAmB,EAAE,gBAAgB;EACrCC,oBAAoB,EAAE,iBAAiB;EACvCC,mBAAmB,EAAE,gBAAgB;EACrCC,kBAAkB,EAAE,eAAe;EACnCC,6BAA6B,EAAE,sBAAsB;EACrDC,+BAA+B,EAAE,wBAAwB;EACzDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,WAAW;EAC7BC,gBAAgB,EAAE,WAAW;EAC7BC,iBAAiB,EAAE,WAAW;EAC9BC,oBAAoB,EAAE,WAAW;EACjCC,cAAc,EAAE;AAClB,CAAC;AAED,SAAS1B,MAAM","ignoreList":[]}
@@ -1,30 +0,0 @@
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
- permissionMaintenanceAssignment: 'maintenanceAssignmentC',
17
- iconGridMenu: 'maintenance',
18
- iconAddMenu: 'request',
19
- iconKioskAction: 'wrench',
20
- orderAddMenu: 5,
21
- orderMoreMenu: 4,
22
- orderKioskAction: 1,
23
- textFeatureTitle: 'Request C',
24
- textAddMenuTitle: 'Request C',
25
- textMoreMenuTitle: 'Request C',
26
- textKioskActionTitle: 'Request C',
27
- textEntityName: 'Job'
28
- };
29
- export { values };
30
- //# sourceMappingURL=values.config.c.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName"],"sources":["values.config.c.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceC',\n aliases: ['maintenanceRequestC'],\n reducerKey: 'jobsC',\n serviceKey: 'maintenanceC',\n updateKey: 'jobsC',\n actionJobsLoaded: 'JOBS_LOADEDC',\n actionJobAdded: 'JOB_ADDEDC',\n actionJobsAdded: 'JOBS_ADDEDC',\n screenMaintenance: 'maintenanceC',\n screenRequestDetail: 'requestDetailC',\n screenServiceRequest: 'serviceRequestC',\n screenJobTypePicker: 'jobTypePickerC',\n screenRequestNotes: 'requestNotesC',\n permissionMaintenanceTracking: 'maintenanceTrackingC',\n permissionMaintenanceAssignment: 'maintenanceAssignmentC',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request C',\n textAddMenuTitle: 'Request C',\n textMoreMenuTitle: 'Request C',\n textKioskActionTitle: 'Request C',\n textEntityName: 'Job',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE,CAAC,qBAAqB,CAAC;EAChCC,UAAU,EAAE,OAAO;EACnBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,OAAO;EAClBC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,eAAe,EAAE,aAAa;EAC9BC,iBAAiB,EAAE,cAAc;EACjCC,mBAAmB,EAAE,gBAAgB;EACrCC,oBAAoB,EAAE,iBAAiB;EACvCC,mBAAmB,EAAE,gBAAgB;EACrCC,kBAAkB,EAAE,eAAe;EACnCC,6BAA6B,EAAE,sBAAsB;EACrDC,+BAA+B,EAAE,wBAAwB;EACzDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,WAAW;EAC7BC,gBAAgB,EAAE,WAAW;EAC7BC,iBAAiB,EAAE,WAAW;EAC9BC,oBAAoB,EAAE,WAAW;EACjCC,cAAc,EAAE;AAClB,CAAC;AAED,SAAS1B,MAAM","ignoreList":[]}
@@ -1,30 +0,0 @@
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
- permissionMaintenanceAssignment: 'maintenanceAssignmentD',
17
- iconGridMenu: 'maintenance',
18
- iconAddMenu: 'request',
19
- iconKioskAction: 'wrench',
20
- orderAddMenu: 5,
21
- orderMoreMenu: 4,
22
- orderKioskAction: 1,
23
- textFeatureTitle: 'Request D',
24
- textAddMenuTitle: 'Request D',
25
- textMoreMenuTitle: 'Request D',
26
- textKioskActionTitle: 'Request D',
27
- textEntityName: 'Job'
28
- };
29
- export { values };
30
- //# sourceMappingURL=values.config.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["values","featureKey","aliases","reducerKey","serviceKey","updateKey","actionJobsLoaded","actionJobAdded","actionJobsAdded","screenMaintenance","screenRequestDetail","screenServiceRequest","screenJobTypePicker","screenRequestNotes","permissionMaintenanceTracking","permissionMaintenanceAssignment","iconGridMenu","iconAddMenu","iconKioskAction","orderAddMenu","orderMoreMenu","orderKioskAction","textFeatureTitle","textAddMenuTitle","textMoreMenuTitle","textKioskActionTitle","textEntityName"],"sources":["values.config.d.js"],"sourcesContent":["const values = {\n featureKey: 'maintenanceD',\n aliases: ['maintenanceRequestD'],\n reducerKey: 'jobsD',\n serviceKey: 'maintenanceD',\n updateKey: 'jobsD',\n actionJobsLoaded: 'JOBS_LOADEDD',\n actionJobAdded: 'JOB_ADDEDD',\n actionJobsAdded: 'JOBS_ADDEDD',\n screenMaintenance: 'maintenanceD',\n screenRequestDetail: 'requestDetailD',\n screenServiceRequest: 'serviceRequestD',\n screenJobTypePicker: 'jobTypePickerD',\n screenRequestNotes: 'requestNotesD',\n permissionMaintenanceTracking: 'maintenanceTrackingD',\n permissionMaintenanceAssignment: 'maintenanceAssignmentD',\n iconGridMenu: 'maintenance',\n iconAddMenu: 'request',\n iconKioskAction: 'wrench',\n orderAddMenu: 5,\n orderMoreMenu: 4,\n orderKioskAction: 1,\n textFeatureTitle: 'Request D',\n textAddMenuTitle: 'Request D',\n textMoreMenuTitle: 'Request D',\n textKioskActionTitle: 'Request D',\n textEntityName: 'Job',\n};\n\nexport { values };\n"],"mappings":"AAAA,MAAMA,MAAM,GAAG;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE,CAAC,qBAAqB,CAAC;EAChCC,UAAU,EAAE,OAAO;EACnBC,UAAU,EAAE,cAAc;EAC1BC,SAAS,EAAE,OAAO;EAClBC,gBAAgB,EAAE,cAAc;EAChCC,cAAc,EAAE,YAAY;EAC5BC,eAAe,EAAE,aAAa;EAC9BC,iBAAiB,EAAE,cAAc;EACjCC,mBAAmB,EAAE,gBAAgB;EACrCC,oBAAoB,EAAE,iBAAiB;EACvCC,mBAAmB,EAAE,gBAAgB;EACrCC,kBAAkB,EAAE,eAAe;EACnCC,6BAA6B,EAAE,sBAAsB;EACrDC,+BAA+B,EAAE,wBAAwB;EACzDC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,QAAQ;EACzBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,WAAW;EAC7BC,gBAAgB,EAAE,WAAW;EAC7BC,iBAAiB,EAAE,WAAW;EAC9BC,oBAAoB,EAAE,WAAW;EACjCC,cAAc,EAAE;AAClB,CAAC;AAED,SAAS1B,MAAM","ignoreList":[]}