@plusscommunities/pluss-maintenance-app 6.0.11 → 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.
- package/dist/module/actions/JobActions.js +44 -1
- package/dist/module/actions/JobActions.js.map +1 -1
- package/dist/module/actions/types.js +3 -0
- package/dist/module/actions/types.js.map +1 -1
- package/dist/module/apis/index.js +2 -0
- package/dist/module/apis/index.js.map +1 -1
- package/dist/module/apis/maintenanceActions.js +21 -6
- package/dist/module/apis/maintenanceActions.js.map +1 -1
- package/dist/module/components/FilterPopupMenu.js +34 -18
- package/dist/module/components/FilterPopupMenu.js.map +1 -1
- package/dist/module/components/MaintenanceList.js +47 -56
- package/dist/module/components/MaintenanceList.js.map +1 -1
- package/dist/module/components/MaintenanceListItem.js +39 -26
- package/dist/module/components/MaintenanceListItem.js.map +1 -1
- package/dist/module/components/MaintenanceWidgetItem.js +12 -12
- package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
- package/dist/module/components/PrioritySelectorPopup.js +82 -0
- package/dist/module/components/PrioritySelectorPopup.js.map +1 -0
- package/dist/module/components/StatusSelectorPopup.js +9 -14
- package/dist/module/components/StatusSelectorPopup.js.map +1 -1
- package/dist/module/components/WidgetSmall.js +7 -3
- package/dist/module/components/WidgetSmall.js.map +1 -1
- package/dist/module/helper.js +39 -25
- package/dist/module/helper.js.map +1 -1
- package/dist/module/reducers/JobsReducer.js +31 -2
- package/dist/module/reducers/JobsReducer.js.map +1 -1
- package/dist/module/screens/RequestDetail.js +90 -18
- package/dist/module/screens/RequestDetail.js.map +1 -1
- package/dist/module/screens/RequestNotes.js +335 -19
- package/dist/module/screens/RequestNotes.js.map +1 -1
- package/dist/module/values.config.a.js +6 -1
- package/dist/module/values.config.a.js.map +1 -1
- package/dist/module/values.config.default.js +6 -1
- package/dist/module/values.config.default.js.map +1 -1
- package/dist/module/values.config.forms.js +6 -1
- package/dist/module/values.config.forms.js.map +1 -1
- package/dist/module/values.config.js +6 -1
- package/dist/module/values.config.js.map +1 -1
- package/package.json +1 -1
- package/src/actions/JobActions.js +53 -1
- package/src/actions/types.js +4 -0
- package/src/apis/index.js +4 -0
- package/src/apis/maintenanceActions.js +18 -6
- package/src/components/FilterPopupMenu.js +40 -21
- package/src/components/MaintenanceList.js +38 -47
- package/src/components/MaintenanceListItem.js +35 -21
- package/src/components/MaintenanceWidgetItem.js +16 -12
- package/src/components/PrioritySelectorPopup.js +79 -0
- package/src/components/StatusSelectorPopup.js +8 -14
- package/src/components/WidgetSmall.js +5 -3
- package/src/helper.js +50 -21
- package/src/reducers/JobsReducer.js +25 -1
- package/src/screens/RequestDetail.js +89 -26
- package/src/screens/RequestNotes.js +348 -28
- package/src/values.config.a.js +5 -0
- package/src/values.config.default.js +5 -0
- package/src/values.config.forms.js +5 -0
- package/src/values.config.js +5 -0
@@ -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
|
-
|
85
|
-
|
86
|
-
|
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
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
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
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
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 => {
|
package/src/values.config.a.js
CHANGED
@@ -8,6 +8,9 @@ const values = {
|
|
8
8
|
actionJobsLoaded: 'JOBS_LOADEDA',
|
9
9
|
actionJobAdded: 'JOB_ADDEDA',
|
10
10
|
actionJobsAdded: 'JOBS_ADDEDA',
|
11
|
+
actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDA',
|
12
|
+
actionJobsHideSeen: 'JOBS_HIDE_SEENA',
|
13
|
+
actionJobFilterLoaded: 'JOBS_FILTER_LOADEDA',
|
11
14
|
screenMaintenance: 'maintenanceA',
|
12
15
|
screenRequestDetail: 'requestDetailA',
|
13
16
|
screenServiceRequest: 'serviceRequestA',
|
@@ -26,6 +29,8 @@ const values = {
|
|
26
29
|
textMoreMenuTitle: 'Request A',
|
27
30
|
textKioskActionTitle: 'Request A',
|
28
31
|
textEntityName: 'Job',
|
32
|
+
stringConfigJobStatus: 'maintenanceJobStatusA',
|
33
|
+
stringConfigHideSeen: 'maintenanceDisableSeenA',
|
29
34
|
};
|
30
35
|
|
31
36
|
export { values };
|
@@ -8,6 +8,9 @@ const values = {
|
|
8
8
|
actionJobsLoaded: 'JOBS_LOADED',
|
9
9
|
actionJobAdded: 'JOB_ADDED',
|
10
10
|
actionJobsAdded: 'JOBS_ADDED',
|
11
|
+
actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
|
12
|
+
actionJobsHideSeen: 'JOBS_HIDE_SEEN',
|
13
|
+
actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
|
11
14
|
screenMaintenance: 'maintenance',
|
12
15
|
screenRequestDetail: 'requestDetail',
|
13
16
|
screenServiceRequest: 'serviceRequest',
|
@@ -32,6 +35,8 @@ const values = {
|
|
32
35
|
emptyRequestsStaff: 'No active Requests',
|
33
36
|
emptyRequestsUser: 'Your Requests will show here',
|
34
37
|
forceCustomFields: false,
|
38
|
+
stringConfigJobStatus: 'maintenanceJobStatus',
|
39
|
+
stringConfigHideSeen: 'maintenanceDisableSeen',
|
35
40
|
};
|
36
41
|
|
37
42
|
export { values };
|
@@ -8,6 +8,9 @@ const values = {
|
|
8
8
|
actionJobsLoaded: 'JOBS_LOADEDForms',
|
9
9
|
actionJobAdded: 'JOB_ADDEDForms',
|
10
10
|
actionJobsAdded: 'JOBS_ADDEDForms',
|
11
|
+
actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADEDForms',
|
12
|
+
actionJobsHideSeen: 'JOBS_HIDE_SEENForms',
|
13
|
+
actionJobFilterLoaded: 'JOBS_FILTER_LOADEDForms',
|
11
14
|
screenMaintenance: 'maintenanceForms',
|
12
15
|
screenRequestDetail: 'requestDetailForms',
|
13
16
|
screenServiceRequest: 'serviceRequestForms',
|
@@ -32,6 +35,8 @@ const values = {
|
|
32
35
|
emptyRequestsStaff: 'No active Form Submissions',
|
33
36
|
emptyRequestsUser: 'Your Form Submissions will show here',
|
34
37
|
forceCustomFields: true,
|
38
|
+
stringConfigJobStatus: 'maintenanceJobStatusForms',
|
39
|
+
stringConfigHideSeen: 'maintenanceDisableSeenForms',
|
35
40
|
};
|
36
41
|
|
37
42
|
export { values };
|
package/src/values.config.js
CHANGED
@@ -8,6 +8,9 @@ const values = {
|
|
8
8
|
actionJobsLoaded: 'JOBS_LOADED',
|
9
9
|
actionJobAdded: 'JOB_ADDED',
|
10
10
|
actionJobsAdded: 'JOBS_ADDED',
|
11
|
+
actionJobsStatusesLoaded: 'JOBS_STATUSES_LOADED',
|
12
|
+
actionJobsHideSeen: 'JOBS_HIDE_SEEN',
|
13
|
+
actionJobFilterLoaded: 'JOBS_FILTER_LOADED',
|
11
14
|
screenMaintenance: 'maintenance',
|
12
15
|
screenRequestDetail: 'requestDetail',
|
13
16
|
screenServiceRequest: 'serviceRequest',
|
@@ -32,6 +35,8 @@ const values = {
|
|
32
35
|
emptyRequestsStaff: 'No active Requests',
|
33
36
|
emptyRequestsUser: 'Your Requests will show here',
|
34
37
|
forceCustomFields: false,
|
38
|
+
stringConfigJobStatus: 'maintenanceJobStatus',
|
39
|
+
stringConfigHideSeen: 'maintenanceDisableSeen',
|
35
40
|
};
|
36
41
|
|
37
42
|
export { values };
|