@plusscommunities/pluss-maintenance-web 1.1.36 → 1.1.37-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/index.cjs.js +179 -103
- package/dist/index.esm.js +179 -103
- package/dist/index.umd.js +179 -103
- package/package.json +1 -1
- package/src/components/AnalyticsHub.js +308 -154
- package/src/feature.config.js +0 -1
- package/src/values.config.a.js +0 -6
- package/src/values.config.default.js +0 -6
- package/src/values.config.forms.js +0 -6
- package/src/values.config.js +0 -6
package/dist/index.cjs.js
CHANGED
|
@@ -112,13 +112,7 @@ const values = {
|
|
|
112
112
|
hasHelpButton: true,
|
|
113
113
|
helpGuideURL: '',
|
|
114
114
|
stringConfigJobStatus: 'maintenanceJobStatus',
|
|
115
|
-
stringConfigHideSeen: 'maintenanceDisableSeen'
|
|
116
|
-
// Comment subscription notification preference
|
|
117
|
-
notificationPreference: {
|
|
118
|
-
key: 'maintenancerequestComments',
|
|
119
|
-
label: 'Maintenance comments',
|
|
120
|
-
permission: 'maintenanceTracking'
|
|
121
|
-
}
|
|
115
|
+
stringConfigHideSeen: 'maintenanceDisableSeen'
|
|
122
116
|
};
|
|
123
117
|
|
|
124
118
|
// import * as PlussCore from '../../pluss-core/src';
|
|
@@ -247,8 +241,7 @@ const FeatureConfig = {
|
|
|
247
241
|
init: environment => {
|
|
248
242
|
FeatureConfig.env = environment;
|
|
249
243
|
PlussCore__namespace.Config.init(environment);
|
|
250
|
-
}
|
|
251
|
-
notificationPreference: values.notificationPreference
|
|
244
|
+
}
|
|
252
245
|
};
|
|
253
246
|
|
|
254
247
|
const JOBS_LOADED = values.actionJobsLoaded;
|
|
@@ -261,12 +254,12 @@ const JOBS_HIDE_SEEN = values.actionJobsHideSeen;
|
|
|
261
254
|
function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
262
255
|
function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
263
256
|
const {
|
|
264
|
-
Helper: Helper$
|
|
257
|
+
Helper: Helper$6,
|
|
265
258
|
Session: Session$9
|
|
266
259
|
} = PlussCore__namespace;
|
|
267
260
|
const maintenanceActions = {
|
|
268
261
|
getJobType: (site, typeId) => {
|
|
269
|
-
let url = Helper$
|
|
262
|
+
let url = Helper$6.getUrl(values.serviceKey, 'getjobtype');
|
|
270
263
|
return Session$9.authedFunction({
|
|
271
264
|
method: 'POST',
|
|
272
265
|
url,
|
|
@@ -277,7 +270,7 @@ const maintenanceActions = {
|
|
|
277
270
|
});
|
|
278
271
|
},
|
|
279
272
|
getJobTypes: (site, id) => {
|
|
280
|
-
let url = Helper$
|
|
273
|
+
let url = Helper$6.getUrl(values.serviceKey, 'getjobtypes');
|
|
281
274
|
return Session$9.authedFunction({
|
|
282
275
|
method: 'POST',
|
|
283
276
|
url,
|
|
@@ -287,7 +280,7 @@ const maintenanceActions = {
|
|
|
287
280
|
});
|
|
288
281
|
},
|
|
289
282
|
getJob: (site, id) => {
|
|
290
|
-
let url = Helper$
|
|
283
|
+
let url = Helper$6.getUrl(values.serviceKey, 'getJob');
|
|
291
284
|
return Session$9.authedFunction({
|
|
292
285
|
method: 'POST',
|
|
293
286
|
url,
|
|
@@ -298,7 +291,7 @@ const maintenanceActions = {
|
|
|
298
291
|
});
|
|
299
292
|
},
|
|
300
293
|
getJobByJobId: (site, jobId) => {
|
|
301
|
-
let url = Helper$
|
|
294
|
+
let url = Helper$6.getUrl(values.serviceKey, 'getJob');
|
|
302
295
|
return Session$9.authedFunction({
|
|
303
296
|
method: 'POST',
|
|
304
297
|
url,
|
|
@@ -313,7 +306,7 @@ const maintenanceActions = {
|
|
|
313
306
|
let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
314
307
|
return Session$9.authedFunction({
|
|
315
308
|
method: 'POST',
|
|
316
|
-
url: Helper$
|
|
309
|
+
url: Helper$6.getUrl(values.serviceKey, 'getJobs'),
|
|
317
310
|
data: {
|
|
318
311
|
site,
|
|
319
312
|
status,
|
|
@@ -336,7 +329,7 @@ const maintenanceActions = {
|
|
|
336
329
|
}
|
|
337
330
|
return Session$9.authedFunction({
|
|
338
331
|
method: 'GET',
|
|
339
|
-
url: Helper$
|
|
332
|
+
url: Helper$6.getUrl(values.serviceKey, 'get/requests', query)
|
|
340
333
|
});
|
|
341
334
|
},
|
|
342
335
|
getJobsRecursive: function (site, status, type, lastKey) {
|
|
@@ -354,14 +347,14 @@ const maintenanceActions = {
|
|
|
354
347
|
createJob: job => {
|
|
355
348
|
return Session$9.authedFunction({
|
|
356
349
|
method: 'POST',
|
|
357
|
-
url: Helper$
|
|
350
|
+
url: Helper$6.getUrl(values.serviceKey, 'sendMaintenance'),
|
|
358
351
|
data: _objectSpread$7({}, job)
|
|
359
352
|
});
|
|
360
353
|
},
|
|
361
354
|
editJob: (job, site) => {
|
|
362
355
|
return Session$9.authedFunction({
|
|
363
356
|
method: 'POST',
|
|
364
|
-
url: Helper$
|
|
357
|
+
url: Helper$6.getUrl(values.serviceKey, 'editJob'),
|
|
365
358
|
data: {
|
|
366
359
|
job,
|
|
367
360
|
site
|
|
@@ -371,7 +364,7 @@ const maintenanceActions = {
|
|
|
371
364
|
deleteJob: (site, id) => {
|
|
372
365
|
return Session$9.authedFunction({
|
|
373
366
|
method: 'POST',
|
|
374
|
-
url: Helper$
|
|
367
|
+
url: Helper$6.getUrl(values.serviceKey, 'requests/remove'),
|
|
375
368
|
data: {
|
|
376
369
|
site,
|
|
377
370
|
id
|
|
@@ -381,7 +374,7 @@ const maintenanceActions = {
|
|
|
381
374
|
editJobStatus: (id, status) => {
|
|
382
375
|
return Session$9.authedFunction({
|
|
383
376
|
method: 'POST',
|
|
384
|
-
url: Helper$
|
|
377
|
+
url: Helper$6.getUrl(values.serviceKey, 'editJobStatus'),
|
|
385
378
|
data: {
|
|
386
379
|
id,
|
|
387
380
|
status
|
|
@@ -391,7 +384,7 @@ const maintenanceActions = {
|
|
|
391
384
|
editJobPriority: (id, priority) => {
|
|
392
385
|
return Session$9.authedFunction({
|
|
393
386
|
method: 'POST',
|
|
394
|
-
url: Helper$
|
|
387
|
+
url: Helper$6.getUrl(values.serviceKey, 'update/priority'),
|
|
395
388
|
data: {
|
|
396
389
|
id,
|
|
397
390
|
priority
|
|
@@ -401,7 +394,7 @@ const maintenanceActions = {
|
|
|
401
394
|
assignJob: (jobId, userId) => {
|
|
402
395
|
return Session$9.authedFunction({
|
|
403
396
|
method: 'POST',
|
|
404
|
-
url: Helper$
|
|
397
|
+
url: Helper$6.getUrl(values.serviceKey, 'update/assign'),
|
|
405
398
|
data: {
|
|
406
399
|
id: jobId,
|
|
407
400
|
userId
|
|
@@ -411,7 +404,7 @@ const maintenanceActions = {
|
|
|
411
404
|
getAssignees: site => {
|
|
412
405
|
return Session$9.authedFunction({
|
|
413
406
|
method: 'GET',
|
|
414
|
-
url: Helper$
|
|
407
|
+
url: Helper$6.getUrl(values.serviceKey, 'get/assignees', {
|
|
415
408
|
site
|
|
416
409
|
})
|
|
417
410
|
});
|
|
@@ -419,7 +412,7 @@ const maintenanceActions = {
|
|
|
419
412
|
addNote: (jobId, note, attachments, images) => {
|
|
420
413
|
return Session$9.authedFunction({
|
|
421
414
|
method: 'POST',
|
|
422
|
-
url: Helper$
|
|
415
|
+
url: Helper$6.getUrl(values.serviceKey, 'requests/note'),
|
|
423
416
|
data: {
|
|
424
417
|
id: jobId,
|
|
425
418
|
note,
|
|
@@ -432,7 +425,7 @@ const maintenanceActions = {
|
|
|
432
425
|
editNote: (jobId, noteId, note, attachments, images) => {
|
|
433
426
|
return Session$9.authedFunction({
|
|
434
427
|
method: 'POST',
|
|
435
|
-
url: Helper$
|
|
428
|
+
url: Helper$6.getUrl(values.serviceKey, 'requests/note'),
|
|
436
429
|
data: {
|
|
437
430
|
id: jobId,
|
|
438
431
|
note,
|
|
@@ -446,7 +439,7 @@ const maintenanceActions = {
|
|
|
446
439
|
deleteNote: (jobId, noteId) => {
|
|
447
440
|
return Session$9.authedFunction({
|
|
448
441
|
method: 'POST',
|
|
449
|
-
url: Helper$
|
|
442
|
+
url: Helper$6.getUrl(values.serviceKey, 'requests/note'),
|
|
450
443
|
data: {
|
|
451
444
|
id: jobId,
|
|
452
445
|
noteId,
|
|
@@ -466,7 +459,7 @@ const maintenanceActions = {
|
|
|
466
459
|
};
|
|
467
460
|
return Session$9.authedFunction({
|
|
468
461
|
method: 'POST',
|
|
469
|
-
url: Helper$
|
|
462
|
+
url: Helper$6.getUrl(values.serviceKey, 'createJobType'),
|
|
470
463
|
data
|
|
471
464
|
});
|
|
472
465
|
},
|
|
@@ -484,14 +477,14 @@ const maintenanceActions = {
|
|
|
484
477
|
if (hasCustomFields && customFields) data.customFields = customFields;
|
|
485
478
|
return Session$9.authedFunction({
|
|
486
479
|
method: 'POST',
|
|
487
|
-
url: Helper$
|
|
480
|
+
url: Helper$6.getUrl(values.serviceKey, 'editJobType'),
|
|
488
481
|
data
|
|
489
482
|
});
|
|
490
483
|
},
|
|
491
484
|
deleteJobType: (site, id) => {
|
|
492
485
|
return Session$9.authedFunction({
|
|
493
486
|
method: 'POST',
|
|
494
|
-
url: Helper$
|
|
487
|
+
url: Helper$6.getUrl(values.serviceKey, 'deleteJobType'),
|
|
495
488
|
data: {
|
|
496
489
|
site,
|
|
497
490
|
id
|
|
@@ -501,7 +494,7 @@ const maintenanceActions = {
|
|
|
501
494
|
getExternalSync: jobId => {
|
|
502
495
|
return Session$9.authedFunction({
|
|
503
496
|
method: 'GET',
|
|
504
|
-
url: Helper$
|
|
497
|
+
url: Helper$6.getUrl(values.serviceKey, 'get/externalsync', {
|
|
505
498
|
id: jobId
|
|
506
499
|
})
|
|
507
500
|
});
|
|
@@ -509,7 +502,7 @@ const maintenanceActions = {
|
|
|
509
502
|
retrySync: jobId => {
|
|
510
503
|
return Session$9.authedFunction({
|
|
511
504
|
method: 'POST',
|
|
512
|
-
url: Helper$
|
|
505
|
+
url: Helper$6.getUrl(values.serviceKey, 'update/retrysync'),
|
|
513
506
|
data: {
|
|
514
507
|
id: jobId
|
|
515
508
|
}
|
|
@@ -518,7 +511,7 @@ const maintenanceActions = {
|
|
|
518
511
|
};
|
|
519
512
|
|
|
520
513
|
const {
|
|
521
|
-
Helper: Helper$
|
|
514
|
+
Helper: Helper$5,
|
|
522
515
|
Session: Session$8
|
|
523
516
|
} = PlussCore__namespace;
|
|
524
517
|
const reactionActions = {
|
|
@@ -536,7 +529,7 @@ const reactionActions = {
|
|
|
536
529
|
}
|
|
537
530
|
return Session$8.authedFunction({
|
|
538
531
|
method: 'POST',
|
|
539
|
-
url: Helper$
|
|
532
|
+
url: Helper$5.getUrl('reactions', 'comments/add'),
|
|
540
533
|
data
|
|
541
534
|
});
|
|
542
535
|
},
|
|
@@ -559,7 +552,7 @@ const reactionActions = {
|
|
|
559
552
|
}
|
|
560
553
|
return Session$8.authedFunction({
|
|
561
554
|
method: 'GET',
|
|
562
|
-
url: Helper$
|
|
555
|
+
url: Helper$5.getUrl('reactions', 'comments/get', query)
|
|
563
556
|
});
|
|
564
557
|
}
|
|
565
558
|
};
|
|
@@ -593,7 +586,7 @@ var jobStatusOptions = [
|
|
|
593
586
|
];
|
|
594
587
|
|
|
595
588
|
const {
|
|
596
|
-
Helper: Helper$
|
|
589
|
+
Helper: Helper$4
|
|
597
590
|
} = PlussCore__namespace;
|
|
598
591
|
const jobsUpdate = (site, isdashboard) => {
|
|
599
592
|
return dispatch => {
|
|
@@ -601,7 +594,7 @@ const jobsUpdate = (site, isdashboard) => {
|
|
|
601
594
|
type: JOBS_LOADING
|
|
602
595
|
});
|
|
603
596
|
maintenanceActions.getJobsRecursive(site).then(res => {
|
|
604
|
-
const currentSite = Helper$
|
|
597
|
+
const currentSite = Helper$4.readStorageWithCookie('site');
|
|
605
598
|
if (!___default["default"].isEmpty(res) && res[0].site === currentSite) {
|
|
606
599
|
dispatch({
|
|
607
600
|
type: JOBS_LOADED,
|
|
@@ -2738,7 +2731,7 @@ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymb
|
|
|
2738
2731
|
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2739
2732
|
const {
|
|
2740
2733
|
Apis: Apis$1,
|
|
2741
|
-
Helper: Helper$
|
|
2734
|
+
Helper: Helper$3,
|
|
2742
2735
|
Session: Session$3,
|
|
2743
2736
|
Colours: Colours$1,
|
|
2744
2737
|
Components: Components$3
|
|
@@ -3140,7 +3133,7 @@ class Job extends React.Component {
|
|
|
3140
3133
|
}
|
|
3141
3134
|
});
|
|
3142
3135
|
this.state = {
|
|
3143
|
-
jobId: Helper$
|
|
3136
|
+
jobId: Helper$3.safeReadParams(props, "jobId") ? props.match.params.jobId : null,
|
|
3144
3137
|
job: null,
|
|
3145
3138
|
showingSelector: false,
|
|
3146
3139
|
updating: false,
|
|
@@ -3343,7 +3336,7 @@ class Job extends React.Component {
|
|
|
3343
3336
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
3344
3337
|
className: "imageGrid_image",
|
|
3345
3338
|
style: {
|
|
3346
|
-
backgroundImage: "url('".concat(Helper$
|
|
3339
|
+
backgroundImage: "url('".concat(Helper$3.get1400(image), "')"),
|
|
3347
3340
|
width: size,
|
|
3348
3341
|
height: size
|
|
3349
3342
|
}
|
|
@@ -3558,7 +3551,7 @@ class Job extends React.Component {
|
|
|
3558
3551
|
}]
|
|
3559
3552
|
})), /*#__PURE__*/React__default["default"].createElement("p", {
|
|
3560
3553
|
className: "maintenanceNote_text"
|
|
3561
|
-
}, Helper$
|
|
3554
|
+
}, Helper$3.toParagraphed(note.Note)), note.Attachments.map((a, i) => this.renderAttachment(a, i)), note.Images && note.Images.length > 0 ? this.renderImageGrid(note.Images, IMAGE_SIZE_NOTE) : null));
|
|
3562
3555
|
}
|
|
3563
3556
|
renderAssignment() {
|
|
3564
3557
|
const {
|
|
@@ -3992,7 +3985,7 @@ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t
|
|
|
3992
3985
|
const {
|
|
3993
3986
|
Actions,
|
|
3994
3987
|
Components: Components$2,
|
|
3995
|
-
Helper: Helper$
|
|
3988
|
+
Helper: Helper$2,
|
|
3996
3989
|
Session: Session$2,
|
|
3997
3990
|
Colours,
|
|
3998
3991
|
Apis
|
|
@@ -4350,7 +4343,7 @@ class AddJob extends React.Component {
|
|
|
4350
4343
|
if (___default["default"].isNil(answer) || ___default["default"].isEmpty(answer)) return true;
|
|
4351
4344
|
switch (type) {
|
|
4352
4345
|
case "email":
|
|
4353
|
-
return Helper$
|
|
4346
|
+
return Helper$2.isEmail(answer);
|
|
4354
4347
|
case "date":
|
|
4355
4348
|
return moment__default["default"](answer, "YYYY-MM-DD", true).isValid();
|
|
4356
4349
|
case "time":
|
|
@@ -4371,7 +4364,7 @@ class AddJob extends React.Component {
|
|
|
4371
4364
|
this.customImageInputs = {};
|
|
4372
4365
|
this.customDocumentInputs = {};
|
|
4373
4366
|
this.state = {
|
|
4374
|
-
jobId: Helper$
|
|
4367
|
+
jobId: Helper$2.safeReadParams(this.props, "jobId") ? this.props.match.params.jobId : null,
|
|
4375
4368
|
job: null,
|
|
4376
4369
|
showingSelector: false,
|
|
4377
4370
|
updating: false,
|
|
@@ -4723,7 +4716,7 @@ class AddJob extends React.Component {
|
|
|
4723
4716
|
return /*#__PURE__*/React__default["default"].createElement("p", {
|
|
4724
4717
|
className: "visitorSignIn_text-staticText",
|
|
4725
4718
|
key: fieldId
|
|
4726
|
-
}, Helper$
|
|
4719
|
+
}, Helper$2.toParagraphed(field.label, {
|
|
4727
4720
|
marginTop: 10
|
|
4728
4721
|
}));
|
|
4729
4722
|
case "date":
|
|
@@ -4978,7 +4971,7 @@ const mapStateToProps$2 = state => {
|
|
|
4978
4971
|
return {
|
|
4979
4972
|
auth,
|
|
4980
4973
|
strings: state.strings && state.strings.config || {},
|
|
4981
|
-
optionOnlyForResidents: Helper$
|
|
4974
|
+
optionOnlyForResidents: Helper$2.getSiteSettingFromState(state, values.optionOnlyForResidents)
|
|
4982
4975
|
};
|
|
4983
4976
|
};
|
|
4984
4977
|
var AddJob$1 = reactRedux.connect(mapStateToProps$2, {
|
|
@@ -4990,7 +4983,7 @@ var AddJob$1 = reactRedux.connect(mapStateToProps$2, {
|
|
|
4990
4983
|
const {
|
|
4991
4984
|
Components: Components$1,
|
|
4992
4985
|
Session: Session$1,
|
|
4993
|
-
Helper
|
|
4986
|
+
Helper: Helper$1
|
|
4994
4987
|
} = PlussCore__namespace;
|
|
4995
4988
|
const DEFAULT_FIELD = {
|
|
4996
4989
|
type: 'text',
|
|
@@ -5033,7 +5026,7 @@ class AddJobType extends React.Component {
|
|
|
5033
5026
|
const {
|
|
5034
5027
|
jobTypeEmail
|
|
5035
5028
|
} = this.state;
|
|
5036
|
-
return !___default["default"].isEmpty(jobTypeEmail) && Helper.isEmail(jobTypeEmail);
|
|
5029
|
+
return !___default["default"].isEmpty(jobTypeEmail) && Helper$1.isEmail(jobTypeEmail);
|
|
5037
5030
|
});
|
|
5038
5031
|
_defineProperty__default["default"](this, "isJobTypeValid", () => {
|
|
5039
5032
|
const {
|
|
@@ -5235,7 +5228,7 @@ class AddJobType extends React.Component {
|
|
|
5235
5228
|
}];
|
|
5236
5229
|
this.state = {
|
|
5237
5230
|
loading: false,
|
|
5238
|
-
jobTypeId: Helper.safeReadParams(this.props, 'jobTypeId') ? this.props.match.params.jobTypeId : null,
|
|
5231
|
+
jobTypeId: Helper$1.safeReadParams(this.props, 'jobTypeId') ? this.props.match.params.jobTypeId : null,
|
|
5239
5232
|
jobTypeName: '',
|
|
5240
5233
|
jobTypeEmail: '',
|
|
5241
5234
|
jobTypeDescription: '',
|
|
@@ -5803,7 +5796,8 @@ var AddJobType$1 = reactRedux.connect(mapStateToProps$1, {
|
|
|
5803
5796
|
const {
|
|
5804
5797
|
Analytics: Analytics$1,
|
|
5805
5798
|
Session,
|
|
5806
|
-
Components
|
|
5799
|
+
Components,
|
|
5800
|
+
Helper
|
|
5807
5801
|
} = PlussCore__namespace;
|
|
5808
5802
|
const getInitialState = () => ({
|
|
5809
5803
|
requests: 0,
|
|
@@ -5823,10 +5817,20 @@ const AnalyticsHub = _ref => {
|
|
|
5823
5817
|
auth,
|
|
5824
5818
|
prevText,
|
|
5825
5819
|
dayCount,
|
|
5826
|
-
strings
|
|
5820
|
+
strings,
|
|
5821
|
+
userType,
|
|
5822
|
+
userCategory,
|
|
5823
|
+
selectedSites
|
|
5827
5824
|
} = _ref;
|
|
5828
5825
|
const [analyticsData, setAnalyticsData] = React.useState(getInitialState());
|
|
5829
5826
|
const [isExportOpen, setIsExportOpen] = React.useState(false);
|
|
5827
|
+
const [comparisonData, setComparisonData] = React.useState({
|
|
5828
|
+
requests: [],
|
|
5829
|
+
completedRequests: [],
|
|
5830
|
+
comments: [],
|
|
5831
|
+
isLoading: true
|
|
5832
|
+
});
|
|
5833
|
+
const comparisonMode = selectedSites && selectedSites.length > 1;
|
|
5830
5834
|
const hasAccess = Session.validateAccess(auth.site, values.permissionMaintenanceTracking, auth);
|
|
5831
5835
|
if (!hasAccess) {
|
|
5832
5836
|
return null;
|
|
@@ -5838,50 +5842,92 @@ const AnalyticsHub = _ref => {
|
|
|
5838
5842
|
return strings.sideNav[key];
|
|
5839
5843
|
})();
|
|
5840
5844
|
const exportColumns = [{
|
|
5841
|
-
label:
|
|
5842
|
-
key:
|
|
5845
|
+
label: "Select All",
|
|
5846
|
+
key: ""
|
|
5843
5847
|
}, {
|
|
5844
|
-
label:
|
|
5845
|
-
key:
|
|
5848
|
+
label: "Start Date",
|
|
5849
|
+
key: "startDate"
|
|
5846
5850
|
}, {
|
|
5847
|
-
label:
|
|
5848
|
-
key:
|
|
5851
|
+
label: "End Date",
|
|
5852
|
+
key: "endDate"
|
|
5849
5853
|
}, {
|
|
5850
5854
|
label: "".concat(values.textSingularName, "s"),
|
|
5851
|
-
key:
|
|
5855
|
+
key: "requests"
|
|
5852
5856
|
}, {
|
|
5853
5857
|
label: "Completed ".concat(values.textSingularName, "s"),
|
|
5854
|
-
key:
|
|
5858
|
+
key: "completedRequests"
|
|
5855
5859
|
}, {
|
|
5856
|
-
label:
|
|
5857
|
-
key:
|
|
5860
|
+
label: "Comments",
|
|
5861
|
+
key: "comments"
|
|
5858
5862
|
}];
|
|
5859
5863
|
React.useEffect(() => {
|
|
5860
5864
|
getData();
|
|
5861
|
-
}, [startTime, endTime]);
|
|
5865
|
+
}, [startTime, endTime, userType, userCategory, selectedSites]);
|
|
5862
5866
|
const getData = async () => {
|
|
5863
|
-
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5867
|
+
if (comparisonMode) {
|
|
5868
|
+
setComparisonData({
|
|
5869
|
+
requests: [],
|
|
5870
|
+
completedRequests: [],
|
|
5871
|
+
comments: [],
|
|
5872
|
+
isLoading: true
|
|
5873
|
+
});
|
|
5874
|
+
const multiSiteResultsObj = await Analytics$1.fetchMultiSiteData(selectedSites, async site => {
|
|
5875
|
+
const {
|
|
5876
|
+
data
|
|
5877
|
+
} = await analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime, endTime, true, {
|
|
5878
|
+
userType,
|
|
5879
|
+
userCategory
|
|
5880
|
+
});
|
|
5881
|
+
return data;
|
|
5882
|
+
});
|
|
5883
|
+
const multiSiteResults = Object.entries(multiSiteResultsObj).map(_ref2 => {
|
|
5884
|
+
let [site, data] = _ref2;
|
|
5885
|
+
return {
|
|
5886
|
+
site,
|
|
5887
|
+
data
|
|
5888
|
+
};
|
|
5889
|
+
});
|
|
5890
|
+
const roles = auth.user.Roles;
|
|
5891
|
+
const buildComparison = (activityKey, countType) => multiSiteResults.map(result => ({
|
|
5892
|
+
name: Helper.getSiteNameFromRoles(result.site, roles),
|
|
5893
|
+
value: Analytics$1.countActivities(result.data, activityKey, countType)
|
|
5894
|
+
}));
|
|
5895
|
+
setComparisonData({
|
|
5896
|
+
requests: buildComparison("Request", "total"),
|
|
5897
|
+
completedRequests: buildComparison("RequestCompleted", "unique"),
|
|
5898
|
+
comments: buildComparison("Comment", "total"),
|
|
5899
|
+
isLoading: false
|
|
5900
|
+
});
|
|
5901
|
+
} else {
|
|
5902
|
+
setAnalyticsData(getInitialState());
|
|
5903
|
+
const site = selectedSites && selectedSites.length === 1 ? selectedSites[0] : auth.site;
|
|
5904
|
+
const timeDifference = endTime - startTime;
|
|
5905
|
+
const [currentStatsResponse, prevStatsResponse] = await Promise.all([analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime, endTime, true, {
|
|
5906
|
+
userType,
|
|
5907
|
+
userCategory
|
|
5908
|
+
}), analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime - timeDifference, startTime, true, {
|
|
5909
|
+
userType,
|
|
5910
|
+
userCategory
|
|
5911
|
+
})]);
|
|
5912
|
+
const data = {
|
|
5913
|
+
requests: Analytics$1.countActivities(currentStatsResponse.data, "Request", "total"),
|
|
5914
|
+
prevRequests: Analytics$1.countActivities(prevStatsResponse.data, "Request", "total"),
|
|
5915
|
+
completedRequests: Analytics$1.countActivities(currentStatsResponse.data, "RequestCompleted", "unique"),
|
|
5916
|
+
prevCompletedRequests: Analytics$1.countActivities(prevStatsResponse.data, "RequestCompleted", "unique"),
|
|
5917
|
+
comments: Analytics$1.countActivities(currentStatsResponse.data, "Comment", "total"),
|
|
5918
|
+
prevComments: Analytics$1.countActivities(prevStatsResponse.data, "Comment", "total"),
|
|
5919
|
+
isLoading: false
|
|
5920
|
+
};
|
|
5921
|
+
setAnalyticsData(data);
|
|
5922
|
+
}
|
|
5877
5923
|
};
|
|
5878
5924
|
const isReadyToOpenCSV = () => {
|
|
5879
|
-
return !analyticsData.isLoading;
|
|
5925
|
+
return comparisonMode ? !comparisonData.isLoading : !analyticsData.isLoading;
|
|
5880
5926
|
};
|
|
5881
5927
|
const getExportSource = () => {
|
|
5882
5928
|
return [{
|
|
5883
|
-
startDate: moment__default["default"](startTime + 1).format(
|
|
5884
|
-
endDate: moment__default["default"](endTime).format(
|
|
5929
|
+
startDate: moment__default["default"](startTime + 1).format("D-MM-YYYY"),
|
|
5930
|
+
endDate: moment__default["default"](endTime).format("D-MM-YYYY"),
|
|
5885
5931
|
requests: analyticsData.requests,
|
|
5886
5932
|
completedRequests: analyticsData.completedRequests,
|
|
5887
5933
|
comments: analyticsData.comments
|
|
@@ -5917,31 +5963,61 @@ const AnalyticsHub = _ref => {
|
|
|
5917
5963
|
leftIcon: "file-code-o"
|
|
5918
5964
|
}, "Export CSV")), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5919
5965
|
className: "analyticsSection dashboardSection_content"
|
|
5920
|
-
},
|
|
5921
|
-
|
|
5922
|
-
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5966
|
+
}, (() => {
|
|
5967
|
+
const chartSuffix = [selectedSites && selectedSites.length > 0 ? "&sites=".concat(selectedSites.join(",")) : "", userType ? "&userType=".concat(encodeURIComponent(userType)) : "", userCategory ? "&userCategory=".concat(encodeURIComponent(userCategory)) : ""].join("");
|
|
5968
|
+
if (comparisonMode) {
|
|
5969
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
5970
|
+
style: {
|
|
5971
|
+
display: "flex",
|
|
5972
|
+
flexDirection: "column",
|
|
5973
|
+
gap: 16
|
|
5974
|
+
}
|
|
5975
|
+
}, /*#__PURE__*/React__default["default"].createElement(Components.ComparisonStatBox, {
|
|
5976
|
+
title: "".concat(featureTitle, " Requests"),
|
|
5977
|
+
data: comparisonData.requests,
|
|
5978
|
+
prevText: prevText,
|
|
5979
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
5980
|
+
isLoading: comparisonData.isLoading
|
|
5981
|
+
}), /*#__PURE__*/React__default["default"].createElement(Components.ComparisonStatBox, {
|
|
5982
|
+
title: "Completed ".concat(featureTitle, " Requests"),
|
|
5983
|
+
data: comparisonData.completedRequests,
|
|
5984
|
+
prevText: prevText,
|
|
5985
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
5986
|
+
isLoading: comparisonData.isLoading
|
|
5987
|
+
}), /*#__PURE__*/React__default["default"].createElement(Components.ComparisonStatBox, {
|
|
5988
|
+
title: "".concat(featureTitle, " Comments"),
|
|
5989
|
+
data: comparisonData.comments,
|
|
5990
|
+
prevText: prevText,
|
|
5991
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
5992
|
+
isLoading: comparisonData.isLoading
|
|
5993
|
+
}));
|
|
5994
|
+
}
|
|
5995
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Components.StatBox, {
|
|
5996
|
+
title: "".concat(featureTitle, " Requests"),
|
|
5997
|
+
icon: freeSolidSvgIcons.faWrench,
|
|
5998
|
+
value: analyticsData.requests,
|
|
5999
|
+
previousValue: analyticsData.prevRequests,
|
|
6000
|
+
prevText: prevText,
|
|
6001
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
6002
|
+
isLoading: analyticsData.isLoading
|
|
6003
|
+
}), /*#__PURE__*/React__default["default"].createElement(Components.StatBox, {
|
|
6004
|
+
title: "Completed ".concat(featureTitle, " Requests"),
|
|
6005
|
+
icon: freeSolidSvgIcons.faCircleCheck,
|
|
6006
|
+
value: analyticsData.completedRequests,
|
|
6007
|
+
previousValue: analyticsData.prevCompletedRequests,
|
|
6008
|
+
prevText: prevText,
|
|
6009
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
6010
|
+
isLoading: analyticsData.isLoading
|
|
6011
|
+
}), /*#__PURE__*/React__default["default"].createElement(Components.StatBox, {
|
|
6012
|
+
title: "".concat(featureTitle, " Comments"),
|
|
6013
|
+
icon: freeSolidSvgIcons.faComment,
|
|
6014
|
+
value: analyticsData.comments,
|
|
6015
|
+
previousValue: analyticsData.prevComments,
|
|
6016
|
+
prevText: prevText,
|
|
6017
|
+
viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
|
|
6018
|
+
isLoading: analyticsData.isLoading
|
|
6019
|
+
}));
|
|
6020
|
+
})()));
|
|
5945
6021
|
};
|
|
5946
6022
|
const mapStateToProps = state => {
|
|
5947
6023
|
const {
|