@plusscommunities/pluss-maintenance-web 1.1.8 → 1.1.9

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 CHANGED
@@ -22,6 +22,8 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
22
22
  var reactBootstrap = require('react-bootstrap');
23
23
  var reactRouterDom = require('react-router-dom');
24
24
  var Textarea = require('react-textarea-autosize');
25
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
26
+ var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
25
27
 
26
28
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
29
 
@@ -61,6 +63,7 @@ var FontAwesome__default = /*#__PURE__*/_interopDefaultLegacy(FontAwesome);
61
63
  var PlussCore__namespace = /*#__PURE__*/_interopNamespace(PlussCore);
62
64
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
63
65
  var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
66
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
64
67
 
65
68
  // import * as PlussCore from '../../pluss-core/src';
66
69
  var FeatureConfig = {
@@ -172,11 +175,11 @@ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if
172
175
 
173
176
  function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
174
177
  var Helper$5 = PlussCore__namespace.Helper,
175
- Session$6 = PlussCore__namespace.Session;
178
+ Session$7 = PlussCore__namespace.Session;
176
179
  var maintenanceActions = {
177
180
  getJobTypes: function getJobTypes(site) {
178
181
  var url = Helper$5.getUrl('maintenance', 'getjobtypes');
179
- return Session$6.authedFunction({
182
+ return Session$7.authedFunction({
180
183
  method: 'POST',
181
184
  url: url,
182
185
  data: {
@@ -186,7 +189,7 @@ var maintenanceActions = {
186
189
  },
187
190
  getJob: function getJob(site, id) {
188
191
  var url = Helper$5.getUrl('maintenance', 'getJob');
189
- return Session$6.authedFunction({
192
+ return Session$7.authedFunction({
190
193
  method: 'POST',
191
194
  url: url,
192
195
  data: {
@@ -197,7 +200,7 @@ var maintenanceActions = {
197
200
  },
198
201
  getJobByJobId: function getJobByJobId(site, jobId) {
199
202
  var url = Helper$5.getUrl('maintenance', 'getJob');
200
- return Session$6.authedFunction({
203
+ return Session$7.authedFunction({
201
204
  method: 'POST',
202
205
  url: url,
203
206
  data: {
@@ -209,7 +212,7 @@ var maintenanceActions = {
209
212
  getJobs: function getJobs(site) {
210
213
  var status = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
211
214
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
212
- return Session$6.authedFunction({
215
+ return Session$7.authedFunction({
213
216
  method: 'POST',
214
217
  url: Helper$5.getUrl('maintenance', 'getJobs'),
215
218
  data: {
@@ -236,7 +239,7 @@ var maintenanceActions = {
236
239
  query.lastKey = JSON.stringify(lastKey);
237
240
  }
238
241
 
239
- return Session$6.authedFunction({
242
+ return Session$7.authedFunction({
240
243
  method: 'GET',
241
244
  url: Helper$5.getUrl('maintenance', 'get/requests', query)
242
245
  });
@@ -256,14 +259,14 @@ var maintenanceActions = {
256
259
  });
257
260
  },
258
261
  createJob: function createJob(job) {
259
- return Session$6.authedFunction({
262
+ return Session$7.authedFunction({
260
263
  method: 'POST',
261
264
  url: Helper$5.getUrl('maintenance', 'sendMaintenance'),
262
265
  data: _objectSpread$5({}, job)
263
266
  });
264
267
  },
265
268
  editJob: function editJob(job, site) {
266
- return Session$6.authedFunction({
269
+ return Session$7.authedFunction({
267
270
  method: 'POST',
268
271
  url: Helper$5.getUrl('maintenance', 'editJob'),
269
272
  data: {
@@ -273,7 +276,7 @@ var maintenanceActions = {
273
276
  });
274
277
  },
275
278
  deleteJob: function deleteJob(site, id) {
276
- return Session$6.authedFunction({
279
+ return Session$7.authedFunction({
277
280
  method: 'POST',
278
281
  url: Helper$5.getUrl('maintenance', 'requests/remove'),
279
282
  data: {
@@ -283,7 +286,7 @@ var maintenanceActions = {
283
286
  });
284
287
  },
285
288
  editJobStatus: function editJobStatus(id, status) {
286
- return Session$6.authedFunction({
289
+ return Session$7.authedFunction({
287
290
  method: 'POST',
288
291
  url: Helper$5.getUrl('maintenance', 'editJobStatus'),
289
292
  data: {
@@ -293,7 +296,7 @@ var maintenanceActions = {
293
296
  });
294
297
  },
295
298
  addNote: function addNote(jobId, note, attachments) {
296
- return Session$6.authedFunction({
299
+ return Session$7.authedFunction({
297
300
  method: 'POST',
298
301
  url: Helper$5.getUrl('maintenance', 'requests/note'),
299
302
  data: {
@@ -305,7 +308,7 @@ var maintenanceActions = {
305
308
  });
306
309
  },
307
310
  editNote: function editNote(jobId, noteId, note, attachments) {
308
- return Session$6.authedFunction({
311
+ return Session$7.authedFunction({
309
312
  method: 'POST',
310
313
  url: Helper$5.getUrl('maintenance', 'requests/note'),
311
314
  data: {
@@ -318,7 +321,7 @@ var maintenanceActions = {
318
321
  });
319
322
  },
320
323
  deleteNote: function deleteNote(jobId, noteId) {
321
- return Session$6.authedFunction({
324
+ return Session$7.authedFunction({
322
325
  method: 'POST',
323
326
  url: Helper$5.getUrl('maintenance', 'requests/note'),
324
327
  data: {
@@ -329,7 +332,7 @@ var maintenanceActions = {
329
332
  });
330
333
  },
331
334
  addJobType: function addJobType(site, name, email, description, level) {
332
- return Session$6.authedFunction({
335
+ return Session$7.authedFunction({
333
336
  method: 'POST',
334
337
  url: Helper$5.getUrl('maintenance', 'createJobType'),
335
338
  data: {
@@ -342,7 +345,7 @@ var maintenanceActions = {
342
345
  });
343
346
  },
344
347
  editJobType: function editJobType(site, id, name, email, description, level) {
345
- return Session$6.authedFunction({
348
+ return Session$7.authedFunction({
346
349
  method: 'POST',
347
350
  url: Helper$5.getUrl('maintenance', 'editJobType'),
348
351
  data: {
@@ -356,7 +359,7 @@ var maintenanceActions = {
356
359
  });
357
360
  },
358
361
  deleteJobType: function deleteJobType(site, id) {
359
- return Session$6.authedFunction({
362
+ return Session$7.authedFunction({
360
363
  method: 'POST',
361
364
  url: Helper$5.getUrl('maintenance', 'deleteJobType'),
362
365
  data: {
@@ -368,7 +371,7 @@ var maintenanceActions = {
368
371
  };
369
372
 
370
373
  var Helper$4 = PlussCore__namespace.Helper,
371
- Session$5 = PlussCore__namespace.Session;
374
+ Session$6 = PlussCore__namespace.Session;
372
375
  var reactionActions = {
373
376
  addComment: function addComment(entityId, entityType, entityName, site, comment, image, parentId) {
374
377
  var data = {
@@ -384,7 +387,7 @@ var reactionActions = {
384
387
  data.image = image;
385
388
  }
386
389
 
387
- return Session$5.authedFunction({
390
+ return Session$6.authedFunction({
388
391
  method: 'POST',
389
392
  url: Helper$4.getUrl('reactions', 'comments/add'),
390
393
  data: data
@@ -409,13 +412,16 @@ var reactionActions = {
409
412
  query.minTime = minTime;
410
413
  }
411
414
 
412
- return Session$5.authedFunction({
415
+ return Session$6.authedFunction({
413
416
  method: 'GET',
414
417
  url: Helper$4.getUrl('reactions', 'comments/get', query)
415
418
  });
416
419
  }
417
420
  };
418
421
 
422
+ var Apis$1 = PlussCore__namespace.Apis;
423
+ var analyticsActions = Apis$1.analyticsActions;
424
+
419
425
  var Helper$3 = PlussCore__namespace.Helper;
420
426
  var jobsUpdate = function jobsUpdate(site, isdashboard) {
421
427
  return function (dispatch) {
@@ -523,9 +529,9 @@ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) {
523
529
  function _createSuper$a(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
524
530
 
525
531
  function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
526
- var Session$4 = PlussCore__namespace.Session,
527
- Components$4 = PlussCore__namespace.Components,
528
- Analytics = PlussCore__namespace.Analytics;
532
+ var Session$5 = PlussCore__namespace.Session,
533
+ Components$5 = PlussCore__namespace.Components,
534
+ Analytics$2 = PlussCore__namespace.Analytics;
529
535
 
530
536
  var JobList = /*#__PURE__*/function (_Component) {
531
537
  _inherits__default['default'](JobList, _Component);
@@ -853,7 +859,7 @@ var JobList = /*#__PURE__*/function (_Component) {
853
859
  showCompleted: false,
854
860
  sortColumn: 'createdUnix',
855
861
  sortDesc: false,
856
- selectedTimeFilter: Analytics.getAnalyticsFilterOptions()[1]
862
+ selectedTimeFilter: Analytics$2.getAnalyticsFilterOptions()[1]
857
863
  };
858
864
  _this.exportColumns = [{
859
865
  label: 'Select All',
@@ -907,7 +913,7 @@ var JobList = /*#__PURE__*/function (_Component) {
907
913
  _createClass__default['default'](JobList, [{
908
914
  key: "UNSAFE_componentWillMount",
909
915
  value: function UNSAFE_componentWillMount() {
910
- Session$4.checkLoggedIn(this);
916
+ Session$5.checkLoggedIn(this);
911
917
  }
912
918
  }, {
913
919
  key: "componentDidMount",
@@ -924,7 +930,7 @@ var JobList = /*#__PURE__*/function (_Component) {
924
930
  }
925
931
 
926
932
  if (this.state.filterOpen === 'type') {
927
- return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
933
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.Popup, {
928
934
  title: "Select Type",
929
935
  maxWidth: 600,
930
936
  minWidth: 400,
@@ -935,7 +941,7 @@ var JobList = /*#__PURE__*/function (_Component) {
935
941
  })), function (t) {
936
942
  return t.toLowerCase();
937
943
  }).map(function (type) {
938
- return /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
944
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
939
945
  onClick: function onClick() {
940
946
  _this2.selectTypeFilter(type);
941
947
  },
@@ -946,7 +952,7 @@ var JobList = /*#__PURE__*/function (_Component) {
946
952
  }
947
953
 
948
954
  if (this.state.filterOpen === 'status') {
949
- return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
955
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.Popup, {
950
956
  title: "Select Status",
951
957
  maxWidth: 600,
952
958
  minWidth: 400,
@@ -954,7 +960,7 @@ var JobList = /*#__PURE__*/function (_Component) {
954
960
  onClose: this.closeFilter
955
961
  }, ['incomplete'].concat(_toConsumableArray__default['default'](Object.keys(StatusTypes))).map(function (sKey) {
956
962
  var text = sKey === 'incomplete' ? 'All Incomplete' : StatusTypes[sKey].text;
957
- return /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
963
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
958
964
  onClick: function onClick() {
959
965
  _this2.selectStatusFilter(sKey);
960
966
  },
@@ -965,7 +971,7 @@ var JobList = /*#__PURE__*/function (_Component) {
965
971
  }
966
972
 
967
973
  if (this.state.filterOpen === 'time') {
968
- return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
974
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.Popup, {
969
975
  title: "Select Time",
970
976
  maxWidth: 600,
971
977
  minWidth: 400,
@@ -981,7 +987,7 @@ var JobList = /*#__PURE__*/function (_Component) {
981
987
  style: {
982
988
  minHeight: 150
983
989
  }
984
- }, /*#__PURE__*/React__default['default'].createElement(Components$4.AnalyticsFilter, {
990
+ }, /*#__PURE__*/React__default['default'].createElement(Components$5.AnalyticsFilter, {
985
991
  defaultFilter: this.state.selectedTimeFilter,
986
992
  filterChanged: this.timeFilterChanged,
987
993
  filterDateRangeChanged: this.timeFilterDateRangeChanged
@@ -1033,7 +1039,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1033
1039
  cursor: 'pointer'
1034
1040
  },
1035
1041
  name: "pencil"
1036
- })), Session$4.validateAccess(_this3.props.auth.site, 'maintenanceTracking', _this3.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1042
+ })), Session$5.validateAccess(_this3.props.auth.site, 'maintenanceTracking', _this3.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1037
1043
  onClick: function onClick() {
1038
1044
  return _this3.onRemoveRequest(ev);
1039
1045
  }
@@ -1174,21 +1180,21 @@ var JobList = /*#__PURE__*/function (_Component) {
1174
1180
  value: function renderFilters() {
1175
1181
  var _this5 = this;
1176
1182
 
1177
- var typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1183
+ var typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1178
1184
  className: "marginRight-10",
1179
1185
  onClick: function onClick() {
1180
1186
  _this5.openFilter('type');
1181
1187
  },
1182
1188
  text: "Type"
1183
1189
  });
1184
- var statusFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1190
+ var statusFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1185
1191
  className: "marginRight-10",
1186
1192
  onClick: function onClick() {
1187
1193
  _this5.openFilter('status');
1188
1194
  },
1189
1195
  text: "Status"
1190
1196
  });
1191
- var timeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1197
+ var timeFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1192
1198
  className: "marginRight-10",
1193
1199
  onClick: function onClick() {
1194
1200
  _this5.openFilter('time');
@@ -1197,7 +1203,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1197
1203
  });
1198
1204
 
1199
1205
  if (this.state.selectedTypeFilter) {
1200
- typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1206
+ typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1201
1207
  className: "marginRight-10",
1202
1208
  onClick: function onClick() {
1203
1209
  _this5.openFilter('type');
@@ -1213,7 +1219,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1213
1219
  }
1214
1220
 
1215
1221
  if (this.state.selectedStatusFilter) {
1216
- statusFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1222
+ statusFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1217
1223
  className: "marginRight-10",
1218
1224
  onClick: function onClick() {
1219
1225
  _this5.openFilter('status');
@@ -1229,7 +1235,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1229
1235
  }
1230
1236
 
1231
1237
  if (this.state.selectedTimeFilterText) {
1232
- timeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
1238
+ timeFilter = /*#__PURE__*/React__default['default'].createElement(Components$5.Tag, {
1233
1239
  className: "marginRight-10",
1234
1240
  onClick: function onClick() {
1235
1241
  _this5.openFilter('time');
@@ -1248,16 +1254,16 @@ var JobList = /*#__PURE__*/function (_Component) {
1248
1254
  className: "marginTop-20 flex flex-between flex-center"
1249
1255
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1250
1256
  className: "flex flex-center"
1251
- }, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
1257
+ }, /*#__PURE__*/React__default['default'].createElement(Components$5.Text, {
1252
1258
  type: "h5",
1253
1259
  className: "marginRight-20"
1254
- }, "Filter by"), typeFilter, statusFilter, timeFilter), /*#__PURE__*/React__default['default'].createElement(Components$4.Button, {
1260
+ }, "Filter by"), typeFilter, statusFilter, timeFilter), /*#__PURE__*/React__default['default'].createElement(Components$5.Button, {
1255
1261
  inline: true,
1256
1262
  buttonType: "primaryAction",
1257
1263
  leftIcon: "file-code-o",
1258
1264
  onClick: this.onOpenExportCsv,
1259
1265
  isActive: !___default['default'].isEmpty(this.getSource())
1260
- }, "Export CSV")), /*#__PURE__*/React__default['default'].createElement(Components$4.GenericInput, {
1266
+ }, "Export CSV")), /*#__PURE__*/React__default['default'].createElement(Components$5.GenericInput, {
1261
1267
  id: "search",
1262
1268
  type: "text",
1263
1269
  placeholder: "Search by Job ID, Location or Title",
@@ -1278,7 +1284,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1278
1284
  return null;
1279
1285
  }
1280
1286
 
1281
- return /*#__PURE__*/React__default['default'].createElement(Components$4.ExportCsvPopup, {
1287
+ return /*#__PURE__*/React__default['default'].createElement(Components$5.ExportCsvPopup, {
1282
1288
  onClose: this.onCloseExportCsv,
1283
1289
  columns: this.exportColumns,
1284
1290
  source: this.getExportSource(),
@@ -1301,7 +1307,7 @@ var JobList = /*#__PURE__*/function (_Component) {
1301
1307
  return JobList;
1302
1308
  }(React.Component);
1303
1309
 
1304
- var mapStateToProps$4 = function mapStateToProps(state) {
1310
+ var mapStateToProps$5 = function mapStateToProps(state) {
1305
1311
  var jobs = state.maintenance.jobs;
1306
1312
  var auth = state.auth;
1307
1313
  return {
@@ -1310,7 +1316,7 @@ var mapStateToProps$4 = function mapStateToProps(state) {
1310
1316
  };
1311
1317
  };
1312
1318
 
1313
- var JobList$1 = reactRedux.connect(mapStateToProps$4, {
1319
+ var JobList$1 = reactRedux.connect(mapStateToProps$5, {
1314
1320
  jobsLoaded: jobsLoaded,
1315
1321
  removeJob: removeJob
1316
1322
  })(reactRouter.withRouter(JobList));
@@ -1318,8 +1324,8 @@ var JobList$1 = reactRedux.connect(mapStateToProps$4, {
1318
1324
  function _createSuper$9(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$9(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
1319
1325
 
1320
1326
  function _isNativeReflectConstruct$9() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1321
- var Session$3 = PlussCore__namespace.Session,
1322
- Components$3 = PlussCore__namespace.Components,
1327
+ var Session$4 = PlussCore__namespace.Session,
1328
+ Components$4 = PlussCore__namespace.Components,
1323
1329
  Helper$2 = PlussCore__namespace.Helper;
1324
1330
 
1325
1331
  var JobTypes = /*#__PURE__*/function (_Component) {
@@ -1583,7 +1589,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1583
1589
  key: "componentWillMount",
1584
1590
  value: function componentWillMount() {
1585
1591
  this.updateProps(this.props);
1586
- Session$3.checkLoggedIn(this, this.props.auth);
1592
+ Session$4.checkLoggedIn(this, this.props.auth);
1587
1593
  }
1588
1594
  }, {
1589
1595
  key: "componentDidMount",
@@ -1632,7 +1638,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1632
1638
  display: 'flex',
1633
1639
  alignItems: 'center'
1634
1640
  }
1635
- }, Session$3.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1641
+ }, Session$4.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1636
1642
  onClick: function onClick() {
1637
1643
  return _this2.onShowJobType(ev);
1638
1644
  }
@@ -1644,7 +1650,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1644
1650
  cursor: 'pointer'
1645
1651
  },
1646
1652
  name: "pencil"
1647
- })), Session$3.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1653
+ })), Session$4.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
1648
1654
  onClick: function onClick() {
1649
1655
  return _this2.onRemoveJobType(ev);
1650
1656
  }
@@ -1773,7 +1779,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1773
1779
  }
1774
1780
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1775
1781
  className: "marginBottom-32"
1776
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.AddButton, {
1782
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.AddButton, {
1777
1783
  onClick: function onClick() {
1778
1784
  return _this4.onShowJobType();
1779
1785
  },
@@ -1794,7 +1800,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1794
1800
  jobTypeEmail = _this$state4.jobTypeEmail,
1795
1801
  jobTypeDescription = _this$state4.jobTypeDescription;
1796
1802
  if (!showJobType) return null;
1797
- return /*#__PURE__*/React__default['default'].createElement(Components$3.Popup, {
1803
+ return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
1798
1804
  maxWidth: 800,
1799
1805
  hasPadding: true,
1800
1806
  buttons: [{
@@ -1812,7 +1818,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1812
1818
  }],
1813
1819
  onClose: this.onHideJobType,
1814
1820
  title: jobTypeId ? 'Edit Request Type' : 'Create New Request Type'
1815
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
1821
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.GenericInput, {
1816
1822
  id: "jobTypeName",
1817
1823
  type: "text",
1818
1824
  label: "Request type title",
@@ -1827,7 +1833,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1827
1833
  return showWarnings && ___default['default'].isEmpty(jobTypeName);
1828
1834
  },
1829
1835
  alwaysShowLabel: true
1830
- }), /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
1836
+ }), /*#__PURE__*/React__default['default'].createElement(Components$4.GenericInput, {
1831
1837
  id: "jobTypeEmail",
1832
1838
  type: "text",
1833
1839
  label: "Email",
@@ -1841,7 +1847,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1841
1847
  return showWarnings && !_this5.validateEmail();
1842
1848
  },
1843
1849
  alwaysShowLabel: true
1844
- }), /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
1850
+ }), /*#__PURE__*/React__default['default'].createElement(Components$4.GenericInput, {
1845
1851
  id: "jobTypeDescription",
1846
1852
  type: "text",
1847
1853
  label: "Description",
@@ -1875,7 +1881,7 @@ var JobTypes = /*#__PURE__*/function (_Component) {
1875
1881
  return JobTypes;
1876
1882
  }(React.Component);
1877
1883
 
1878
- var mapStateToProps$3 = function mapStateToProps(state) {
1884
+ var mapStateToProps$4 = function mapStateToProps(state) {
1879
1885
  var jobtypes = state.maintenance.jobtypes;
1880
1886
  var auth = state.auth;
1881
1887
  return {
@@ -1884,7 +1890,7 @@ var mapStateToProps$3 = function mapStateToProps(state) {
1884
1890
  };
1885
1891
  };
1886
1892
 
1887
- var JobTypes$1 = reactRedux.connect(mapStateToProps$3, {
1893
+ var JobTypes$1 = reactRedux.connect(mapStateToProps$4, {
1888
1894
  jobTypesLoaded: jobTypesLoaded,
1889
1895
  jobTypesUpdate: jobTypesUpdate
1890
1896
  })(reactRouter.withRouter(JobTypes));
@@ -1892,8 +1898,8 @@ var JobTypes$1 = reactRedux.connect(mapStateToProps$3, {
1892
1898
  function _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
1893
1899
 
1894
1900
  function _isNativeReflectConstruct$8() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1895
- var Components$2 = PlussCore__namespace.Components,
1896
- Session$2 = PlussCore__namespace.Session;
1901
+ var Components$3 = PlussCore__namespace.Components,
1902
+ Session$3 = PlussCore__namespace.Session;
1897
1903
 
1898
1904
  var RequestsHub = /*#__PURE__*/function (_Component) {
1899
1905
  _inherits__default['default'](RequestsHub, _Component);
@@ -1984,14 +1990,14 @@ var RequestsHub = /*#__PURE__*/function (_Component) {
1984
1990
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onAddNew", function () {
1985
1991
  var auth = _this.props.auth;
1986
1992
 
1987
- if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) {
1993
+ if (Session$3.validateAccess(auth.site, 'maintenanceTracking', auth)) {
1988
1994
  _this.props.history.push("/requestsHub/job");
1989
1995
  }
1990
1996
  });
1991
1997
 
1992
1998
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "canAddNew", function (isClass) {
1993
1999
  var auth = _this.props.auth;
1994
- if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) return isClass ? '' : true;
2000
+ if (Session$3.validateAccess(auth.site, 'maintenanceTracking', auth)) return isClass ? '' : true;
1995
2001
  return isClass ? ' hub-sideContent-topButton--hide' : false;
1996
2002
  });
1997
2003
 
@@ -2074,7 +2080,7 @@ var RequestsHub = /*#__PURE__*/function (_Component) {
2074
2080
  }
2075
2081
  });
2076
2082
 
2077
- if (Session$2.validateAccess(this.props.auth.site, 'maintenanceTypes', this.props.auth)) {
2083
+ if (Session$3.validateAccess(this.props.auth.site, 'maintenanceTypes', this.props.auth)) {
2078
2084
  sectionItems.push({
2079
2085
  type: 'navItem',
2080
2086
  text: 'Request Types',
@@ -2089,7 +2095,7 @@ var RequestsHub = /*#__PURE__*/function (_Component) {
2089
2095
  });
2090
2096
  }
2091
2097
 
2092
- return /*#__PURE__*/React__default['default'].createElement(Components$2.HubSidebar, {
2098
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.HubSidebar, {
2093
2099
  sections: [{
2094
2100
  title: 'Requests',
2095
2101
  items: sectionItems
@@ -2114,7 +2120,7 @@ var RequestsHub = /*#__PURE__*/function (_Component) {
2114
2120
  className: "hub-wrapperContainer"
2115
2121
  }, this.renderLeftBar(), /*#__PURE__*/React__default['default'].createElement("div", {
2116
2122
  className: "hub-headerContentWrapper"
2117
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.Header, null), /*#__PURE__*/React__default['default'].createElement("div", {
2123
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.Header, null), /*#__PURE__*/React__default['default'].createElement("div", {
2118
2124
  className: "hub-contentWrapper"
2119
2125
  }, this.renderRight())));
2120
2126
  }
@@ -2147,7 +2153,7 @@ var styles$4 = {
2147
2153
  }
2148
2154
  };
2149
2155
 
2150
- var mapStateToProps$2 = function mapStateToProps(state) {
2156
+ var mapStateToProps$3 = function mapStateToProps(state) {
2151
2157
  var jobs = state.maintenance.jobs;
2152
2158
  var auth = state.auth;
2153
2159
  return {
@@ -2156,7 +2162,7 @@ var mapStateToProps$2 = function mapStateToProps(state) {
2156
2162
  };
2157
2163
  };
2158
2164
 
2159
- var RequestsHub$1 = reactRedux.connect(mapStateToProps$2, {
2165
+ var RequestsHub$1 = reactRedux.connect(mapStateToProps$3, {
2160
2166
  jobsLoaded: jobsLoaded
2161
2167
  })(reactRouter.withRouter(RequestsHub));
2162
2168
 
@@ -2169,9 +2175,9 @@ function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeRefl
2169
2175
  function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2170
2176
  var Apis = PlussCore__namespace.Apis,
2171
2177
  Helper$1 = PlussCore__namespace.Helper,
2172
- Session$1 = PlussCore__namespace.Session,
2178
+ Session$2 = PlussCore__namespace.Session,
2173
2179
  Colours = PlussCore__namespace.Colours,
2174
- Components$1 = PlussCore__namespace.Components;
2180
+ Components$2 = PlussCore__namespace.Components;
2175
2181
 
2176
2182
  var Job = /*#__PURE__*/function (_Component) {
2177
2183
  _inherits__default['default'](Job, _Component);
@@ -2454,7 +2460,7 @@ var Job = /*#__PURE__*/function (_Component) {
2454
2460
  var job = _this.state.job;
2455
2461
  var auth = _this.props.auth; // Must have maintenance permission and not the requester
2456
2462
 
2457
- if (!Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) return;
2463
+ if (!Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) return;
2458
2464
  if (auth.user.Id === job.userID) return;
2459
2465
 
2460
2466
  _this.setState({
@@ -2626,7 +2632,7 @@ var Job = /*#__PURE__*/function (_Component) {
2626
2632
  _createClass__default['default'](Job, [{
2627
2633
  key: "UNSAFE_componentWillReceiveProps",
2628
2634
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
2629
- Session$1.checkLoggedIn(this, this.props.auth);
2635
+ Session$2.checkLoggedIn(this, this.props.auth);
2630
2636
  }
2631
2637
  }, {
2632
2638
  key: "componentDidMount",
@@ -2642,7 +2648,7 @@ var Job = /*#__PURE__*/function (_Component) {
2642
2648
  if (!this.state.job.status) return null;
2643
2649
  var auth = this.props.auth;
2644
2650
 
2645
- if (Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) {
2651
+ if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) {
2646
2652
  return /*#__PURE__*/React__default['default'].createElement("div", {
2647
2653
  className: "statusLabel pointer",
2648
2654
  onClick: this.onToggleStatusChanger,
@@ -2667,7 +2673,7 @@ var Job = /*#__PURE__*/function (_Component) {
2667
2673
  key: "renderNotesButton",
2668
2674
  value: function renderNotesButton() {
2669
2675
  var auth = this.props.auth;
2670
- if (!Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) return null;
2676
+ if (!Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) return null;
2671
2677
  return /*#__PURE__*/React__default['default'].createElement("div", {
2672
2678
  className: "statusLabel pointer",
2673
2679
  onClick: this.onOpenAddNote,
@@ -2712,7 +2718,7 @@ var Job = /*#__PURE__*/function (_Component) {
2712
2718
  className: "comment_text"
2713
2719
  }, Helper$1.toParagraphed(c.Comment)), /*#__PURE__*/React__default['default'].createElement("div", {
2714
2720
  className: "comment_bottom"
2715
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.ProfilePic, {
2721
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.ProfilePic, {
2716
2722
  className: "comment_profilePic",
2717
2723
  size: 25,
2718
2724
  image: c.User.profilePic
@@ -2732,7 +2738,7 @@ var Job = /*#__PURE__*/function (_Component) {
2732
2738
  className: "padding-60 paddingLeft-20"
2733
2739
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2734
2740
  className: "newTopBar paddingLeft-40"
2735
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2741
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2736
2742
  type: "formTitleSmall",
2737
2743
  className: "marginBottom-16"
2738
2744
  }, "Comments"), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -2768,7 +2774,7 @@ var Job = /*#__PURE__*/function (_Component) {
2768
2774
  }
2769
2775
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2770
2776
  className: "padding-60 paddingVertical-40 bottomDivideBorder relative"
2771
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2777
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2772
2778
  type: "formTitleLarge",
2773
2779
  className: "marginBottom-24"
2774
2780
  }, this.state.job.title || 'Request'), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -2797,7 +2803,7 @@ var Job = /*#__PURE__*/function (_Component) {
2797
2803
  className: 'fontRegular fontSize-16 text-dark marginTop-5'
2798
2804
  }, this.state.job.description))), /*#__PURE__*/React__default['default'].createElement("div", {
2799
2805
  className: "padding-60 paddingVertical-40 bottomDivideBorder"
2800
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2806
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2801
2807
  type: "formTitleSmall",
2802
2808
  className: "marginBottom-16"
2803
2809
  }, "Contact Details"), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -2826,7 +2832,7 @@ var Job = /*#__PURE__*/function (_Component) {
2826
2832
  className: 'fontRegular fontSize-16 text-dark marginTop-5'
2827
2833
  }, this.state.job.homeText))), (this.state.job.image || this.state.job.images) && /*#__PURE__*/React__default['default'].createElement("div", {
2828
2834
  className: "padding-60 paddingVertical-40 bottomDivideBorder"
2829
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2835
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2830
2836
  type: "formTitleSmall",
2831
2837
  className: "marginBottom-16"
2832
2838
  }, "Image"), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -2890,7 +2896,7 @@ var Job = /*#__PURE__*/function (_Component) {
2890
2896
  className: "maintenanceNote"
2891
2897
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2892
2898
  className: "maintenanceNote_top"
2893
- }, this.props.auth && this.props.auth.user && this.props.auth.user.Id === note.User.id && /*#__PURE__*/React__default['default'].createElement(Components$1.SVGIcon, {
2899
+ }, this.props.auth && this.props.auth.user && this.props.auth.user.Id === note.User.id && /*#__PURE__*/React__default['default'].createElement(Components$2.SVGIcon, {
2894
2900
  colour: Colours.COLOUR_DUSK_LIGHT,
2895
2901
  icon: "more15",
2896
2902
  className: "maintenanceNote_moreIcon",
@@ -2899,7 +2905,7 @@ var Job = /*#__PURE__*/function (_Component) {
2899
2905
  }
2900
2906
  }), /*#__PURE__*/React__default['default'].createElement("p", {
2901
2907
  className: "maintenanceNote_name"
2902
- }, note.User.displayName), this.state.noteMenuOpen === index && /*#__PURE__*/React__default['default'].createElement(Components$1.MoreMenu, {
2908
+ }, note.User.displayName), this.state.noteMenuOpen === index && /*#__PURE__*/React__default['default'].createElement(Components$2.MoreMenu, {
2903
2909
  options: [{
2904
2910
  key: 'edit',
2905
2911
  text: 'Edit',
@@ -2942,7 +2948,7 @@ var Job = /*#__PURE__*/function (_Component) {
2942
2948
  className: "padding-32 paddingVertical-40 bottomDivideBorder relative"
2943
2949
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2944
2950
  className: "newTopBar clearfix flex flex-reverse"
2945
- }, this.renderNotesButton(), this.renderStatusLabel(), /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2951
+ }, this.renderNotesButton(), this.renderStatusLabel(), /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2946
2952
  type: "formTitleSmall",
2947
2953
  className: "flex-1"
2948
2954
  }, "Status History")), this.renderHistoryEntry(null, -1), ___default['default'].map(source, function (e, i) {
@@ -2958,7 +2964,7 @@ var Job = /*#__PURE__*/function (_Component) {
2958
2964
  }, {
2959
2965
  key: "renderButtons",
2960
2966
  value: function renderButtons() {
2961
- return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
2967
+ return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
2962
2968
  inline: true,
2963
2969
  buttonType: "tertiary",
2964
2970
  onClick: function onClick() {
@@ -2968,9 +2974,9 @@ var Job = /*#__PURE__*/function (_Component) {
2968
2974
  style: {
2969
2975
  marginRight: 16
2970
2976
  }
2971
- }, "Back"), Session$1.validateAccess(this.props.auth.site, 'maintenanceTracking', this.props.auth) && !___default['default'].isEmpty(this.state.job) && /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
2977
+ }, "Back"), Session$2.validateAccess(this.props.auth.site, 'maintenanceTracking', this.props.auth) && !___default['default'].isEmpty(this.state.job) && /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
2972
2978
  to: "/requestsHub/job/".concat(this.state.jobId)
2973
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
2979
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
2974
2980
  inline: true,
2975
2981
  style: {
2976
2982
  marginRight: 25
@@ -2984,7 +2990,7 @@ var Job = /*#__PURE__*/function (_Component) {
2984
2990
  key: "renderAttachment",
2985
2991
  value: function renderAttachment(attachment, index, onRemove) {
2986
2992
  if (!attachment) return null;
2987
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Attachment, {
2993
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Attachment, {
2988
2994
  key: index,
2989
2995
  uploading: attachment.Uploading,
2990
2996
  source: attachment.Source,
@@ -3002,7 +3008,7 @@ var Job = /*#__PURE__*/function (_Component) {
3002
3008
  if (!this.state.addNoteOpen) return null;
3003
3009
 
3004
3010
  if (this.state.submittingNote) {
3005
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Popup, {
3011
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Popup, {
3006
3012
  title: "Saving Note",
3007
3013
  maxWidth: 600,
3008
3014
  hasPadding: true
@@ -3014,7 +3020,7 @@ var Job = /*#__PURE__*/function (_Component) {
3014
3020
  })));
3015
3021
  }
3016
3022
 
3017
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Popup, {
3023
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Popup, {
3018
3024
  title: "".concat(this.state.editingNote ? 'Edit' : 'Add', " Note"),
3019
3025
  onClose: this.onCloseAddNote,
3020
3026
  maxWidth: 600,
@@ -3030,7 +3036,7 @@ var Job = /*#__PURE__*/function (_Component) {
3030
3036
  isActive: true,
3031
3037
  text: 'Cancel'
3032
3038
  }]
3033
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3039
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
3034
3040
  id: "noteInput",
3035
3041
  type: "textarea",
3036
3042
  componentClass: "textarea",
@@ -3042,7 +3048,7 @@ var Job = /*#__PURE__*/function (_Component) {
3042
3048
  inputStyle: {
3043
3049
  width: 400
3044
3050
  }
3045
- }), /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
3051
+ }), /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
3046
3052
  type: "h5"
3047
3053
  }, "Attachments"), this.state.noteAttachments.map(function (a, i) {
3048
3054
  return _this6.renderAttachment(a, i, _this6.onRemoveAttachment);
@@ -3072,25 +3078,25 @@ var Job = /*#__PURE__*/function (_Component) {
3072
3078
  }, {
3073
3079
  key: "render",
3074
3080
  value: function render() {
3075
- return /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPage, null, this.renderAddNotePopup(), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageContents, null, /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageSection, {
3081
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPage, null, this.renderAddNotePopup(), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageContents, null, /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageSection, {
3076
3082
  className: "pageSectionWrapper--newPopup"
3077
- }, this.renderInner()), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageSection, {
3083
+ }, this.renderInner()), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageSection, {
3078
3084
  className: "pageSectionWrapper--newPopupSide pageSectionWrapper--newPopupSide-fixedWidth"
3079
- }, this.renderOverview())), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageBottomButtons, null, this.renderButtons()));
3085
+ }, this.renderOverview())), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageBottomButtons, null, this.renderButtons()));
3080
3086
  }
3081
3087
  }]);
3082
3088
 
3083
3089
  return Job;
3084
3090
  }(React.Component);
3085
3091
 
3086
- var mapStateToProps$1 = function mapStateToProps(state) {
3092
+ var mapStateToProps$2 = function mapStateToProps(state) {
3087
3093
  var auth = state.auth;
3088
3094
  return {
3089
3095
  auth: auth
3090
3096
  };
3091
3097
  };
3092
3098
 
3093
- var Job$1 = reactRedux.connect(mapStateToProps$1, {
3099
+ var Job$1 = reactRedux.connect(mapStateToProps$2, {
3094
3100
  jobsLoaded: jobsLoaded
3095
3101
  })(reactRouter.withRouter(Job));
3096
3102
 
@@ -3098,9 +3104,9 @@ function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeRefl
3098
3104
 
3099
3105
  function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
3100
3106
  var Actions = PlussCore__namespace.Actions,
3101
- Components = PlussCore__namespace.Components,
3107
+ Components$1 = PlussCore__namespace.Components,
3102
3108
  Helper = PlussCore__namespace.Helper,
3103
- Session = PlussCore__namespace.Session;
3109
+ Session$1 = PlussCore__namespace.Session;
3104
3110
 
3105
3111
  var AddJob = /*#__PURE__*/function (_Component) {
3106
3112
  _inherits__default['default'](AddJob, _Component);
@@ -3301,7 +3307,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3301
3307
  _createClass__default['default'](AddJob, [{
3302
3308
  key: "UNSAFE_componentWillMount",
3303
3309
  value: function UNSAFE_componentWillMount() {
3304
- Session.checkLoggedIn(this, this.props.auth);
3310
+ Session$1.checkLoggedIn(this, this.props.auth);
3305
3311
  }
3306
3312
  }, {
3307
3313
  key: "componentDidMount",
@@ -3332,7 +3338,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3332
3338
  key: "renderSuccess",
3333
3339
  value: function renderSuccess() {
3334
3340
  if (!this.state.success) return null;
3335
- return /*#__PURE__*/React__default['default'].createElement(Components.SuccessPopup, {
3341
+ return /*#__PURE__*/React__default['default'].createElement(Components$1.SuccessPopup, {
3336
3342
  text: "Maintenance request has been ".concat(this.state.id != null ? 'edited' : 'added'),
3337
3343
  buttons: [{
3338
3344
  type: 'outlined',
@@ -3358,12 +3364,12 @@ var AddJob = /*#__PURE__*/function (_Component) {
3358
3364
  var _this3 = this;
3359
3365
 
3360
3366
  if (this.state.updating) {
3361
- return /*#__PURE__*/React__default['default'].createElement(Components.Button, {
3367
+ return /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
3362
3368
  buttonType: "secondary"
3363
3369
  }, "Saving...");
3364
3370
  }
3365
3371
 
3366
- return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components.Button, {
3372
+ return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
3367
3373
  inline: true,
3368
3374
  buttonType: "tertiary",
3369
3375
  onClick: function onClick() {
@@ -3373,7 +3379,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3373
3379
  style: {
3374
3380
  marginRight: 16
3375
3381
  }
3376
- }, "Cancel"), /*#__PURE__*/React__default['default'].createElement(Components.Button, {
3382
+ }, "Cancel"), /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
3377
3383
  inline: true,
3378
3384
  buttonType: "primary",
3379
3385
  onClick: this.onSave,
@@ -3391,10 +3397,10 @@ var AddJob = /*#__PURE__*/function (_Component) {
3391
3397
  }
3392
3398
  }, /*#__PURE__*/React__default['default'].createElement("div", {
3393
3399
  className: "padding-60 paddingVertical-40 bottomDivideBorder"
3394
- }, /*#__PURE__*/React__default['default'].createElement(Components.Text, {
3400
+ }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
3395
3401
  type: "formTitleLarge",
3396
3402
  className: "marginBottom-24"
3397
- }, this.state.infoId == null ? 'New' : 'Edit', " Request"), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3403
+ }, this.state.infoId == null ? 'New' : 'Edit', " Request"), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3398
3404
  id: "userName",
3399
3405
  type: "text",
3400
3406
  label: "Name",
@@ -3411,7 +3417,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3411
3417
  showError: function showError() {
3412
3418
  return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.userName);
3413
3419
  }
3414
- }), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3420
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3415
3421
  id: "room",
3416
3422
  type: "text",
3417
3423
  label: "Location",
@@ -3428,7 +3434,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3428
3434
  showError: function showError() {
3429
3435
  return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.room);
3430
3436
  }
3431
- }), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3437
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3432
3438
  id: "phone",
3433
3439
  type: "text",
3434
3440
  label: "Contact number",
@@ -3443,7 +3449,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3443
3449
  style: {
3444
3450
  marginBottom: 15
3445
3451
  }
3446
- }, /*#__PURE__*/React__default['default'].createElement(Components.Text, {
3452
+ }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
3447
3453
  type: "formLabel"
3448
3454
  }, "Job Type"), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.DropdownButton, {
3449
3455
  style: {
@@ -3453,7 +3459,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3453
3459
  title: this.state.type,
3454
3460
  id: "typeSelect",
3455
3461
  onSelect: this.onSelectType
3456
- }, this.renderTypeOptions())), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3462
+ }, this.renderTypeOptions())), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3457
3463
  id: "title",
3458
3464
  label: "Title for the work required",
3459
3465
  type: "textarea",
@@ -3473,7 +3479,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3473
3479
  return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.title);
3474
3480
  },
3475
3481
  alwaysShowLabel: true
3476
- }), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3482
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3477
3483
  id: "description",
3478
3484
  label: "Description of work required",
3479
3485
  type: "textarea",
@@ -3486,7 +3492,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3486
3492
  height: 80
3487
3493
  },
3488
3494
  alwaysShowLabel: true
3489
- }), /*#__PURE__*/React__default['default'].createElement(Components.RadioButton, {
3495
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.RadioButton, {
3490
3496
  label: "Person must be home during work?",
3491
3497
  isActive: this.state.isHome,
3492
3498
  options: [{
@@ -3506,7 +3512,7 @@ var AddJob = /*#__PURE__*/function (_Component) {
3506
3512
  });
3507
3513
  }
3508
3514
  }]
3509
- }), this.state.isHome && /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
3515
+ }), this.state.isHome && /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
3510
3516
  style: {
3511
3517
  marginTop: 16
3512
3518
  },
@@ -3535,30 +3541,218 @@ var AddJob = /*#__PURE__*/function (_Component) {
3535
3541
  key: "render",
3536
3542
  value: function render() {
3537
3543
  var success = this.state.success;
3538
- return /*#__PURE__*/React__default['default'].createElement(Components.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageContents, {
3544
+ return /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageContents, {
3539
3545
  noBottomButtons: success
3540
- }, /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageSection, {
3546
+ }, /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageSection, {
3541
3547
  className: "pageSectionWrapper--newPopup"
3542
- }, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderSuccess(), !success && this.renderMain()))), /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageBottomButtons, null, this.renderSubmit()));
3548
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderSuccess(), !success && this.renderMain()))), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageBottomButtons, null, this.renderSubmit()));
3543
3549
  }
3544
3550
  }]);
3545
3551
 
3546
3552
  return AddJob;
3547
3553
  }(React.Component);
3548
3554
 
3549
- var mapStateToProps = function mapStateToProps(state) {
3555
+ var mapStateToProps$1 = function mapStateToProps(state) {
3550
3556
  var auth = state.auth;
3551
3557
  return {
3552
3558
  auth: auth
3553
3559
  };
3554
3560
  };
3555
3561
 
3556
- var AddJob$1 = reactRedux.connect(mapStateToProps, {
3562
+ var AddJob$1 = reactRedux.connect(mapStateToProps$1, {
3557
3563
  jobsUpdate: jobsUpdate,
3558
3564
  jobsLoaded: jobsLoaded,
3559
3565
  addRecentlyCreated: Actions.addRecentlyCreated
3560
3566
  })(reactRouter.withRouter(AddJob));
3561
3567
 
3568
+ var Analytics$1 = PlussCore__namespace.Analytics,
3569
+ Session = PlussCore__namespace.Session,
3570
+ Components = PlussCore__namespace.Components;
3571
+
3572
+ var getInitialState = function getInitialState() {
3573
+ return {
3574
+ requests: 0,
3575
+ prevRequests: 0,
3576
+ completedRequests: 0,
3577
+ prevCompletedRequests: 0,
3578
+ comments: 0,
3579
+ prevComments: 0,
3580
+ isLoading: true
3581
+ };
3582
+ }; // AnalyticsHub Component
3583
+
3584
+
3585
+ var AnalyticsHub = function AnalyticsHub(_ref) {
3586
+ var startTime = _ref.startTime,
3587
+ endTime = _ref.endTime,
3588
+ auth = _ref.auth,
3589
+ prevText = _ref.prevText,
3590
+ dayCount = _ref.dayCount;
3591
+
3592
+ var _useState = React.useState(getInitialState()),
3593
+ _useState2 = _slicedToArray__default['default'](_useState, 2),
3594
+ analyticsData = _useState2[0],
3595
+ setAnalyticsData = _useState2[1];
3596
+
3597
+ var _useState3 = React.useState(false),
3598
+ _useState4 = _slicedToArray__default['default'](_useState3, 2),
3599
+ isExportOpen = _useState4[0],
3600
+ setIsExportOpen = _useState4[1];
3601
+
3602
+ var hasAccess = Session.validateAccess(auth.site, 'maintenanceTracking', auth);
3603
+
3604
+ if (!hasAccess) {
3605
+ return null;
3606
+ }
3607
+
3608
+ var exportColumns = [{
3609
+ label: 'Select All',
3610
+ key: ''
3611
+ }, {
3612
+ label: 'Start Date',
3613
+ key: 'startDate'
3614
+ }, {
3615
+ label: 'End Date',
3616
+ key: 'endDate'
3617
+ }, {
3618
+ label: 'Requests',
3619
+ key: 'requests'
3620
+ }, {
3621
+ label: 'Completed Requests',
3622
+ key: 'completedRequests'
3623
+ }, {
3624
+ label: 'Comments',
3625
+ key: 'comments'
3626
+ }];
3627
+ React.useEffect(function () {
3628
+ getData();
3629
+ }, [startTime, endTime]);
3630
+
3631
+ var getData = /*#__PURE__*/function () {
3632
+ var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
3633
+ var timeDifference, _yield$Promise$all, _yield$Promise$all2, currentStatsResponse, prevStatsResponse, data;
3634
+
3635
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
3636
+ while (1) {
3637
+ switch (_context.prev = _context.next) {
3638
+ case 0:
3639
+ setAnalyticsData(getInitialState()); // Load analytics data here using startTime and endTime
3640
+
3641
+ timeDifference = endTime - startTime;
3642
+ _context.next = 4;
3643
+ return Promise.all([analyticsActions.getAggregateEntityStats(auth.site, 'maintenancerequest', startTime, endTime, true), analyticsActions.getAggregateEntityStats(auth.site, 'maintenancerequest', startTime - timeDifference, startTime, true)]);
3644
+
3645
+ case 4:
3646
+ _yield$Promise$all = _context.sent;
3647
+ _yield$Promise$all2 = _slicedToArray__default['default'](_yield$Promise$all, 2);
3648
+ currentStatsResponse = _yield$Promise$all2[0];
3649
+ prevStatsResponse = _yield$Promise$all2[1];
3650
+ data = {
3651
+ requests: Analytics$1.countActivities(currentStatsResponse.data, 'Request', 'total'),
3652
+ prevRequests: Analytics$1.countActivities(prevStatsResponse.data, 'Request', 'total'),
3653
+ completedRequests: Analytics$1.countActivities(currentStatsResponse.data, 'RequestCompleted', 'unique'),
3654
+ prevCompletedRequests: Analytics$1.countActivities(prevStatsResponse.data, 'RequestCompleted', 'unique'),
3655
+ comments: Analytics$1.countActivities(currentStatsResponse.data, 'Comment', 'total'),
3656
+ prevComments: Analytics$1.countActivities(prevStatsResponse.data, 'Comment', 'total'),
3657
+ isLoading: false
3658
+ };
3659
+ setAnalyticsData(data);
3660
+
3661
+ case 10:
3662
+ case "end":
3663
+ return _context.stop();
3664
+ }
3665
+ }
3666
+ }, _callee);
3667
+ }));
3668
+
3669
+ return function getData() {
3670
+ return _ref2.apply(this, arguments);
3671
+ };
3672
+ }();
3673
+
3674
+ var isReadyToOpenCSV = function isReadyToOpenCSV() {
3675
+ return !analyticsData.isLoading;
3676
+ };
3677
+
3678
+ var getExportSource = function getExportSource() {
3679
+ return [{
3680
+ startDate: moment__default['default'](startTime + 1).format('D-MM-YYYY'),
3681
+ endDate: moment__default['default'](endTime).format('D-MM-YYYY'),
3682
+ requests: analyticsData.requests,
3683
+ completedRequests: analyticsData.completedRequests,
3684
+ comments: analyticsData.comments
3685
+ }];
3686
+ };
3687
+
3688
+ var csvPopup = function csvPopup() {
3689
+ if (!isExportOpen) {
3690
+ return null;
3691
+ }
3692
+
3693
+ var source = getExportSource();
3694
+ return /*#__PURE__*/React__default['default'].createElement(Components.ExportCsvPopup, {
3695
+ onClose: function onClose() {
3696
+ setIsExportOpen(false);
3697
+ },
3698
+ columns: exportColumns,
3699
+ source: source,
3700
+ filename: "maintenanceanalytics_".concat(source[0].startDate, "_").concat(source[0].endDate, ".csv")
3701
+ });
3702
+ };
3703
+
3704
+ return /*#__PURE__*/React__default['default'].createElement("div", {
3705
+ className: "dashboardSection"
3706
+ }, csvPopup(), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components.Text, {
3707
+ type: "h4",
3708
+ className: "inlineBlock marginRight-40"
3709
+ }, "Maintenance"), /*#__PURE__*/React__default['default'].createElement(Components.Button, {
3710
+ inline: true,
3711
+ buttonType: "primaryAction",
3712
+ onClick: function onClick() {
3713
+ if (!isReadyToOpenCSV()) return;
3714
+ setIsExportOpen(true);
3715
+ },
3716
+ isActive: isReadyToOpenCSV(),
3717
+ leftIcon: "file-code-o"
3718
+ }, "Export CSV")), /*#__PURE__*/React__default['default'].createElement("div", {
3719
+ className: "analyticsSection dashboardSection_content"
3720
+ }, /*#__PURE__*/React__default['default'].createElement(Components.StatBox, {
3721
+ title: "Requests",
3722
+ icon: freeSolidSvgIcons.faWrench,
3723
+ value: analyticsData.requests,
3724
+ previousValue: analyticsData.prevRequests,
3725
+ prevText: prevText,
3726
+ viewGraphLink: "/chart?entity=maintenancerequest&startTime=".concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount),
3727
+ isLoading: analyticsData.isLoading
3728
+ }), /*#__PURE__*/React__default['default'].createElement(Components.StatBox, {
3729
+ title: "Completed Requests",
3730
+ icon: freeSolidSvgIcons.faCircleCheck,
3731
+ value: analyticsData.completedRequests,
3732
+ previousValue: analyticsData.prevCompletedRequests,
3733
+ prevText: prevText,
3734
+ viewGraphLink: "/chart?entity=maintenancerequest&startTime=".concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount),
3735
+ isLoading: analyticsData.isLoading
3736
+ }), /*#__PURE__*/React__default['default'].createElement(Components.StatBox, {
3737
+ title: "Maintenance Comments",
3738
+ icon: freeSolidSvgIcons.faComment,
3739
+ value: analyticsData.comments,
3740
+ previousValue: analyticsData.prevComments,
3741
+ prevText: prevText,
3742
+ viewGraphLink: "/chart?entity=maintenancerequest&startTime=".concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount),
3743
+ isLoading: analyticsData.isLoading
3744
+ })));
3745
+ };
3746
+
3747
+ var mapStateToProps = function mapStateToProps(state) {
3748
+ var auth = state.auth;
3749
+ return {
3750
+ auth: auth
3751
+ };
3752
+ };
3753
+
3754
+ var toExport = reactRedux.connect(mapStateToProps, {})(AnalyticsHub);
3755
+
3562
3756
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3563
3757
 
3564
3758
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -3954,8 +4148,10 @@ var Screens = {
3954
4148
  Job: Job$1,
3955
4149
  AddJob: AddJob$1
3956
4150
  };
4151
+ var Analytics = [toExport];
3957
4152
 
3958
4153
  exports.ActivityText = ActivityText;
4154
+ exports.Analytics = Analytics;
3959
4155
  exports.Config = FeatureConfig;
3960
4156
  exports.PreviewFull = PreviewFull;
3961
4157
  exports.PreviewGrid = PreviewGrid;