@plusscommunities/pluss-maintenance-web 1.0.22 → 1.0.26-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 +1853 -1963
- package/dist/index.esm.js +1853 -1963
- package/dist/index.umd.js +1856 -1966
- package/package.json +8 -6
- package/rollup.config.js +17 -16
- package/src/actions/types.js +0 -109
- package/src/apis/reactionActions.js +3 -1
- package/src/components/JobList.js +2 -21
- package/src/{screens → components}/JobTypes.js +5 -11
- package/src/feature.config.js +1 -1
- package/src/index.js +1 -2
- package/src/screens/Job.js +2 -2
- package/src/screens/RequestsHub.js +50 -41
package/dist/index.cjs.js
CHANGED
|
@@ -13,13 +13,13 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
|
13
13
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
14
14
|
var React = require('react');
|
|
15
15
|
var reactRedux = require('react-redux');
|
|
16
|
+
var reactRouter = require('react-router');
|
|
16
17
|
var _ = require('lodash');
|
|
17
18
|
var moment = require('moment');
|
|
18
19
|
var FontAwesome = require('react-fontawesome');
|
|
19
20
|
var PlussCore = require('@plusscommunities/pluss-core-web');
|
|
20
21
|
var Cookies = require('js-cookie');
|
|
21
22
|
var reactBootstrap = require('react-bootstrap');
|
|
22
|
-
var reactRouter = require('react-router');
|
|
23
23
|
var reactRouterDom = require('react-router-dom');
|
|
24
24
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
25
25
|
var Textarea = require('react-textarea-autosize');
|
|
@@ -67,7 +67,7 @@ var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
|
|
|
67
67
|
// import * as PlussCore from '../../pluss-core/src';
|
|
68
68
|
var FeatureConfig = {
|
|
69
69
|
key: 'maintenance',
|
|
70
|
-
aliases: ['maintenanceTracking', 'maintenanceTypes'],
|
|
70
|
+
aliases: ['maintenanceTracking', 'maintenanceTypes', 'maintenancerequest'],
|
|
71
71
|
singularName: 'Request',
|
|
72
72
|
description: 'Submit maintenance requests and track the progress.',
|
|
73
73
|
emptyText: 'Your Requests will show here',
|
|
@@ -165,95 +165,10 @@ var FeatureConfig = {
|
|
|
165
165
|
}
|
|
166
166
|
};
|
|
167
167
|
|
|
168
|
-
// export const SET_AUTH = 'set_auth';
|
|
169
|
-
// export const LOGOUT = 'LOGOUT';
|
|
170
|
-
// export const CHANGE_SITE = 'CHANGE_SITE';
|
|
171
|
-
// export const UPDATE_PROFILE = 'UPDATE_PROFILE';
|
|
172
|
-
// export const EVENTS_LOADED = 'events_loaded';
|
|
173
|
-
// export const EVENTS_UPDATED = 'EVENTS_UPDATED';
|
|
174
|
-
// export const EVENT_REMOVED = 'event_removed';
|
|
175
|
-
// export const EVENTS_MANAGED_LOADED = 'EVENTS_MANAGED_LOADED';
|
|
176
|
-
// export const AVAILABLE_EVENTS_LOADED = 'AVAILABLE_EVENTS_LOADED';
|
|
177
|
-
// export const EVENT_SUBMISSIONS_LOADED = 'EVENT_SUBMISSIONS_LOADED';
|
|
178
|
-
// export const EVENT_SUBMISSION_REMOVED = 'EVENT_SUBMISSION_REMOVED';
|
|
179
|
-
// export const EVENTS_PURGE = 'events_purge';
|
|
180
|
-
// export const EVENT_DASHBOARD_LOADING = 'EVENT_DASHBOARD_LOADING';
|
|
181
|
-
// export const EVENT_SUBMISSIONS_DASHBOARD_LOADING = 'EVENT_SUBMISSIONS_DASHBOARD_LOADING';
|
|
182
|
-
// export const FEEDBACK_LOADED = 'feedback_loaded';
|
|
183
|
-
// export const FEEDBACK_REMOVED = 'feedback_removed';
|
|
184
|
-
// export const POLLS_LOADED = 'polls_loaded';
|
|
185
|
-
// export const POLL_REMOVED = 'poll_removed';
|
|
186
|
-
// export const POLL_UPDATED = 'poll_updated';
|
|
187
|
-
// export const DISHES_LOADED = 'DISHES_LOADED';
|
|
188
|
-
// export const UPDATE_DISH = 'UPDATE_DISH';
|
|
189
|
-
// export const DISH_REMOVED = 'DISH_REMOVED';
|
|
190
|
-
// export const MENU_REMOVED = 'menu_removed';
|
|
191
|
-
// export const NEWS_LOADED = 'NEWS_LOADED';
|
|
192
|
-
// export const NEWS_UPDATED = 'NEWS_UPDATED';
|
|
193
|
-
// export const NEWS_REMOVED = 'NEWS_REMOVED';
|
|
194
|
-
// export const NEWS_SUBMISSIONS_LOADED = 'NEWS_SUBMISSIONS_LOADED';
|
|
195
|
-
// export const NEWS_SUBMISSION_REMOVED = 'NEWS_SUBMISSION_REMOVED';
|
|
196
|
-
// export const NEWS_PURGE = 'NEWS_PURGE';
|
|
197
|
-
// export const NEWS_DASHBOARD_LOADING = 'NEWS_DASHBOARD_LOADING';
|
|
198
|
-
// export const NEWS_SUBMISSIONS_DASHBOARD_LOADING = 'NEWS_SUBMISSIONS_DASHBOARD_LOADING';
|
|
199
|
-
// export const TICKETS_LOADED = 'TICKETS_LOADED';
|
|
200
|
-
// export const SET_LOCAL = 'SET_LOCAL';
|
|
201
|
-
// export const ADD_RECENTLY_CREATED = 'ADD_RECENTLY_CREATED';
|
|
202
168
|
var JOBS_LOADED = 'JOBS_LOADED';
|
|
203
169
|
var JOBS_REMOVED = 'JOBS_REMOVED';
|
|
204
|
-
var JOBS_TYPES_LOADED = 'JOBS_TYPES_LOADED';
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
var JOBS_LOADING = 'JOBS_LOADING'; // export const KEYS_LOADED = 'KEYS_LOADED';
|
|
208
|
-
// export const KEY_REMOVED = 'KEY_REMOVED';
|
|
209
|
-
// export const KEYS_PURGE = 'KEYS_PURGE';
|
|
210
|
-
// export const USERS_LOADED = 'USERS_LOADED';
|
|
211
|
-
// export const USER_REMOVED = 'USER_REMOVED';
|
|
212
|
-
// export const USERS_PURGE = 'USERS_PURGE';
|
|
213
|
-
// export const USERS_LOADING = 'USERS_LOADING';
|
|
214
|
-
// export const USERS_RESIDENT_COUNT_SET = 'USERS_RESIDENT_COUNT_SET';
|
|
215
|
-
// export const CONTACTS_LOADED = 'CONTACTS_LOADED';
|
|
216
|
-
// export const CONTACT_REMOVED = 'CONTACT_REMOVED';
|
|
217
|
-
// export const CONTACTS_PURGE = 'CONTACTS_PURGE';
|
|
218
|
-
// export const MAPS_LOADED = 'MAPS_LOADED';
|
|
219
|
-
// export const MAP_REMOVED = 'MAP_REMOVED';
|
|
220
|
-
// export const MAPS_PURGE = 'MAPS_PURGE';
|
|
221
|
-
// export const OFFERS_LOADED = 'OFFERS_LOADED';
|
|
222
|
-
// export const OFFER_REMOVED = 'OFFER_REMOVED';
|
|
223
|
-
// export const OFFERS_PURGE = 'OFFERS_PURGE';
|
|
224
|
-
// export const INFOPAGES_LOADED = 'INFOPAGES_LOADED';
|
|
225
|
-
// export const INFOPAGE_REMOVED = 'INFOPAGE_REMOVED';
|
|
226
|
-
// export const INFOPAGES_PURGE = 'INFOPAGES_PURGE';
|
|
227
|
-
// export const WELCOMEPAGES_LOADED = 'WELCOMEPAGES_LOADED';
|
|
228
|
-
// export const WELCOMEPAGE_REMOVED = 'WELCOMEPAGE_REMOVED';
|
|
229
|
-
// export const WELCOMEPAGES_PURGE = 'WELCOMEPAGES_PURGE';
|
|
230
|
-
// export const SERVICE_REMOVED = 'SERVICE_REMOVED';
|
|
231
|
-
// export const SERVICES_LOADED = 'SERVICES_LOADED';
|
|
232
|
-
// export const SERVICES_UPDATED = 'SERVICES_UPDATED';
|
|
233
|
-
// export const SERVICES_DASHBOARD_LOADING = 'SERVICES_DASHBOARD_LOADING';
|
|
234
|
-
// export const ALERT_REMOVED = 'ALERT_REMOVED';
|
|
235
|
-
// export const ALERTS_LOADED = 'ALERTS_LOADED';
|
|
236
|
-
// export const ALERTS_UPDATED = 'ALERTS_UPDATED';
|
|
237
|
-
// export const ALERTS_DASHBOARD_LOADING = 'ALERTS_DASHBOARD_LOADING';
|
|
238
|
-
// export const IMAGE_LIBRARY_DASHBOARD_LOADING = 'IMAGE_LIBRARY_DASHBOARD_LOADING';
|
|
239
|
-
// export const IMAGE_LIBRARY_LOADED = 'IMAGE_LIBRARY_LOADED';
|
|
240
|
-
// export const IMAGE_FOLDER_UPDATED = 'IMAGE_FOLDER_UPDATED';
|
|
241
|
-
// export const IMAGE_FOLDER_REMOVED = 'IMAGE_FOLDER_REMOVED';
|
|
242
|
-
// export const FACILITIES_LOADING = 'FACILITIES_LOADING';
|
|
243
|
-
// export const FACILITIES_LOADED = 'FACILITIES_LOADED';
|
|
244
|
-
// export const FACILITY_REMOVED = 'FACILITY_REMOVED';
|
|
245
|
-
// export const FACILITIES_PURGE = 'FACILITIES_PURGE';
|
|
246
|
-
// export const SET_NAV_DATA = 'SET_NAV_DATA';
|
|
247
|
-
// export const DEVICES_LOADED = 'DEVICES_LOADED';
|
|
248
|
-
// export const DEVICE_REMOVED = 'DEVICE_REMOVED';
|
|
249
|
-
// export const DEVICE_VIEWS_LOADED = 'DEVICE_VIEWS_LOADED';
|
|
250
|
-
// export const DEVICES_PURGE = 'DEVICES_PURGE';
|
|
251
|
-
// export const FORMS_LOADED = 'FORMS_LOADED';
|
|
252
|
-
// export const FORM_REMOVED = 'FORM_REMOVED';
|
|
253
|
-
// export const FORM_UPDATED = 'FORM_UPDATED';
|
|
254
|
-
// export const FORM_SUBMISSIONS_LOADED = 'FORM_SUBMISSIONS_LOADED';
|
|
255
|
-
// export const WHITE_LABEL_LOADED = 'WHITE_LABEL_LOADED';
|
|
256
|
-
// export const WHITE_LABEL_PURGE = 'WHITE_LABEL_PURGE';
|
|
170
|
+
var JOBS_TYPES_LOADED = 'JOBS_TYPES_LOADED';
|
|
171
|
+
var JOBS_LOADING = 'JOBS_LOADING';
|
|
257
172
|
|
|
258
173
|
function ownKeys$4(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; }
|
|
259
174
|
|
|
@@ -406,12 +321,14 @@ var maintenanceActions = {
|
|
|
406
321
|
var Helper$3 = PlussCore__namespace.Helper,
|
|
407
322
|
Session$5 = PlussCore__namespace.Session;
|
|
408
323
|
var reactionActions = {
|
|
409
|
-
addComment: function addComment(entityId, entityType, site, comment, image) {
|
|
324
|
+
addComment: function addComment(entityId, entityType, entityName, site, comment, image, parentId) {
|
|
410
325
|
var data = {
|
|
411
326
|
entityId: entityId,
|
|
412
327
|
entityType: entityType,
|
|
328
|
+
entityName: entityName,
|
|
413
329
|
site: site,
|
|
414
|
-
comment: comment
|
|
330
|
+
comment: comment,
|
|
331
|
+
parentId: parentId
|
|
415
332
|
};
|
|
416
333
|
|
|
417
334
|
if (!___default['default'].isEmpty(image)) {
|
|
@@ -552,8 +469,7 @@ var StatusTypes = {
|
|
|
552
469
|
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); }; }
|
|
553
470
|
|
|
554
471
|
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; } }
|
|
555
|
-
var Session$4 = PlussCore__namespace.Session
|
|
556
|
-
Components$4 = PlussCore__namespace.Components;
|
|
472
|
+
var Session$4 = PlussCore__namespace.Session;
|
|
557
473
|
|
|
558
474
|
var JobList = /*#__PURE__*/function (_Component) {
|
|
559
475
|
_inherits__default['default'](JobList, _Component);
|
|
@@ -661,10 +577,6 @@ var JobList = /*#__PURE__*/function (_Component) {
|
|
|
661
577
|
};
|
|
662
578
|
}());
|
|
663
579
|
|
|
664
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenJobTypes", function () {
|
|
665
|
-
_this.props.history.push('/requestTypes');
|
|
666
|
-
});
|
|
667
|
-
|
|
668
580
|
_this.state = {
|
|
669
581
|
showCompleted: false,
|
|
670
582
|
sortColumn: 'createdUnix',
|
|
@@ -804,27 +716,6 @@ var JobList = /*#__PURE__*/function (_Component) {
|
|
|
804
716
|
}
|
|
805
717
|
}, "Example might be; Fix my light bulb, hand rail is broken, or please send flowers to Mum."));
|
|
806
718
|
}
|
|
807
|
-
}, {
|
|
808
|
-
key: "renderButtons",
|
|
809
|
-
value: function renderButtons() {
|
|
810
|
-
if (!Session$4.validateAccess(this.props.auth.site, 'maintenanceTypes', this.props.auth)) return null;
|
|
811
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
812
|
-
className: "flex-reverse"
|
|
813
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$4.Button, {
|
|
814
|
-
inline: true,
|
|
815
|
-
buttonType: "primaryAction",
|
|
816
|
-
onClick: this.onOpenJobTypes,
|
|
817
|
-
isActive: true
|
|
818
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
819
|
-
className: "flex flex-row flex-center"
|
|
820
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$4.SVGIcon, {
|
|
821
|
-
colour: '#fff',
|
|
822
|
-
icon: "maintenance2",
|
|
823
|
-
height: "17px"
|
|
824
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
825
|
-
className: "marginLeft-10"
|
|
826
|
-
}, "Request Types"))));
|
|
827
|
-
}
|
|
828
719
|
}, {
|
|
829
720
|
key: "renderContent",
|
|
830
721
|
value: function renderContent() {
|
|
@@ -896,7 +787,9 @@ var JobList = /*#__PURE__*/function (_Component) {
|
|
|
896
787
|
style: {
|
|
897
788
|
minWidth: '100%'
|
|
898
789
|
}
|
|
899
|
-
}, this.
|
|
790
|
+
}, this.renderContent(), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
791
|
+
className: "hub_tidioPadding"
|
|
792
|
+
}));
|
|
900
793
|
}
|
|
901
794
|
}]);
|
|
902
795
|
|
|
@@ -920,1308 +813,1234 @@ var JobList$1 = reactRedux.connect(mapStateToProps$4, {
|
|
|
920
813
|
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); }; }
|
|
921
814
|
|
|
922
815
|
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; } }
|
|
923
|
-
var
|
|
924
|
-
|
|
816
|
+
var Session$3 = PlussCore__namespace.Session,
|
|
817
|
+
Components$3 = PlussCore__namespace.Components,
|
|
818
|
+
Helper$2 = PlussCore__namespace.Helper;
|
|
925
819
|
|
|
926
|
-
var
|
|
927
|
-
_inherits__default['default'](
|
|
820
|
+
var JobTypes = /*#__PURE__*/function (_Component) {
|
|
821
|
+
_inherits__default['default'](JobTypes, _Component);
|
|
928
822
|
|
|
929
|
-
var _super = _createSuper$9(
|
|
823
|
+
var _super = _createSuper$9(JobTypes);
|
|
930
824
|
|
|
931
|
-
function
|
|
825
|
+
function JobTypes(props) {
|
|
932
826
|
var _this;
|
|
933
827
|
|
|
934
|
-
_classCallCheck__default['default'](this,
|
|
828
|
+
_classCallCheck__default['default'](this, JobTypes);
|
|
935
829
|
|
|
936
830
|
_this = _super.call(this, props);
|
|
937
831
|
|
|
938
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
939
|
-
var
|
|
832
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getJobTypes", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
833
|
+
var res;
|
|
834
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
835
|
+
while (1) {
|
|
836
|
+
switch (_context.prev = _context.next) {
|
|
837
|
+
case 0:
|
|
838
|
+
_context.prev = 0;
|
|
839
|
+
_context.next = 3;
|
|
840
|
+
return maintenanceActions.getJobTypes(_this.props.auth.site);
|
|
940
841
|
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
842
|
+
case 3:
|
|
843
|
+
res = _context.sent;
|
|
844
|
+
if (res.data != null) _this.props.jobTypesLoaded(res.data);
|
|
845
|
+
_context.next = 10;
|
|
846
|
+
break;
|
|
944
847
|
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
});
|
|
848
|
+
case 7:
|
|
849
|
+
_context.prev = 7;
|
|
850
|
+
_context.t0 = _context["catch"](0);
|
|
851
|
+
console.error('getJobTypes', _context.t0);
|
|
950
852
|
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
if (ev.status && ev.status === 'Completed') return true;
|
|
954
|
-
return false;
|
|
955
|
-
}); // console.log('setData', upcoming, completed);
|
|
853
|
+
case 10:
|
|
854
|
+
_context.prev = 10;
|
|
956
855
|
|
|
856
|
+
_this.setState({
|
|
857
|
+
loading: false
|
|
858
|
+
});
|
|
957
859
|
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
860
|
+
return _context.finish(10);
|
|
861
|
+
|
|
862
|
+
case 13:
|
|
863
|
+
case "end":
|
|
864
|
+
return _context.stop();
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
}, _callee, null, [[0, 7, 10, 13]]);
|
|
868
|
+
})));
|
|
869
|
+
|
|
870
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "sortByCol", function (col) {
|
|
871
|
+
if (_this.state.sortColumn === col) {
|
|
872
|
+
_this.setState({
|
|
873
|
+
sortDesc: !_this.state.sortDesc
|
|
874
|
+
});
|
|
875
|
+
} else {
|
|
876
|
+
_this.setState({
|
|
877
|
+
sortColumn: col,
|
|
878
|
+
sortDesc: false
|
|
879
|
+
});
|
|
880
|
+
}
|
|
963
881
|
});
|
|
964
882
|
|
|
965
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
966
|
-
var
|
|
883
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "validateEmail", function () {
|
|
884
|
+
var jobTypeEmail = _this.state.jobTypeEmail;
|
|
885
|
+
return !___default['default'].isEmpty(jobTypeEmail) && Helper$2.isEmail(jobTypeEmail);
|
|
886
|
+
});
|
|
967
887
|
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
888
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "isJobTypeValid", function () {
|
|
889
|
+
var _this$state = _this.state,
|
|
890
|
+
jobTypeName = _this$state.jobTypeName,
|
|
891
|
+
jobTypeDescription = _this$state.jobTypeDescription;
|
|
892
|
+
if (___default['default'].isEmpty(jobTypeName)) return false;
|
|
893
|
+
if (!_this.validateEmail()) return false;
|
|
894
|
+
if (___default['default'].isEmpty(jobTypeDescription)) return false;
|
|
895
|
+
return true;
|
|
896
|
+
});
|
|
897
|
+
|
|
898
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onRemoveJobType", /*#__PURE__*/function () {
|
|
899
|
+
var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(ev) {
|
|
900
|
+
var index, newJobTypes;
|
|
901
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
|
|
973
902
|
while (1) {
|
|
974
|
-
switch (
|
|
903
|
+
switch (_context2.prev = _context2.next) {
|
|
975
904
|
case 0:
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
905
|
+
if (window.confirm("Are you sure you want to delete ".concat(ev.typeName, "?"))) {
|
|
906
|
+
_context2.next = 2;
|
|
907
|
+
break;
|
|
908
|
+
}
|
|
979
909
|
|
|
980
|
-
|
|
981
|
-
res = _context.sent;
|
|
910
|
+
return _context2.abrupt("return");
|
|
982
911
|
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
912
|
+
case 2:
|
|
913
|
+
_context2.prev = 2;
|
|
914
|
+
_context2.next = 5;
|
|
915
|
+
return maintenanceActions.deleteJobType(_this.props.auth.site, ev.id);
|
|
916
|
+
|
|
917
|
+
case 5:
|
|
918
|
+
index = ___default['default'].findIndex(_this.state.jobList, function (job) {
|
|
919
|
+
return job != null && job.id === ev.id;
|
|
986
920
|
});
|
|
987
921
|
|
|
988
|
-
if (
|
|
989
|
-
_this.
|
|
922
|
+
if (index > -1) {
|
|
923
|
+
newJobTypes = _toConsumableArray__default['default'](_this.state.jobList);
|
|
924
|
+
newJobTypes[index].Deleted = true;
|
|
925
|
+
|
|
926
|
+
_this.props.jobTypesLoaded(newJobTypes);
|
|
990
927
|
}
|
|
991
928
|
|
|
992
|
-
|
|
929
|
+
_context2.next = 13;
|
|
993
930
|
break;
|
|
994
931
|
|
|
995
|
-
case
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
console.error('
|
|
999
|
-
|
|
1000
|
-
_this.setState({
|
|
1001
|
-
loadingAll: false
|
|
1002
|
-
});
|
|
932
|
+
case 9:
|
|
933
|
+
_context2.prev = 9;
|
|
934
|
+
_context2.t0 = _context2["catch"](2);
|
|
935
|
+
console.error('onRemoveJobType', _context2.t0);
|
|
936
|
+
alert('Something went wrong with the request. Please try again.');
|
|
1003
937
|
|
|
1004
|
-
case
|
|
938
|
+
case 13:
|
|
1005
939
|
case "end":
|
|
1006
|
-
return
|
|
940
|
+
return _context2.stop();
|
|
1007
941
|
}
|
|
1008
942
|
}
|
|
1009
|
-
},
|
|
1010
|
-
}))
|
|
1011
|
-
});
|
|
943
|
+
}, _callee2, null, [[2, 9]]);
|
|
944
|
+
}));
|
|
1012
945
|
|
|
1013
|
-
|
|
1014
|
-
|
|
946
|
+
return function (_x) {
|
|
947
|
+
return _ref2.apply(this, arguments);
|
|
948
|
+
};
|
|
949
|
+
}());
|
|
1015
950
|
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
}
|
|
1019
|
-
});
|
|
951
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onShowJobType", function () {
|
|
952
|
+
var job = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1020
953
|
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
954
|
+
_this.setState({
|
|
955
|
+
showJobType: true,
|
|
956
|
+
jobTypeId: job ? job.id : null,
|
|
957
|
+
jobTypeName: job ? job.typeName : '',
|
|
958
|
+
jobTypeEmail: job ? job.email : '',
|
|
959
|
+
jobTypeDescription: job ? job.description : '',
|
|
960
|
+
jobTypeLevel: job ? job.level : 1
|
|
961
|
+
});
|
|
1025
962
|
});
|
|
1026
963
|
|
|
1027
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1028
|
-
|
|
1029
|
-
backgroundColor: '#fff'
|
|
1030
|
-
} : {};
|
|
1031
|
-
});
|
|
964
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHideJobType", function () {
|
|
965
|
+
if (_this.state.submitting) return;
|
|
1032
966
|
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
967
|
+
_this.setState({
|
|
968
|
+
showWarnings: false,
|
|
969
|
+
showJobType: false,
|
|
970
|
+
jobTypeId: null,
|
|
971
|
+
jobTypeName: '',
|
|
972
|
+
jobTypeEmail: '',
|
|
973
|
+
jobTypeDescription: '',
|
|
974
|
+
jobTypeLevel: 1
|
|
975
|
+
});
|
|
1038
976
|
});
|
|
1039
977
|
|
|
1040
|
-
_this
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
loadingAll: false,
|
|
1044
|
-
loadingSubmissions: false,
|
|
1045
|
-
submissionEntries: [],
|
|
1046
|
-
allList: [],
|
|
1047
|
-
completed: [],
|
|
1048
|
-
upcoming: [],
|
|
1049
|
-
now: moment__default['default'].utc(),
|
|
1050
|
-
onlyFuture: true,
|
|
1051
|
-
search: ''
|
|
1052
|
-
};
|
|
1053
|
-
return _this;
|
|
1054
|
-
}
|
|
978
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
|
|
979
|
+
var stateChange = {};
|
|
980
|
+
stateChange[event.target.getAttribute('id')] = event.target.value;
|
|
1055
981
|
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
value: function UNSAFE_componentWillMount() {
|
|
1059
|
-
this.updateProps(this.props);
|
|
1060
|
-
}
|
|
1061
|
-
}, {
|
|
1062
|
-
key: "componentDidMount",
|
|
1063
|
-
value: function componentDidMount() {
|
|
1064
|
-
this.getData();
|
|
1065
|
-
}
|
|
1066
|
-
}, {
|
|
1067
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
1068
|
-
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
1069
|
-
if (!___default['default'].isEqual(this.props.jobs, nextProps.jobs)) this.updateProps(nextProps);
|
|
1070
|
-
}
|
|
1071
|
-
}, {
|
|
1072
|
-
key: "updateProps",
|
|
1073
|
-
value: function updateProps(props) {
|
|
1074
|
-
this.setState({
|
|
1075
|
-
allList: props.jobs
|
|
1076
|
-
}, this.setData);
|
|
1077
|
-
}
|
|
1078
|
-
}, {
|
|
1079
|
-
key: "renderLeftBar",
|
|
1080
|
-
value: function renderLeftBar() {
|
|
1081
|
-
var _this2 = this;
|
|
982
|
+
_this.setState(stateChange);
|
|
983
|
+
});
|
|
1082
984
|
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
className: "fontMedium fontSize-32 text-dark",
|
|
1094
|
-
style: styles$4.sideBarTitleSection
|
|
1095
|
-
}, "Maintenance requests"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1096
|
-
onClick: function onClick() {
|
|
1097
|
-
_this2.setState({
|
|
1098
|
-
selectedSection: 'completed'
|
|
1099
|
-
});
|
|
1100
|
-
},
|
|
1101
|
-
className: "sideBarSection",
|
|
1102
|
-
style: this.getSideBarSectionColour('completed')
|
|
1103
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1104
|
-
className: "fontMedium fontSize-36 text-dark",
|
|
1105
|
-
style: {
|
|
1106
|
-
lineHeight: '50px'
|
|
1107
|
-
}
|
|
1108
|
-
}, this.renderStats(this.state.completed.length, this.state.loadingAll)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1109
|
-
className: "fontRegular fontSize-16 text-light lineHeight-22"
|
|
1110
|
-
}, "Complete")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1111
|
-
onClick: function onClick() {
|
|
1112
|
-
_this2.setState({
|
|
1113
|
-
selectedSection: 'upcoming'
|
|
1114
|
-
});
|
|
1115
|
-
},
|
|
1116
|
-
className: "sideBarSection",
|
|
1117
|
-
style: this.getSideBarSectionColour('upcoming')
|
|
1118
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1119
|
-
className: "fontMedium fontSize-36 text-dark",
|
|
1120
|
-
style: {
|
|
1121
|
-
lineHeight: '50px'
|
|
1122
|
-
}
|
|
1123
|
-
}, this.renderStats(this.state.upcoming.length, this.state.loadingAll)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1124
|
-
className: "fontRegular fontSize-16 text-light lineHeight-22"
|
|
1125
|
-
}, "Incomplete"))));
|
|
1126
|
-
}
|
|
1127
|
-
}, {
|
|
1128
|
-
key: "renderRight",
|
|
1129
|
-
value: function renderRight() {
|
|
1130
|
-
return /*#__PURE__*/React__default['default'].createElement(JobList$1, {
|
|
1131
|
-
source: this.state.selectedSection === 'completed' ? this.state.completed : this.state.upcoming
|
|
1132
|
-
});
|
|
1133
|
-
}
|
|
1134
|
-
}, {
|
|
1135
|
-
key: "render",
|
|
1136
|
-
value: function render() {
|
|
1137
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1138
|
-
className: "hub-wrapperContainer"
|
|
1139
|
-
}, this.renderLeftBar(), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1140
|
-
className: "hub-headerContentWrapper"
|
|
1141
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$3.Header, null, this.canAddNew() && /*#__PURE__*/React__default['default'].createElement(Components$3.AddButton, {
|
|
1142
|
-
onClick: this.onAddNew,
|
|
1143
|
-
text: "NEW REQUEST"
|
|
1144
|
-
})), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1145
|
-
className: "hub-contentWrapper"
|
|
1146
|
-
}, this.renderRight())));
|
|
1147
|
-
}
|
|
1148
|
-
}]);
|
|
1149
|
-
|
|
1150
|
-
return RequestsHub;
|
|
1151
|
-
}(React.Component);
|
|
1152
|
-
|
|
1153
|
-
var styles$4 = {
|
|
1154
|
-
sideBarTitleSection: {
|
|
1155
|
-
lineHeight: '40px',
|
|
1156
|
-
marginTop: 30,
|
|
1157
|
-
marginBottom: 30,
|
|
1158
|
-
paddingLeft: 24,
|
|
1159
|
-
paddingRight: 24
|
|
1160
|
-
},
|
|
1161
|
-
sideBarSection: {
|
|
1162
|
-
weight: '100%',
|
|
1163
|
-
minWidth: 200,
|
|
1164
|
-
padding: 32,
|
|
1165
|
-
paddingLeft: 24,
|
|
1166
|
-
cursor: 'pointer',
|
|
1167
|
-
display: 'flex',
|
|
1168
|
-
flexDirection: 'column',
|
|
1169
|
-
justifyContent: 'center'
|
|
1170
|
-
},
|
|
1171
|
-
spinner: {
|
|
1172
|
-
fontSize: 32,
|
|
1173
|
-
color: FeatureConfig.env.colourBrandingOff
|
|
1174
|
-
}
|
|
1175
|
-
};
|
|
1176
|
-
|
|
1177
|
-
var mapStateToProps$3 = function mapStateToProps(state) {
|
|
1178
|
-
var jobs = state.maintenance.jobs;
|
|
1179
|
-
var auth = state.auth;
|
|
1180
|
-
return {
|
|
1181
|
-
jobs: jobs,
|
|
1182
|
-
auth: auth
|
|
1183
|
-
};
|
|
1184
|
-
};
|
|
1185
|
-
|
|
1186
|
-
var RequestsHub$1 = reactRedux.connect(mapStateToProps$3, {
|
|
1187
|
-
jobsLoaded: jobsLoaded
|
|
1188
|
-
})(RequestsHub);
|
|
1189
|
-
|
|
1190
|
-
function ownKeys$3(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; }
|
|
1191
|
-
|
|
1192
|
-
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(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$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
1193
|
-
|
|
1194
|
-
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); }; }
|
|
985
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onSave", function () {
|
|
986
|
+
var site = _this.props.auth.site;
|
|
987
|
+
var _this$state2 = _this.state,
|
|
988
|
+
submitting = _this$state2.submitting,
|
|
989
|
+
jobTypeId = _this$state2.jobTypeId,
|
|
990
|
+
jobTypeName = _this$state2.jobTypeName,
|
|
991
|
+
jobTypeEmail = _this$state2.jobTypeEmail,
|
|
992
|
+
jobTypeDescription = _this$state2.jobTypeDescription,
|
|
993
|
+
jobTypeLevel = _this$state2.jobTypeLevel;
|
|
994
|
+
if (submitting) return;
|
|
1195
995
|
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
Colours = PlussCore__namespace.Colours,
|
|
1201
|
-
Components$2 = PlussCore__namespace.Components;
|
|
996
|
+
if (!_this.isJobTypeValid()) {
|
|
997
|
+
_this.setState({
|
|
998
|
+
showWarnings: true
|
|
999
|
+
});
|
|
1202
1000
|
|
|
1203
|
-
|
|
1204
|
-
|
|
1001
|
+
return;
|
|
1002
|
+
}
|
|
1205
1003
|
|
|
1206
|
-
|
|
1004
|
+
_this.setState({
|
|
1005
|
+
submitting: true
|
|
1006
|
+
}, /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3() {
|
|
1007
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
|
|
1008
|
+
while (1) {
|
|
1009
|
+
switch (_context3.prev = _context3.next) {
|
|
1010
|
+
case 0:
|
|
1011
|
+
_context3.prev = 0;
|
|
1207
1012
|
|
|
1208
|
-
|
|
1209
|
-
|
|
1013
|
+
if (!jobTypeId) {
|
|
1014
|
+
_context3.next = 6;
|
|
1015
|
+
break;
|
|
1016
|
+
}
|
|
1210
1017
|
|
|
1211
|
-
|
|
1018
|
+
_context3.next = 4;
|
|
1019
|
+
return maintenanceActions.editJobType(site, jobTypeId, jobTypeName, jobTypeEmail, jobTypeDescription, jobTypeLevel);
|
|
1212
1020
|
|
|
1213
|
-
|
|
1021
|
+
case 4:
|
|
1022
|
+
_context3.next = 8;
|
|
1023
|
+
break;
|
|
1214
1024
|
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
while (1) {
|
|
1219
|
-
switch (_context.prev = _context.next) {
|
|
1220
|
-
case 0:
|
|
1221
|
-
_context.prev = 0;
|
|
1222
|
-
_context.next = 3;
|
|
1223
|
-
return maintenanceActions.getJob(_this.props.auth.site, _this.state.jobId);
|
|
1025
|
+
case 6:
|
|
1026
|
+
_context3.next = 8;
|
|
1027
|
+
return maintenanceActions.addJobType(site, jobTypeName, jobTypeEmail, jobTypeDescription, jobTypeLevel);
|
|
1224
1028
|
|
|
1225
|
-
|
|
1226
|
-
|
|
1029
|
+
case 8:
|
|
1030
|
+
_this.props.jobTypesUpdate(site);
|
|
1227
1031
|
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1032
|
+
_this.setState({
|
|
1033
|
+
submitting: false
|
|
1034
|
+
}, _this.onHideJobType);
|
|
1231
1035
|
|
|
1232
|
-
|
|
1036
|
+
_context3.next = 17;
|
|
1037
|
+
break;
|
|
1233
1038
|
|
|
1234
|
-
|
|
1039
|
+
case 12:
|
|
1040
|
+
_context3.prev = 12;
|
|
1041
|
+
_context3.t0 = _context3["catch"](0);
|
|
1042
|
+
console.error('onSave', _context3.t0);
|
|
1235
1043
|
|
|
1236
|
-
|
|
1237
|
-
|
|
1044
|
+
_this.setState({
|
|
1045
|
+
submitting: false
|
|
1046
|
+
});
|
|
1238
1047
|
|
|
1239
|
-
|
|
1240
|
-
_context.prev = 9;
|
|
1241
|
-
_context.t0 = _context["catch"](0);
|
|
1242
|
-
console.error('getJob', _context.t0);
|
|
1048
|
+
alert('Something went wrong with the request. Please try again.');
|
|
1243
1049
|
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1050
|
+
case 17:
|
|
1051
|
+
case "end":
|
|
1052
|
+
return _context3.stop();
|
|
1053
|
+
}
|
|
1247
1054
|
}
|
|
1248
|
-
}
|
|
1249
|
-
}
|
|
1250
|
-
})
|
|
1251
|
-
|
|
1252
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "setJob", function (job) {
|
|
1253
|
-
job.typeIcon = job.type === 'General' ? 'wrench' : 'tree';
|
|
1254
|
-
job.typeColour = job.type === 'General' ? '#666' : 'green';
|
|
1255
|
-
|
|
1256
|
-
if (___default['default'].isEmpty(job.lastActivity)) {
|
|
1257
|
-
job.lastActivity = '-- --';
|
|
1258
|
-
job.noActivity = true;
|
|
1259
|
-
}
|
|
1260
|
-
|
|
1261
|
-
if (___default['default'].isEmpty(job.status)) {
|
|
1262
|
-
job.status = 'Unassigned';
|
|
1263
|
-
job.notStatus = true;
|
|
1264
|
-
}
|
|
1265
|
-
|
|
1266
|
-
if (___default['default'].isEmpty(job.audience)) {
|
|
1267
|
-
job.audience = [{
|
|
1268
|
-
displayName: 'Unassigned',
|
|
1269
|
-
isEmpty: true
|
|
1270
|
-
}];
|
|
1271
|
-
}
|
|
1272
|
-
|
|
1273
|
-
var needToMarkSeen = false;
|
|
1055
|
+
}, _callee3, null, [[0, 12]]);
|
|
1056
|
+
})));
|
|
1057
|
+
});
|
|
1274
1058
|
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1059
|
+
_this.state = {
|
|
1060
|
+
jobList: [],
|
|
1061
|
+
showCompleted: false,
|
|
1062
|
+
sortColumn: 'name',
|
|
1063
|
+
sortDesc: false,
|
|
1064
|
+
loading: true,
|
|
1065
|
+
showJobType: false,
|
|
1066
|
+
jobTypeId: null,
|
|
1067
|
+
jobTypeName: '',
|
|
1068
|
+
jobTypeEmail: '',
|
|
1069
|
+
jobTypeDescription: '',
|
|
1070
|
+
jobTypeLevel: 1,
|
|
1071
|
+
showWarnings: false,
|
|
1072
|
+
submitting: false
|
|
1073
|
+
};
|
|
1074
|
+
return _this;
|
|
1075
|
+
}
|
|
1279
1076
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1077
|
+
_createClass__default['default'](JobTypes, [{
|
|
1078
|
+
key: "componentWillMount",
|
|
1079
|
+
value: function componentWillMount() {
|
|
1080
|
+
this.updateProps(this.props);
|
|
1081
|
+
Session$3.checkLoggedIn(this, this.props.auth);
|
|
1082
|
+
}
|
|
1083
|
+
}, {
|
|
1084
|
+
key: "componentDidMount",
|
|
1085
|
+
value: function componentDidMount() {
|
|
1086
|
+
this.getJobTypes();
|
|
1087
|
+
}
|
|
1088
|
+
}, {
|
|
1089
|
+
key: "componentWillReceiveProps",
|
|
1090
|
+
value: function componentWillReceiveProps(nextProps) {
|
|
1091
|
+
this.updateProps(nextProps);
|
|
1092
|
+
}
|
|
1093
|
+
}, {
|
|
1094
|
+
key: "updateProps",
|
|
1095
|
+
value: function updateProps(props) {
|
|
1096
|
+
this.setState({
|
|
1097
|
+
jobList: props.jobtypes
|
|
1284
1098
|
});
|
|
1099
|
+
}
|
|
1100
|
+
}, {
|
|
1101
|
+
key: "renderList",
|
|
1102
|
+
value: function renderList() {
|
|
1103
|
+
var _this2 = this;
|
|
1285
1104
|
|
|
1286
|
-
|
|
1287
|
-
});
|
|
1288
|
-
|
|
1289
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "editJob", function () {});
|
|
1105
|
+
var source = ___default['default'].sortBy(this.state.jobList, this.state.sortColumn);
|
|
1290
1106
|
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
return n.Uploading;
|
|
1297
|
-
})) return false;
|
|
1298
|
-
return !___default['default'].isEmpty(noteInput) || !___default['default'].isEmpty(noteAttachments);
|
|
1299
|
-
});
|
|
1300
|
-
|
|
1301
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenAddNote", function () {
|
|
1302
|
-
_this.setState({
|
|
1303
|
-
addNoteOpen: true,
|
|
1304
|
-
editingNote: null
|
|
1305
|
-
});
|
|
1306
|
-
});
|
|
1307
|
-
|
|
1308
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onCloseAddNote", function () {
|
|
1309
|
-
var newState = {
|
|
1310
|
-
addNoteOpen: false,
|
|
1311
|
-
editingNote: null
|
|
1312
|
-
};
|
|
1313
|
-
|
|
1314
|
-
if (!!_this.state.editingNote) {
|
|
1315
|
-
newState.noteInput = '';
|
|
1316
|
-
newState.noteAttachments = [];
|
|
1317
|
-
}
|
|
1318
|
-
|
|
1319
|
-
_this.setState(newState);
|
|
1320
|
-
});
|
|
1321
|
-
|
|
1322
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenNoteMenu", function (index) {
|
|
1323
|
-
if (_this.state.noteMenuOpen === index) {
|
|
1324
|
-
_this.setState({
|
|
1325
|
-
noteMenuOpen: null
|
|
1326
|
-
});
|
|
1327
|
-
} else {
|
|
1328
|
-
_this.setState({
|
|
1329
|
-
noteMenuOpen: index
|
|
1330
|
-
});
|
|
1331
|
-
}
|
|
1332
|
-
});
|
|
1333
|
-
|
|
1334
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandlePDFFileChange", function (event) {
|
|
1335
|
-
var file = event.target.files[0];
|
|
1336
|
-
if (!file || _this.state.uploadingNoteAttachment) return;
|
|
1337
|
-
|
|
1338
|
-
var noteAttachments = _toConsumableArray__default['default'](_this.state.noteAttachments);
|
|
1339
|
-
|
|
1340
|
-
var newAttachment = {
|
|
1341
|
-
Uploading: true,
|
|
1342
|
-
Title: file.name
|
|
1343
|
-
};
|
|
1344
|
-
noteAttachments.push(newAttachment);
|
|
1345
|
-
|
|
1346
|
-
_this.setState({
|
|
1347
|
-
noteAttachments: noteAttachments
|
|
1107
|
+
if (this.state.sortDesc) source.reverse();
|
|
1108
|
+
source = ___default['default'].filter(source, function (ev) {
|
|
1109
|
+
if (!ev) return false;
|
|
1110
|
+
if (ev.Deleted) return false;
|
|
1111
|
+
return true;
|
|
1348
1112
|
});
|
|
1113
|
+
return source.map(function (ev, index) {
|
|
1114
|
+
if (ev != null) {
|
|
1115
|
+
return /*#__PURE__*/React__default['default'].createElement("tr", {
|
|
1116
|
+
key: index
|
|
1117
|
+
}, /*#__PURE__*/React__default['default'].createElement("td", {
|
|
1118
|
+
className: "table-TitleColumn"
|
|
1119
|
+
}, /*#__PURE__*/React__default['default'].createElement("a", {
|
|
1120
|
+
onClick: function onClick() {
|
|
1121
|
+
return _this2.onShowJobType(ev);
|
|
1122
|
+
}
|
|
1123
|
+
}, ev.typeName)), /*#__PURE__*/React__default['default'].createElement("td", null, ev.description), /*#__PURE__*/React__default['default'].createElement("td", null, ev.email), /*#__PURE__*/React__default['default'].createElement("td", {
|
|
1124
|
+
className: "table-options"
|
|
1125
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1126
|
+
style: {
|
|
1127
|
+
display: 'flex',
|
|
1128
|
+
alignItems: 'center'
|
|
1129
|
+
}
|
|
1130
|
+
}, Session$3.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
|
|
1131
|
+
onClick: function onClick() {
|
|
1132
|
+
return _this2.onShowJobType(ev);
|
|
1133
|
+
}
|
|
1134
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
1135
|
+
style: {
|
|
1136
|
+
fontSize: 20,
|
|
1137
|
+
padding: 5,
|
|
1138
|
+
marginLeft: 12,
|
|
1139
|
+
cursor: 'pointer'
|
|
1140
|
+
},
|
|
1141
|
+
name: "pencil"
|
|
1142
|
+
})), Session$3.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
|
|
1143
|
+
onClick: function onClick() {
|
|
1144
|
+
return _this2.onRemoveJobType(ev);
|
|
1145
|
+
}
|
|
1146
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
1147
|
+
style: {
|
|
1148
|
+
fontSize: 20,
|
|
1149
|
+
padding: 5,
|
|
1150
|
+
marginLeft: 8,
|
|
1151
|
+
cursor: 'pointer'
|
|
1152
|
+
},
|
|
1153
|
+
name: "minus-circle"
|
|
1154
|
+
})))));
|
|
1155
|
+
}
|
|
1349
1156
|
|
|
1350
|
-
|
|
1351
|
-
newAttachment.Source = fileRes;
|
|
1352
|
-
newAttachment.Uploading = false;
|
|
1353
|
-
|
|
1354
|
-
_this.setState({
|
|
1355
|
-
noteAttachments: _toConsumableArray__default['default'](_this.state.noteAttachments)
|
|
1356
|
-
});
|
|
1357
|
-
}).catch(function (uploadErrorRes) {
|
|
1358
|
-
console.log(uploadErrorRes);
|
|
1359
|
-
newAttachment.Uploading = false;
|
|
1360
|
-
|
|
1361
|
-
_this.setState({
|
|
1362
|
-
noteAttachments: _toConsumableArray__default['default'](_this.state.noteAttachments)
|
|
1363
|
-
});
|
|
1157
|
+
return null;
|
|
1364
1158
|
});
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
var
|
|
1159
|
+
}
|
|
1160
|
+
}, {
|
|
1161
|
+
key: "renderView",
|
|
1162
|
+
value: function renderView() {
|
|
1163
|
+
var _this3 = this;
|
|
1370
1164
|
|
|
1371
|
-
|
|
1372
|
-
|
|
1165
|
+
return /*#__PURE__*/React__default['default'].createElement(reactBootstrap.Table, {
|
|
1166
|
+
className: "plussTable",
|
|
1167
|
+
striped: true,
|
|
1168
|
+
bordered: true,
|
|
1169
|
+
condensed: true,
|
|
1170
|
+
hover: true,
|
|
1171
|
+
style: {
|
|
1172
|
+
minWidth: '100%'
|
|
1173
|
+
}
|
|
1174
|
+
}, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", {
|
|
1175
|
+
style: {
|
|
1176
|
+
cursor: 'pointer'
|
|
1177
|
+
},
|
|
1178
|
+
onClick: function onClick() {
|
|
1179
|
+
return _this3.sortByCol('name');
|
|
1180
|
+
}
|
|
1181
|
+
}, "Request type"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
1182
|
+
style: {
|
|
1183
|
+
cursor: 'pointer'
|
|
1184
|
+
},
|
|
1185
|
+
onClick: function onClick() {
|
|
1186
|
+
return _this3.sortByCol('name');
|
|
1187
|
+
}
|
|
1188
|
+
}, "Type Description"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
1189
|
+
style: {
|
|
1190
|
+
cursor: 'pointer'
|
|
1191
|
+
},
|
|
1192
|
+
onClick: function onClick() {
|
|
1193
|
+
return _this3.sortByCol('email');
|
|
1194
|
+
}
|
|
1195
|
+
}, "Email"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
1196
|
+
style: {
|
|
1197
|
+
width: 70
|
|
1198
|
+
}
|
|
1199
|
+
}))), /*#__PURE__*/React__default['default'].createElement("tbody", null, this.renderList()));
|
|
1200
|
+
}
|
|
1201
|
+
}, {
|
|
1202
|
+
key: "renderEmpty",
|
|
1203
|
+
value: function renderEmpty() {
|
|
1204
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1205
|
+
style: {
|
|
1206
|
+
display: 'flex',
|
|
1207
|
+
flexDirection: 'column',
|
|
1208
|
+
flex: 1,
|
|
1209
|
+
justifyContent: 'center',
|
|
1210
|
+
alignItems: 'center',
|
|
1211
|
+
marginTop: 32
|
|
1212
|
+
}
|
|
1213
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1214
|
+
className: "emptyState"
|
|
1215
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1216
|
+
className: "marginTop-32",
|
|
1217
|
+
style: {
|
|
1218
|
+
maxWidth: 500,
|
|
1219
|
+
textAlign: 'center'
|
|
1220
|
+
}
|
|
1221
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1222
|
+
className: "fontRegular fontSize-13"
|
|
1223
|
+
}, "Please add the many categories of request types that exist in your village which work alongside the Maintenance area.")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1224
|
+
className: "marginTop-8 fontRegular fontSize-13",
|
|
1225
|
+
style: {
|
|
1226
|
+
maxWidth: 500,
|
|
1227
|
+
textAlign: 'center'
|
|
1228
|
+
}
|
|
1229
|
+
}, "Examples might be; OH&S, Electrical, General. Remember to add a description too."));
|
|
1230
|
+
}
|
|
1231
|
+
}, {
|
|
1232
|
+
key: "renderContent",
|
|
1233
|
+
value: function renderContent() {
|
|
1234
|
+
if (___default['default'].isEmpty(this.state.jobList)) return this.renderEmpty();
|
|
1235
|
+
return this.renderView();
|
|
1236
|
+
}
|
|
1237
|
+
}, {
|
|
1238
|
+
key: "renderJobTypes",
|
|
1239
|
+
value: function renderJobTypes() {
|
|
1240
|
+
var _this4 = this;
|
|
1373
1241
|
|
|
1374
|
-
|
|
1242
|
+
var _this$state3 = this.state,
|
|
1243
|
+
jobList = _this$state3.jobList,
|
|
1244
|
+
loading = _this$state3.loading;
|
|
1375
1245
|
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1246
|
+
if (jobList.length === 0 && loading) {
|
|
1247
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1248
|
+
style: {
|
|
1249
|
+
minWidth: '100%'
|
|
1250
|
+
}
|
|
1251
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1252
|
+
className: "padding-60 paddingVertical-40",
|
|
1253
|
+
style: {
|
|
1254
|
+
textAlign: 'center'
|
|
1255
|
+
}
|
|
1256
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
1257
|
+
style: {
|
|
1258
|
+
fontSize: 30,
|
|
1259
|
+
color: FeatureConfig.env.colourBrandingOff
|
|
1260
|
+
},
|
|
1261
|
+
name: "spinner fa-pulse fa-fw"
|
|
1262
|
+
})));
|
|
1379
1263
|
}
|
|
1380
|
-
});
|
|
1381
|
-
|
|
1382
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onConfirmAddNote", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
|
|
1383
|
-
var res;
|
|
1384
|
-
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
|
|
1385
|
-
while (1) {
|
|
1386
|
-
switch (_context2.prev = _context2.next) {
|
|
1387
|
-
case 0:
|
|
1388
|
-
if (_this.isReadyToSaveNote()) {
|
|
1389
|
-
_context2.next = 2;
|
|
1390
|
-
break;
|
|
1391
|
-
}
|
|
1392
|
-
|
|
1393
|
-
return _context2.abrupt("return");
|
|
1394
1264
|
|
|
1395
|
-
|
|
1396
|
-
|
|
1265
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1266
|
+
style: {
|
|
1267
|
+
minWidth: '100%'
|
|
1268
|
+
}
|
|
1269
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1270
|
+
className: "marginBottom-32"
|
|
1271
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$3.AddButton, {
|
|
1272
|
+
onClick: function onClick() {
|
|
1273
|
+
return _this4.onShowJobType();
|
|
1274
|
+
},
|
|
1275
|
+
text: "NEW REQUEST TYPE"
|
|
1276
|
+
})), this.renderContent());
|
|
1277
|
+
}
|
|
1278
|
+
}, {
|
|
1279
|
+
key: "renderNewUserTypePopup",
|
|
1280
|
+
value: function renderNewUserTypePopup() {
|
|
1281
|
+
var _this5 = this;
|
|
1397
1282
|
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1283
|
+
var _this$state4 = this.state,
|
|
1284
|
+
submitting = _this$state4.submitting,
|
|
1285
|
+
showJobType = _this$state4.showJobType,
|
|
1286
|
+
jobTypeId = _this$state4.jobTypeId,
|
|
1287
|
+
showWarnings = _this$state4.showWarnings,
|
|
1288
|
+
jobTypeName = _this$state4.jobTypeName,
|
|
1289
|
+
jobTypeEmail = _this$state4.jobTypeEmail,
|
|
1290
|
+
jobTypeDescription = _this$state4.jobTypeDescription;
|
|
1291
|
+
if (!showJobType) return null;
|
|
1292
|
+
return /*#__PURE__*/React__default['default'].createElement(Components$3.Popup, {
|
|
1293
|
+
maxWidth: 800,
|
|
1294
|
+
hasPadding: true,
|
|
1295
|
+
buttons: [{
|
|
1296
|
+
type: 'primaryAction',
|
|
1297
|
+
onClick: this.onSave,
|
|
1298
|
+
isActive: !submitting && this.isJobTypeValid(),
|
|
1299
|
+
text: submitting ? 'Saving...' : 'Save',
|
|
1300
|
+
className: 'popupButton'
|
|
1301
|
+
}, {
|
|
1302
|
+
type: 'outlinedAction',
|
|
1303
|
+
onClick: this.onHideJobType,
|
|
1304
|
+
isActive: !submitting,
|
|
1305
|
+
text: 'Cancel',
|
|
1306
|
+
className: 'popupButton'
|
|
1307
|
+
}],
|
|
1308
|
+
onClose: this.onHideJobType,
|
|
1309
|
+
title: jobTypeId ? 'Edit Request Type' : 'Create New Request Type'
|
|
1310
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
|
|
1311
|
+
id: "jobTypeName",
|
|
1312
|
+
type: "text",
|
|
1313
|
+
label: "Request type title",
|
|
1314
|
+
placeholder: "Request type title",
|
|
1315
|
+
value: jobTypeName,
|
|
1316
|
+
onChange: this.onHandleChange,
|
|
1317
|
+
isRequired: true,
|
|
1318
|
+
isValid: function isValid() {
|
|
1319
|
+
return !___default['default'].isEmpty(jobTypeName);
|
|
1320
|
+
},
|
|
1321
|
+
showError: function showError() {
|
|
1322
|
+
return showWarnings && ___default['default'].isEmpty(jobTypeName);
|
|
1323
|
+
},
|
|
1324
|
+
alwaysShowLabel: true
|
|
1325
|
+
}), /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
|
|
1326
|
+
id: "jobTypeEmail",
|
|
1327
|
+
type: "text",
|
|
1328
|
+
label: "Email",
|
|
1329
|
+
placeholder: "Request email",
|
|
1330
|
+
help: "This is the email address that'll receive service requests of this type",
|
|
1331
|
+
value: jobTypeEmail,
|
|
1332
|
+
onChange: this.onHandleChange,
|
|
1333
|
+
isRequired: true,
|
|
1334
|
+
isValid: this.validateEmail,
|
|
1335
|
+
showError: function showError() {
|
|
1336
|
+
return showWarnings && !_this5.validateEmail();
|
|
1337
|
+
},
|
|
1338
|
+
alwaysShowLabel: true
|
|
1339
|
+
}), /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
|
|
1340
|
+
id: "jobTypeDescription",
|
|
1341
|
+
type: "text",
|
|
1342
|
+
label: "Description",
|
|
1343
|
+
placeholder: "Add a description. ",
|
|
1344
|
+
help: "This description will be visible to the people to help them select the correct request type.",
|
|
1345
|
+
value: jobTypeDescription,
|
|
1346
|
+
onChange: this.onHandleChange,
|
|
1347
|
+
isRequired: true,
|
|
1348
|
+
isValid: function isValid() {
|
|
1349
|
+
return !___default['default'].isEmpty(jobTypeDescription);
|
|
1350
|
+
},
|
|
1351
|
+
showError: function showError() {
|
|
1352
|
+
return showWarnings && ___default['default'].isEmpty(jobTypeDescription);
|
|
1353
|
+
},
|
|
1354
|
+
alwaysShowLabel: true
|
|
1355
|
+
}));
|
|
1356
|
+
}
|
|
1357
|
+
}, {
|
|
1358
|
+
key: "render",
|
|
1359
|
+
value: function render() {
|
|
1360
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1361
|
+
style: {
|
|
1362
|
+
minWidth: '100%'
|
|
1363
|
+
}
|
|
1364
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderJobTypes()), this.renderNewUserTypePopup(), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1365
|
+
className: "hub_tidioPadding"
|
|
1366
|
+
}));
|
|
1367
|
+
}
|
|
1368
|
+
}]);
|
|
1401
1369
|
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
return {
|
|
1405
|
-
Title: a.Title,
|
|
1406
|
-
Source: a.Source
|
|
1407
|
-
};
|
|
1408
|
-
})) : maintenanceActions.addNote(_this.state.jobId, _this.state.noteInput, _this.state.noteAttachments.map(function (a) {
|
|
1409
|
-
return {
|
|
1410
|
-
Title: a.Title,
|
|
1411
|
-
Source: a.Source
|
|
1412
|
-
};
|
|
1413
|
-
}));
|
|
1370
|
+
return JobTypes;
|
|
1371
|
+
}(React.Component);
|
|
1414
1372
|
|
|
1415
|
-
|
|
1416
|
-
|
|
1373
|
+
var mapStateToProps$3 = function mapStateToProps(state) {
|
|
1374
|
+
var jobtypes = state.maintenance.jobtypes;
|
|
1375
|
+
var auth = state.auth;
|
|
1376
|
+
return {
|
|
1377
|
+
jobtypes: jobtypes,
|
|
1378
|
+
auth: auth
|
|
1379
|
+
};
|
|
1380
|
+
};
|
|
1417
1381
|
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
noteInput: '',
|
|
1423
|
-
noteAttachments: [],
|
|
1424
|
-
editingNote: null
|
|
1425
|
-
}, function () {
|
|
1426
|
-
_this.props.jobsLoaded([_this.state.job]);
|
|
1427
|
-
});
|
|
1382
|
+
var JobTypes$1 = reactRedux.connect(mapStateToProps$3, {
|
|
1383
|
+
jobTypesLoaded: jobTypesLoaded,
|
|
1384
|
+
jobTypesUpdate: jobTypesUpdate
|
|
1385
|
+
})(reactRouter.withRouter(JobTypes));
|
|
1428
1386
|
|
|
1429
|
-
|
|
1430
|
-
break;
|
|
1387
|
+
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); }; }
|
|
1431
1388
|
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
console.error('onConfirmAddNote', _context2.t0);
|
|
1389
|
+
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; } }
|
|
1390
|
+
var Components$2 = PlussCore__namespace.Components,
|
|
1391
|
+
Session$2 = PlussCore__namespace.Session;
|
|
1436
1392
|
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
return _context2.stop();
|
|
1440
|
-
}
|
|
1441
|
-
}
|
|
1442
|
-
}, _callee2, null, [[2, 10]]);
|
|
1443
|
-
})));
|
|
1393
|
+
var RequestsHub = /*#__PURE__*/function (_Component) {
|
|
1394
|
+
_inherits__default['default'](RequestsHub, _Component);
|
|
1444
1395
|
|
|
1445
|
-
|
|
1446
|
-
if (!window.confirm('Are you sure you want to delete that note?')) {
|
|
1447
|
-
_this.setState({
|
|
1448
|
-
noteMenuOpen: null
|
|
1449
|
-
});
|
|
1396
|
+
var _super = _createSuper$8(RequestsHub);
|
|
1450
1397
|
|
|
1451
|
-
|
|
1452
|
-
|
|
1398
|
+
function RequestsHub(props) {
|
|
1399
|
+
var _this;
|
|
1453
1400
|
|
|
1454
|
-
|
|
1401
|
+
_classCallCheck__default['default'](this, RequestsHub);
|
|
1455
1402
|
|
|
1456
|
-
|
|
1457
|
-
return note.Id !== n.Id;
|
|
1458
|
-
});
|
|
1403
|
+
_this = _super.call(this, props);
|
|
1459
1404
|
|
|
1460
|
-
|
|
1405
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "setData", function () {
|
|
1406
|
+
var allList = [];
|
|
1461
1407
|
|
|
1462
|
-
|
|
1408
|
+
_this.state.allList.forEach(function (ev) {
|
|
1409
|
+
if (ev != null && !ev.Deleted) allList.push(ev);
|
|
1410
|
+
});
|
|
1463
1411
|
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1412
|
+
var upcoming = ___default['default'].filter(allList, function (ev) {
|
|
1413
|
+
if (!ev) return false;
|
|
1414
|
+
if (ev.status && ev.status === 'Completed') return false;
|
|
1415
|
+
return true;
|
|
1467
1416
|
});
|
|
1468
|
-
});
|
|
1469
1417
|
|
|
1470
|
-
|
|
1418
|
+
var completed = ___default['default'].filter(allList, function (ev) {
|
|
1419
|
+
if (!ev) return false;
|
|
1420
|
+
if (ev.status && ev.status === 'Completed') return true;
|
|
1421
|
+
return false;
|
|
1422
|
+
}); // console.log('setData', upcoming, completed);
|
|
1423
|
+
|
|
1424
|
+
|
|
1471
1425
|
_this.setState({
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
editingNote: n.Id,
|
|
1476
|
-
noteMenuOpen: null
|
|
1426
|
+
allList: allList,
|
|
1427
|
+
upcoming: upcoming,
|
|
1428
|
+
completed: completed
|
|
1477
1429
|
});
|
|
1478
1430
|
});
|
|
1479
1431
|
|
|
1480
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1481
|
-
var
|
|
1482
|
-
var auth = _this.props.auth; // Must have maintenance permission and not the requester
|
|
1483
|
-
|
|
1484
|
-
if (!Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) return;
|
|
1485
|
-
if (auth.user.Id === job.userID) return;
|
|
1432
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getData", function () {
|
|
1433
|
+
var auth = _this.props.auth;
|
|
1486
1434
|
|
|
1487
1435
|
_this.setState({
|
|
1488
|
-
|
|
1489
|
-
}, /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function
|
|
1490
|
-
var
|
|
1491
|
-
return _regeneratorRuntime__default['default'].wrap(function
|
|
1436
|
+
loadingAll: true
|
|
1437
|
+
}, /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
1438
|
+
var res;
|
|
1439
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
1492
1440
|
while (1) {
|
|
1493
|
-
switch (
|
|
1441
|
+
switch (_context.prev = _context.next) {
|
|
1494
1442
|
case 0:
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
seen: true,
|
|
1499
|
-
status: job.status || 'Unassigned'
|
|
1500
|
-
};
|
|
1501
|
-
_context3.next = 4;
|
|
1502
|
-
return maintenanceActions.editJob(update, auth.site);
|
|
1443
|
+
_context.prev = 0;
|
|
1444
|
+
_context.next = 3;
|
|
1445
|
+
return maintenanceActions.getJobs(auth.site);
|
|
1503
1446
|
|
|
1504
|
-
case
|
|
1505
|
-
|
|
1447
|
+
case 3:
|
|
1448
|
+
res = _context.sent;
|
|
1449
|
+
|
|
1450
|
+
// console.log('getData', res.data);
|
|
1451
|
+
_this.setState({
|
|
1452
|
+
loadingAll: false
|
|
1453
|
+
});
|
|
1454
|
+
|
|
1455
|
+
if (res.data != null && !___default['default'].isEmpty(res.data) && res.data[0].site === auth.site) {
|
|
1456
|
+
_this.props.jobsLoaded(res.data);
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
_context.next = 12;
|
|
1506
1460
|
break;
|
|
1507
1461
|
|
|
1508
|
-
case
|
|
1509
|
-
|
|
1510
|
-
|
|
1462
|
+
case 8:
|
|
1463
|
+
_context.prev = 8;
|
|
1464
|
+
_context.t0 = _context["catch"](0);
|
|
1465
|
+
console.error('getData', _context.t0);
|
|
1511
1466
|
|
|
1512
1467
|
_this.setState({
|
|
1513
|
-
|
|
1468
|
+
loadingAll: false
|
|
1514
1469
|
});
|
|
1515
1470
|
|
|
1516
|
-
|
|
1517
|
-
alert('Something went wrong with the request. Please try again.');
|
|
1518
|
-
|
|
1519
|
-
case 11:
|
|
1471
|
+
case 12:
|
|
1520
1472
|
case "end":
|
|
1521
|
-
return
|
|
1473
|
+
return _context.stop();
|
|
1522
1474
|
}
|
|
1523
1475
|
}
|
|
1524
|
-
},
|
|
1476
|
+
}, _callee, null, [[0, 8]]);
|
|
1525
1477
|
})));
|
|
1526
1478
|
});
|
|
1527
1479
|
|
|
1528
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
}
|
|
1480
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onAddNew", function () {
|
|
1481
|
+
var auth = _this.props.auth;
|
|
1482
|
+
|
|
1483
|
+
if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) {
|
|
1484
|
+
_this.props.history.push("/requestsHub/job");
|
|
1485
|
+
}
|
|
1534
1486
|
});
|
|
1535
1487
|
|
|
1536
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1537
|
-
var
|
|
1538
|
-
|
|
1539
|
-
return
|
|
1540
|
-
while (1) {
|
|
1541
|
-
switch (_context4.prev = _context4.next) {
|
|
1542
|
-
case 0:
|
|
1543
|
-
_this$state2 = _this.state, commentInput = _this$state2.commentInput, jobId = _this$state2.jobId, job = _this$state2.job, comments = _this$state2.comments;
|
|
1544
|
-
_context4.prev = 1;
|
|
1545
|
-
|
|
1546
|
-
_this.setState({
|
|
1547
|
-
commentInput: ''
|
|
1548
|
-
});
|
|
1549
|
-
|
|
1550
|
-
_context4.next = 5;
|
|
1551
|
-
return reactionActions.addComment(jobId, 'maintenancerequest', job.site, commentInput);
|
|
1552
|
-
|
|
1553
|
-
case 5:
|
|
1554
|
-
res = _context4.sent;
|
|
1555
|
-
|
|
1556
|
-
_this.setState({
|
|
1557
|
-
comments: [].concat(_toConsumableArray__default['default'](comments), [res.data])
|
|
1558
|
-
});
|
|
1559
|
-
|
|
1560
|
-
_context4.next = 12;
|
|
1561
|
-
break;
|
|
1562
|
-
|
|
1563
|
-
case 9:
|
|
1564
|
-
_context4.prev = 9;
|
|
1565
|
-
_context4.t0 = _context4["catch"](1);
|
|
1566
|
-
console.error('onAddComment', _context4.t0);
|
|
1567
|
-
|
|
1568
|
-
case 12:
|
|
1569
|
-
case "end":
|
|
1570
|
-
return _context4.stop();
|
|
1571
|
-
}
|
|
1572
|
-
}
|
|
1573
|
-
}, _callee4, null, [[1, 9]]);
|
|
1574
|
-
})));
|
|
1575
|
-
|
|
1576
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
|
|
1577
|
-
var stateChange = {};
|
|
1578
|
-
stateChange[event.target.getAttribute('id')] = event.target.value;
|
|
1579
|
-
|
|
1580
|
-
_this.setState(stateChange);
|
|
1488
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "canAddNew", function (isClass) {
|
|
1489
|
+
var auth = _this.props.auth;
|
|
1490
|
+
if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) return isClass ? '' : true;
|
|
1491
|
+
return isClass ? ' hub-sideContent-topButton--hide' : false;
|
|
1581
1492
|
});
|
|
1582
1493
|
|
|
1583
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1584
|
-
_this.
|
|
1585
|
-
|
|
1586
|
-
}
|
|
1494
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getSideBarSectionColour", function (id) {
|
|
1495
|
+
return _this.state.selectedSection === id ? {
|
|
1496
|
+
backgroundColor: '#fff'
|
|
1497
|
+
} : {};
|
|
1587
1498
|
});
|
|
1588
1499
|
|
|
1589
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
case 0:
|
|
1596
|
-
_this.setState({
|
|
1597
|
-
job: _objectSpread$3(_objectSpread$3({}, _this.state.job), {}, {
|
|
1598
|
-
status: status
|
|
1599
|
-
}),
|
|
1600
|
-
statusChangerOpen: false
|
|
1601
|
-
});
|
|
1602
|
-
|
|
1603
|
-
_context5.prev = 1;
|
|
1604
|
-
_context5.next = 4;
|
|
1605
|
-
return maintenanceActions.editJobStatus(_this.state.job.id, status);
|
|
1606
|
-
|
|
1607
|
-
case 4:
|
|
1608
|
-
res = _context5.sent;
|
|
1609
|
-
|
|
1610
|
-
_this.setState({
|
|
1611
|
-
job: res.data.job
|
|
1612
|
-
}, function () {
|
|
1613
|
-
_this.props.jobsLoaded([_this.state.job]);
|
|
1614
|
-
});
|
|
1615
|
-
|
|
1616
|
-
_context5.next = 11;
|
|
1617
|
-
break;
|
|
1618
|
-
|
|
1619
|
-
case 8:
|
|
1620
|
-
_context5.prev = 8;
|
|
1621
|
-
_context5.t0 = _context5["catch"](1);
|
|
1622
|
-
console.error('onSelectStatus', _context5.t0);
|
|
1623
|
-
|
|
1624
|
-
case 11:
|
|
1625
|
-
case "end":
|
|
1626
|
-
return _context5.stop();
|
|
1627
|
-
}
|
|
1628
|
-
}
|
|
1629
|
-
}, _callee5, null, [[1, 8]]);
|
|
1630
|
-
}));
|
|
1631
|
-
|
|
1632
|
-
return function (_x) {
|
|
1633
|
-
return _ref5.apply(this, arguments);
|
|
1634
|
-
};
|
|
1635
|
-
}());
|
|
1500
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "renderStats", function (stat, loading) {
|
|
1501
|
+
return loading ? /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
1502
|
+
style: styles$4.spinner,
|
|
1503
|
+
name: "spinner fa-pulse fa-fw"
|
|
1504
|
+
}) : stat;
|
|
1505
|
+
});
|
|
1636
1506
|
|
|
1637
1507
|
_this.state = {
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1508
|
+
selectedSection: 'all',
|
|
1509
|
+
location: '',
|
|
1510
|
+
loadingAll: false,
|
|
1511
|
+
loadingSubmissions: false,
|
|
1512
|
+
submissionEntries: [],
|
|
1513
|
+
allList: [],
|
|
1514
|
+
completed: [],
|
|
1515
|
+
upcoming: [],
|
|
1516
|
+
now: moment__default['default'].utc(),
|
|
1517
|
+
onlyFuture: true,
|
|
1518
|
+
search: ''
|
|
1649
1519
|
};
|
|
1650
1520
|
return _this;
|
|
1651
1521
|
}
|
|
1652
1522
|
|
|
1653
|
-
_createClass__default['default'](
|
|
1654
|
-
key: "
|
|
1655
|
-
value: function
|
|
1656
|
-
|
|
1523
|
+
_createClass__default['default'](RequestsHub, [{
|
|
1524
|
+
key: "UNSAFE_componentWillMount",
|
|
1525
|
+
value: function UNSAFE_componentWillMount() {
|
|
1526
|
+
this.updateProps(this.props);
|
|
1657
1527
|
}
|
|
1658
1528
|
}, {
|
|
1659
1529
|
key: "componentDidMount",
|
|
1660
1530
|
value: function componentDidMount() {
|
|
1661
|
-
|
|
1662
|
-
this.getJob();
|
|
1663
|
-
this.getComments();
|
|
1664
|
-
}
|
|
1531
|
+
this.getData();
|
|
1665
1532
|
}
|
|
1666
1533
|
}, {
|
|
1667
|
-
key: "
|
|
1668
|
-
value: function
|
|
1669
|
-
if (!this.
|
|
1670
|
-
var auth = this.props.auth;
|
|
1671
|
-
|
|
1672
|
-
if (Session$2.validateAccess(auth.site, 'maintenanceTracking', auth)) {
|
|
1673
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1674
|
-
className: "statusLabel pointer",
|
|
1675
|
-
onClick: this.onToggleStatusChanger,
|
|
1676
|
-
style: {
|
|
1677
|
-
backgroundColor: StatusTypes[this.state.job.status].color
|
|
1678
|
-
}
|
|
1679
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1680
|
-
className: "statusLabel_text"
|
|
1681
|
-
}, StatusTypes[this.state.job.status].text), this.renderStatusChanger());
|
|
1682
|
-
}
|
|
1683
|
-
|
|
1684
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1685
|
-
className: "statusLabel",
|
|
1686
|
-
style: {
|
|
1687
|
-
backgroundColor: StatusTypes[this.state.job.status].color
|
|
1688
|
-
}
|
|
1689
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1690
|
-
className: "statusLabel_text"
|
|
1691
|
-
}, StatusTypes[this.state.job.status].text));
|
|
1534
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
1535
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
1536
|
+
if (!___default['default'].isEqual(this.props.jobs, nextProps.jobs)) this.updateProps(nextProps);
|
|
1692
1537
|
}
|
|
1693
1538
|
}, {
|
|
1694
|
-
key: "
|
|
1695
|
-
value: function
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
className: "statusLabel pointer",
|
|
1700
|
-
onClick: this.onOpenAddNote,
|
|
1701
|
-
style: {
|
|
1702
|
-
backgroundColor: FeatureConfig.env.colourBrandingMain,
|
|
1703
|
-
marginLeft: 8
|
|
1704
|
-
}
|
|
1705
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1706
|
-
className: "statusLabel_text"
|
|
1707
|
-
}, "Add Note"));
|
|
1539
|
+
key: "updateProps",
|
|
1540
|
+
value: function updateProps(props) {
|
|
1541
|
+
this.setState({
|
|
1542
|
+
allList: props.jobs
|
|
1543
|
+
}, this.setData);
|
|
1708
1544
|
}
|
|
1709
1545
|
}, {
|
|
1710
|
-
key: "
|
|
1711
|
-
value: function
|
|
1546
|
+
key: "renderLeftBar",
|
|
1547
|
+
value: function renderLeftBar() {
|
|
1712
1548
|
var _this2 = this;
|
|
1713
1549
|
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1550
|
+
var sectionItems = [];
|
|
1551
|
+
|
|
1552
|
+
if (this.canAddNew()) {
|
|
1553
|
+
sectionItems.push({
|
|
1554
|
+
type: 'newButton',
|
|
1555
|
+
text: 'New Request',
|
|
1556
|
+
onClick: this.onAddNew
|
|
1557
|
+
});
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
sectionItems.push({
|
|
1561
|
+
type: 'navItem',
|
|
1562
|
+
text: 'View Requests',
|
|
1563
|
+
icon: 'maintenance',
|
|
1564
|
+
selected: this.state.selectedSection === 'all',
|
|
1565
|
+
onClick: function onClick() {
|
|
1566
|
+
_this2.setState({
|
|
1567
|
+
selectedSection: 'all'
|
|
1568
|
+
});
|
|
1569
|
+
}
|
|
1570
|
+
});
|
|
1571
|
+
|
|
1572
|
+
if (Session$2.validateAccess(this.props.auth.site, 'maintenanceTypes', this.props.auth)) {
|
|
1573
|
+
sectionItems.push({
|
|
1574
|
+
type: 'navItem',
|
|
1575
|
+
text: 'Request Types',
|
|
1576
|
+
icon: 'maintenance2',
|
|
1577
|
+
isSVG: true,
|
|
1578
|
+
selected: this.state.selectedSection === 'requestTypes',
|
|
1721
1579
|
onClick: function onClick() {
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
backgroundColor: StatusTypes[statusKey].color
|
|
1580
|
+
_this2.setState({
|
|
1581
|
+
selectedSection: 'requestTypes'
|
|
1582
|
+
});
|
|
1726
1583
|
}
|
|
1727
|
-
}
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1584
|
+
});
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
return /*#__PURE__*/React__default['default'].createElement(Components$2.HubSidebar, {
|
|
1588
|
+
sections: [{
|
|
1589
|
+
title: 'Requests',
|
|
1590
|
+
items: sectionItems
|
|
1591
|
+
}]
|
|
1592
|
+
});
|
|
1731
1593
|
}
|
|
1732
1594
|
}, {
|
|
1733
|
-
key: "
|
|
1734
|
-
value: function
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.ProfilePic, {
|
|
1743
|
-
className: "comment_profilePic",
|
|
1744
|
-
size: 25,
|
|
1745
|
-
image: c.User.profilePic
|
|
1746
|
-
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1747
|
-
className: "comment_name"
|
|
1748
|
-
}, c.User.displayName), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1749
|
-
className: "comment_time"
|
|
1750
|
-
}, moment__default['default'].utc(c.Timestamp).local().format('D MMM YYYY • h:mma'))));
|
|
1595
|
+
key: "renderRight",
|
|
1596
|
+
value: function renderRight() {
|
|
1597
|
+
if (this.state.selectedSection === 'requestTypes') {
|
|
1598
|
+
return /*#__PURE__*/React__default['default'].createElement(JobTypes$1, null);
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
return /*#__PURE__*/React__default['default'].createElement(JobList$1, {
|
|
1602
|
+
source: this.state.allList
|
|
1603
|
+
});
|
|
1751
1604
|
}
|
|
1752
1605
|
}, {
|
|
1753
|
-
key: "
|
|
1754
|
-
value: function
|
|
1755
|
-
var _this3 = this;
|
|
1756
|
-
|
|
1757
|
-
if (this.state.loadingComments) return null;
|
|
1606
|
+
key: "render",
|
|
1607
|
+
value: function render() {
|
|
1758
1608
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1759
|
-
className: "
|
|
1760
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1761
|
-
className: "
|
|
1762
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
}, "Page Views"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1766
|
-
className: "commentSection"
|
|
1767
|
-
}, this.state.comments.map(function (c) {
|
|
1768
|
-
return _this3.renderComment(c);
|
|
1769
|
-
})), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1770
|
-
className: "commentReply"
|
|
1771
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1772
|
-
className: "commentReply_button".concat(!___default['default'].isEmpty(this.state.commentInput) ? ' commentReply_button-active' : ''),
|
|
1773
|
-
onClick: this.onAddComment
|
|
1774
|
-
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
1775
|
-
className: "commentReply_icon",
|
|
1776
|
-
name: "paper-plane-o"
|
|
1777
|
-
})), /*#__PURE__*/React__default['default'].createElement(Textarea__default['default'], {
|
|
1778
|
-
id: "commentInput",
|
|
1779
|
-
placeholder: "Reply here...",
|
|
1780
|
-
type: "text",
|
|
1781
|
-
className: "commentReply_input",
|
|
1782
|
-
value: this.state.commentInput,
|
|
1783
|
-
onChange: function onChange(e) {
|
|
1784
|
-
return _this3.onHandleChange(e);
|
|
1785
|
-
}
|
|
1786
|
-
}))));
|
|
1787
|
-
}
|
|
1788
|
-
}, {
|
|
1789
|
-
key: "renderInner",
|
|
1790
|
-
value: function renderInner() {
|
|
1791
|
-
if (this.state.job == null) return null;
|
|
1792
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1793
|
-
style: {
|
|
1794
|
-
paddingBottom: 40
|
|
1795
|
-
}
|
|
1796
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1797
|
-
className: "padding-60 paddingVertical-40 bottomDivideBorder relative"
|
|
1798
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
|
|
1799
|
-
type: "formTitleLarge",
|
|
1800
|
-
className: "marginBottom-24"
|
|
1801
|
-
}, this.state.job.title || 'Request'), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1802
|
-
className: "marginTop-16"
|
|
1803
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1804
|
-
className: 'fieldLabel'
|
|
1805
|
-
}, "Request date"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1806
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1807
|
-
}, moment__default['default'].utc(this.state.job.createdTime).local().format('D MMM YY'))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1808
|
-
className: "marginTop-16"
|
|
1809
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1810
|
-
className: 'fieldLabel'
|
|
1811
|
-
}, "Type"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1812
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1813
|
-
}, this.state.job.type)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1814
|
-
className: "marginTop-16"
|
|
1815
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1816
|
-
className: 'fieldLabel'
|
|
1817
|
-
}, "Location"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1818
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1819
|
-
}, this.state.job.room)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1820
|
-
className: "marginTop-16"
|
|
1821
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1822
|
-
className: 'fieldLabel'
|
|
1823
|
-
}, "Description ", this.state.job.image ? '- (image supplied)' : ''), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1824
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1825
|
-
}, this.state.job.description))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1826
|
-
className: "padding-60 paddingVertical-40 bottomDivideBorder"
|
|
1827
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
|
|
1828
|
-
type: "formTitleSmall",
|
|
1829
|
-
className: "marginBottom-16"
|
|
1830
|
-
}, "Contact Details"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1831
|
-
className: "marginTop-16"
|
|
1832
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1833
|
-
className: 'fieldLabel'
|
|
1834
|
-
}, "Name"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1835
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1836
|
-
}, this.state.job.userName)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1837
|
-
className: "marginTop-16"
|
|
1838
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1839
|
-
className: 'fieldLabel'
|
|
1840
|
-
}, "Contact number"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1841
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1842
|
-
}, ___default['default'].isEmpty(this.state.job.phone) ? 'No phone provided' : this.state.job.phone)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1843
|
-
className: "marginTop-16"
|
|
1844
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1845
|
-
className: 'fieldLabel'
|
|
1846
|
-
}, "Should person be home?"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1847
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1848
|
-
}, this.state.job.isHome ? 'Yes' : 'No')), this.state.job.isHome && this.state.job.homeText && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1849
|
-
className: "marginTop-16"
|
|
1850
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1851
|
-
className: 'fieldLabel'
|
|
1852
|
-
}, "When"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1853
|
-
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
1854
|
-
}, this.state.job.homeText))), (this.state.job.image || this.state.job.images) && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1855
|
-
className: "padding-60 paddingVertical-40 bottomDivideBorder"
|
|
1856
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
|
|
1857
|
-
type: "formTitleSmall",
|
|
1858
|
-
className: "marginBottom-16"
|
|
1859
|
-
}, "Image"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1860
|
-
style: {
|
|
1861
|
-
marginTop: 16,
|
|
1862
|
-
height: 180,
|
|
1863
|
-
width: 260,
|
|
1864
|
-
borderRadius: 4,
|
|
1865
|
-
border: '1px solid #aaa',
|
|
1866
|
-
backgroundColor: '#ddd',
|
|
1867
|
-
backgroundImage: "url(".concat(this.state.job.thumbnail, ")"),
|
|
1868
|
-
backgroundPosition: 'center'
|
|
1869
|
-
}
|
|
1870
|
-
})), this.renderCommentSection());
|
|
1609
|
+
className: "hub-wrapperContainer"
|
|
1610
|
+
}, this.renderLeftBar(), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1611
|
+
className: "hub-headerContentWrapper"
|
|
1612
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$2.Header, null), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1613
|
+
className: "hub-contentWrapper"
|
|
1614
|
+
}, this.renderRight())));
|
|
1871
1615
|
}
|
|
1872
|
-
}
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1616
|
+
}]);
|
|
1617
|
+
|
|
1618
|
+
return RequestsHub;
|
|
1619
|
+
}(React.Component);
|
|
1620
|
+
|
|
1621
|
+
var styles$4 = {
|
|
1622
|
+
sideBarTitleSection: {
|
|
1623
|
+
lineHeight: '40px',
|
|
1624
|
+
marginTop: 30,
|
|
1625
|
+
marginBottom: 30,
|
|
1626
|
+
paddingLeft: 24,
|
|
1627
|
+
paddingRight: 24
|
|
1628
|
+
},
|
|
1629
|
+
sideBarSection: {
|
|
1630
|
+
weight: '100%',
|
|
1631
|
+
minWidth: 200,
|
|
1632
|
+
padding: 32,
|
|
1633
|
+
paddingLeft: 24,
|
|
1634
|
+
cursor: 'pointer',
|
|
1635
|
+
display: 'flex',
|
|
1636
|
+
flexDirection: 'column',
|
|
1637
|
+
justifyContent: 'center'
|
|
1638
|
+
},
|
|
1639
|
+
spinner: {
|
|
1640
|
+
fontSize: 32,
|
|
1641
|
+
color: FeatureConfig.env.colourBrandingOff
|
|
1642
|
+
}
|
|
1643
|
+
};
|
|
1644
|
+
|
|
1645
|
+
var mapStateToProps$2 = function mapStateToProps(state) {
|
|
1646
|
+
var jobs = state.maintenance.jobs;
|
|
1647
|
+
var auth = state.auth;
|
|
1648
|
+
return {
|
|
1649
|
+
jobs: jobs,
|
|
1650
|
+
auth: auth
|
|
1651
|
+
};
|
|
1652
|
+
};
|
|
1653
|
+
|
|
1654
|
+
var RequestsHub$1 = reactRedux.connect(mapStateToProps$2, {
|
|
1655
|
+
jobsLoaded: jobsLoaded
|
|
1656
|
+
})(reactRouter.withRouter(RequestsHub));
|
|
1657
|
+
|
|
1658
|
+
function ownKeys$3(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; }
|
|
1659
|
+
|
|
1660
|
+
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(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$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
1661
|
+
|
|
1662
|
+
function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); 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); }; }
|
|
1663
|
+
|
|
1664
|
+
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; } }
|
|
1665
|
+
var Apis = PlussCore__namespace.Apis,
|
|
1666
|
+
Helper$1 = PlussCore__namespace.Helper,
|
|
1667
|
+
Session$1 = PlussCore__namespace.Session,
|
|
1668
|
+
Colours = PlussCore__namespace.Colours,
|
|
1669
|
+
Components$1 = PlussCore__namespace.Components;
|
|
1670
|
+
|
|
1671
|
+
var Job = /*#__PURE__*/function (_Component) {
|
|
1672
|
+
_inherits__default['default'](Job, _Component);
|
|
1673
|
+
|
|
1674
|
+
var _super = _createSuper$7(Job);
|
|
1675
|
+
|
|
1676
|
+
function Job(props) {
|
|
1677
|
+
var _this;
|
|
1678
|
+
|
|
1679
|
+
_classCallCheck__default['default'](this, Job);
|
|
1680
|
+
|
|
1681
|
+
_this = _super.call(this, props);
|
|
1682
|
+
|
|
1683
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getJob", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
1684
|
+
var res;
|
|
1685
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
1686
|
+
while (1) {
|
|
1687
|
+
switch (_context.prev = _context.next) {
|
|
1688
|
+
case 0:
|
|
1689
|
+
_context.prev = 0;
|
|
1690
|
+
_context.next = 3;
|
|
1691
|
+
return maintenanceActions.getJob(_this.props.auth.site, _this.state.jobId);
|
|
1692
|
+
|
|
1693
|
+
case 3:
|
|
1694
|
+
res = _context.sent;
|
|
1695
|
+
|
|
1696
|
+
_this.setState({
|
|
1697
|
+
updating: false
|
|
1698
|
+
});
|
|
1699
|
+
|
|
1700
|
+
res.data.location = res.data.site;
|
|
1701
|
+
|
|
1702
|
+
_this.setJob(res.data);
|
|
1703
|
+
|
|
1704
|
+
_context.next = 12;
|
|
1705
|
+
break;
|
|
1706
|
+
|
|
1707
|
+
case 9:
|
|
1708
|
+
_context.prev = 9;
|
|
1709
|
+
_context.t0 = _context["catch"](0);
|
|
1710
|
+
console.error('getJob', _context.t0);
|
|
1711
|
+
|
|
1712
|
+
case 12:
|
|
1713
|
+
case "end":
|
|
1714
|
+
return _context.stop();
|
|
1715
|
+
}
|
|
1883
1716
|
}
|
|
1717
|
+
}, _callee, null, [[0, 9]]);
|
|
1718
|
+
})));
|
|
1719
|
+
|
|
1720
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "setJob", function (job) {
|
|
1721
|
+
job.typeIcon = job.type === 'General' ? 'wrench' : 'tree';
|
|
1722
|
+
job.typeColour = job.type === 'General' ? '#666' : 'green';
|
|
1723
|
+
|
|
1724
|
+
if (___default['default'].isEmpty(job.lastActivity)) {
|
|
1725
|
+
job.lastActivity = '-- --';
|
|
1726
|
+
job.noActivity = true;
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
if (___default['default'].isEmpty(job.status)) {
|
|
1730
|
+
job.status = 'Unassigned';
|
|
1731
|
+
job.notStatus = true;
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
if (___default['default'].isEmpty(job.audience)) {
|
|
1735
|
+
job.audience = [{
|
|
1736
|
+
displayName: 'Unassigned',
|
|
1737
|
+
isEmpty: true
|
|
1738
|
+
}];
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1741
|
+
var needToMarkSeen = false;
|
|
1742
|
+
|
|
1743
|
+
if (!job.seen) {
|
|
1744
|
+
job.seen = true;
|
|
1745
|
+
needToMarkSeen = true;
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1748
|
+
_this.setState({
|
|
1749
|
+
job: job
|
|
1750
|
+
}, function () {
|
|
1751
|
+
if (needToMarkSeen) _this.markSeen();
|
|
1752
|
+
});
|
|
1753
|
+
|
|
1754
|
+
_this.props.jobsLoaded([job]);
|
|
1755
|
+
});
|
|
1756
|
+
|
|
1757
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "editJob", function () {});
|
|
1758
|
+
|
|
1759
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "isReadyToSaveNote", function () {
|
|
1760
|
+
var _this$state = _this.state,
|
|
1761
|
+
noteAttachments = _this$state.noteAttachments,
|
|
1762
|
+
noteInput = _this$state.noteInput;
|
|
1763
|
+
if (___default['default'].some(noteAttachments, function (n) {
|
|
1764
|
+
return n.Uploading;
|
|
1765
|
+
})) return false;
|
|
1766
|
+
return !___default['default'].isEmpty(noteInput) || !___default['default'].isEmpty(noteAttachments);
|
|
1767
|
+
});
|
|
1768
|
+
|
|
1769
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenAddNote", function () {
|
|
1770
|
+
_this.setState({
|
|
1771
|
+
addNoteOpen: true,
|
|
1772
|
+
editingNote: null
|
|
1773
|
+
});
|
|
1774
|
+
});
|
|
1775
|
+
|
|
1776
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onCloseAddNote", function () {
|
|
1777
|
+
var newState = {
|
|
1778
|
+
addNoteOpen: false,
|
|
1779
|
+
editingNote: null
|
|
1884
1780
|
};
|
|
1885
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1886
|
-
className: "ticketHistoryEntry",
|
|
1887
|
-
key: i
|
|
1888
|
-
}, /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1889
|
-
className: "ticketHistoryEntry_timestamp"
|
|
1890
|
-
}, moment__default['default'].utc(entryToUse.timestamp).local().format('D MMM YYYY h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1891
|
-
className: "statusLabel statusLabel-large statusLabel-full",
|
|
1892
|
-
style: {
|
|
1893
|
-
backgroundColor: StatusTypes[entryToUse.status].color
|
|
1894
|
-
}
|
|
1895
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1896
|
-
className: "statusLabel_text"
|
|
1897
|
-
}, e ? "Marked as ".concat(StatusTypes[entryToUse.status].text) : 'Job opened')));
|
|
1898
|
-
}
|
|
1899
|
-
}, {
|
|
1900
|
-
key: "renderNote",
|
|
1901
|
-
value: function renderNote(note, index) {
|
|
1902
|
-
var _this4 = this;
|
|
1903
1781
|
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
}
|
|
1908
|
-
className: "ticketHistoryEntry_timestamp"
|
|
1909
|
-
}, moment__default['default'].utc(note.Timestamp).local().format('D MMM YYYY h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1910
|
-
className: "statusLabel statusLabel-large statusLabel-full",
|
|
1911
|
-
style: {
|
|
1912
|
-
backgroundColor: '#6e79c5'
|
|
1913
|
-
}
|
|
1914
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
1915
|
-
className: "statusLabel_text"
|
|
1916
|
-
}, "Staff Notes")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1917
|
-
className: "maintenanceNote"
|
|
1918
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1919
|
-
className: "maintenanceNote_top"
|
|
1920
|
-
}, this.props.auth && this.props.auth.user && this.props.auth.user.Id === note.User.id && /*#__PURE__*/React__default['default'].createElement(Components$2.SVGIcon, {
|
|
1921
|
-
colour: Colours.COLOUR_DUSK_LIGHT,
|
|
1922
|
-
icon: "more15",
|
|
1923
|
-
className: "maintenanceNote_moreIcon",
|
|
1924
|
-
onClick: function onClick() {
|
|
1925
|
-
return _this4.onOpenNoteMenu(index);
|
|
1926
|
-
}
|
|
1927
|
-
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1928
|
-
className: "maintenanceNote_name"
|
|
1929
|
-
}, note.User.displayName), this.state.noteMenuOpen === index && /*#__PURE__*/React__default['default'].createElement(Components$2.MoreMenu, {
|
|
1930
|
-
options: [{
|
|
1931
|
-
key: 'edit',
|
|
1932
|
-
text: 'Edit',
|
|
1933
|
-
onPress: function onPress() {
|
|
1934
|
-
return _this4.onOpenEditNote(note);
|
|
1935
|
-
}
|
|
1936
|
-
}, {
|
|
1937
|
-
key: 'delete',
|
|
1938
|
-
text: 'Delete',
|
|
1939
|
-
onPress: function onPress() {
|
|
1940
|
-
return _this4.onDeleteNote(note);
|
|
1941
|
-
}
|
|
1942
|
-
}]
|
|
1943
|
-
})), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
1944
|
-
className: "maintenanceNote_text"
|
|
1945
|
-
}, Helper$2.toParagraphed(note.Note)), note.Attachments.map(function (a, i) {
|
|
1946
|
-
return _this4.renderAttachment(a, i);
|
|
1947
|
-
})));
|
|
1948
|
-
}
|
|
1949
|
-
}, {
|
|
1950
|
-
key: "renderOverview",
|
|
1951
|
-
value: function renderOverview() {
|
|
1952
|
-
var _this5 = this;
|
|
1782
|
+
if (!!_this.state.editingNote) {
|
|
1783
|
+
newState.noteInput = '';
|
|
1784
|
+
newState.noteAttachments = [];
|
|
1785
|
+
}
|
|
1953
1786
|
|
|
1954
|
-
|
|
1955
|
-
|
|
1787
|
+
_this.setState(newState);
|
|
1788
|
+
});
|
|
1789
|
+
|
|
1790
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenNoteMenu", function (index) {
|
|
1791
|
+
if (_this.state.noteMenuOpen === index) {
|
|
1792
|
+
_this.setState({
|
|
1793
|
+
noteMenuOpen: null
|
|
1794
|
+
});
|
|
1795
|
+
} else {
|
|
1796
|
+
_this.setState({
|
|
1797
|
+
noteMenuOpen: index
|
|
1798
|
+
});
|
|
1799
|
+
}
|
|
1800
|
+
});
|
|
1801
|
+
|
|
1802
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandlePDFFileChange", function (event) {
|
|
1803
|
+
var file = event.target.files[0];
|
|
1804
|
+
if (!file || _this.state.uploadingNoteAttachment) return;
|
|
1805
|
+
|
|
1806
|
+
var noteAttachments = _toConsumableArray__default['default'](_this.state.noteAttachments);
|
|
1807
|
+
|
|
1808
|
+
var newAttachment = {
|
|
1809
|
+
Uploading: true,
|
|
1810
|
+
Title: file.name
|
|
1811
|
+
};
|
|
1812
|
+
noteAttachments.push(newAttachment);
|
|
1813
|
+
|
|
1814
|
+
_this.setState({
|
|
1815
|
+
noteAttachments: noteAttachments
|
|
1816
|
+
});
|
|
1817
|
+
|
|
1818
|
+
Apis.fileActions.uploadMediaAsync(file, file.name).then(function (fileRes) {
|
|
1819
|
+
newAttachment.Source = fileRes;
|
|
1820
|
+
newAttachment.Uploading = false;
|
|
1821
|
+
|
|
1822
|
+
_this.setState({
|
|
1823
|
+
noteAttachments: _toConsumableArray__default['default'](_this.state.noteAttachments)
|
|
1824
|
+
});
|
|
1825
|
+
}).catch(function (uploadErrorRes) {
|
|
1826
|
+
console.log(uploadErrorRes);
|
|
1827
|
+
newAttachment.Uploading = false;
|
|
1828
|
+
|
|
1829
|
+
_this.setState({
|
|
1830
|
+
noteAttachments: _toConsumableArray__default['default'](_this.state.noteAttachments)
|
|
1831
|
+
});
|
|
1832
|
+
});
|
|
1833
|
+
event.target.value = '';
|
|
1834
|
+
});
|
|
1835
|
+
|
|
1836
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onRemoveAttachment", function (a) {
|
|
1837
|
+
var index = _this.state.noteAttachments.indexOf(a);
|
|
1838
|
+
|
|
1839
|
+
if (index > -1) {
|
|
1840
|
+
var newAttachments = _toConsumableArray__default['default'](_this.state.noteAttachments);
|
|
1841
|
+
|
|
1842
|
+
newAttachments.splice(index, 1);
|
|
1843
|
+
|
|
1844
|
+
_this.setState({
|
|
1845
|
+
noteAttachments: newAttachments
|
|
1846
|
+
});
|
|
1847
|
+
}
|
|
1848
|
+
});
|
|
1849
|
+
|
|
1850
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onConfirmAddNote", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
|
|
1851
|
+
var res;
|
|
1852
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
|
|
1853
|
+
while (1) {
|
|
1854
|
+
switch (_context2.prev = _context2.next) {
|
|
1855
|
+
case 0:
|
|
1856
|
+
if (_this.isReadyToSaveNote()) {
|
|
1857
|
+
_context2.next = 2;
|
|
1858
|
+
break;
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1861
|
+
return _context2.abrupt("return");
|
|
1862
|
+
|
|
1863
|
+
case 2:
|
|
1864
|
+
_context2.prev = 2;
|
|
1865
|
+
|
|
1866
|
+
_this.setState({
|
|
1867
|
+
submittingNote: true
|
|
1868
|
+
});
|
|
1956
1869
|
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1870
|
+
_context2.next = 6;
|
|
1871
|
+
return _this.state.editingNote ? maintenanceActions.editNote(_this.state.jobId, _this.state.editingNote, _this.state.noteInput, _this.state.noteAttachments.map(function (a) {
|
|
1872
|
+
return {
|
|
1873
|
+
Title: a.Title,
|
|
1874
|
+
Source: a.Source
|
|
1875
|
+
};
|
|
1876
|
+
})) : maintenanceActions.addNote(_this.state.jobId, _this.state.noteInput, _this.state.noteAttachments.map(function (a) {
|
|
1877
|
+
return {
|
|
1878
|
+
Title: a.Title,
|
|
1879
|
+
Source: a.Source
|
|
1880
|
+
};
|
|
1881
|
+
}));
|
|
1967
1882
|
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
1971
|
-
className: "newTopBar clearfix flex flex-reverse"
|
|
1972
|
-
}, this.renderNotesButton(), this.renderStatusLabel(), /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
|
|
1973
|
-
type: "formTitleSmall",
|
|
1974
|
-
className: "flex-1"
|
|
1975
|
-
}, "Status History")), this.renderHistoryEntry(null, -1), ___default['default'].map(source, function (e, i) {
|
|
1976
|
-
switch (e.EntryType) {
|
|
1977
|
-
case 'status':
|
|
1978
|
-
return _this5.renderHistoryEntry(e, i);
|
|
1883
|
+
case 6:
|
|
1884
|
+
res = _context2.sent;
|
|
1979
1885
|
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
buttonType: "tertiary",
|
|
1991
|
-
onClick: function onClick() {
|
|
1992
|
-
window.history.back();
|
|
1993
|
-
},
|
|
1994
|
-
isActive: true,
|
|
1995
|
-
style: {
|
|
1996
|
-
marginRight: 16
|
|
1997
|
-
}
|
|
1998
|
-
}, "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, {
|
|
1999
|
-
to: "/requestsHub/job/".concat(this.state.jobId)
|
|
2000
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
|
|
2001
|
-
inline: true,
|
|
2002
|
-
style: {
|
|
2003
|
-
marginRight: 25
|
|
2004
|
-
},
|
|
2005
|
-
buttonType: "outlined",
|
|
2006
|
-
isActive: true,
|
|
2007
|
-
onClick: this.editJob
|
|
2008
|
-
}, "Edit Details")));
|
|
2009
|
-
}
|
|
2010
|
-
}, {
|
|
2011
|
-
key: "renderAttachment",
|
|
2012
|
-
value: function renderAttachment(attachment, index, onRemove) {
|
|
2013
|
-
if (!attachment) return null;
|
|
2014
|
-
return /*#__PURE__*/React__default['default'].createElement(Components$2.Attachment, {
|
|
2015
|
-
key: index,
|
|
2016
|
-
uploading: attachment.Uploading,
|
|
2017
|
-
source: attachment.Source,
|
|
2018
|
-
title: attachment.Title,
|
|
2019
|
-
onRemove: onRemove ? function () {
|
|
2020
|
-
return onRemove(attachment);
|
|
2021
|
-
} : undefined
|
|
2022
|
-
});
|
|
2023
|
-
}
|
|
2024
|
-
}, {
|
|
2025
|
-
key: "renderAddNotePopup",
|
|
2026
|
-
value: function renderAddNotePopup() {
|
|
2027
|
-
var _this6 = this;
|
|
1886
|
+
_this.setState({
|
|
1887
|
+
job: res.data.job,
|
|
1888
|
+
submittingNote: false,
|
|
1889
|
+
addNoteOpen: false,
|
|
1890
|
+
noteInput: '',
|
|
1891
|
+
noteAttachments: [],
|
|
1892
|
+
editingNote: null
|
|
1893
|
+
}, function () {
|
|
1894
|
+
_this.props.jobsLoaded([_this.state.job]);
|
|
1895
|
+
});
|
|
2028
1896
|
|
|
2029
|
-
|
|
1897
|
+
_context2.next = 13;
|
|
1898
|
+
break;
|
|
2030
1899
|
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
hasPadding: true
|
|
2036
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2037
|
-
className: "flex flex-center-row"
|
|
2038
|
-
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2039
|
-
className: "spinner",
|
|
2040
|
-
name: "spinner fa-pulse fa-fw"
|
|
2041
|
-
})));
|
|
2042
|
-
}
|
|
1900
|
+
case 10:
|
|
1901
|
+
_context2.prev = 10;
|
|
1902
|
+
_context2.t0 = _context2["catch"](2);
|
|
1903
|
+
console.error('onConfirmAddNote', _context2.t0);
|
|
2043
1904
|
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
hasPadding: true,
|
|
2049
|
-
buttons: [{
|
|
2050
|
-
type: 'primary',
|
|
2051
|
-
onClick: this.onConfirmAddNote,
|
|
2052
|
-
isActive: this.isReadyToSaveNote(),
|
|
2053
|
-
text: 'Save'
|
|
2054
|
-
}, {
|
|
2055
|
-
type: 'tertiary',
|
|
2056
|
-
onClick: this.onCloseAddNote,
|
|
2057
|
-
isActive: true,
|
|
2058
|
-
text: 'Cancel'
|
|
2059
|
-
}]
|
|
2060
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
|
|
2061
|
-
id: "noteInput",
|
|
2062
|
-
type: "textarea",
|
|
2063
|
-
componentClass: "textarea",
|
|
2064
|
-
value: this.state.noteInput,
|
|
2065
|
-
placeholder: "Enter note",
|
|
2066
|
-
onChange: function onChange(e) {
|
|
2067
|
-
return _this6.onHandleChange(e);
|
|
2068
|
-
},
|
|
2069
|
-
inputStyle: {
|
|
2070
|
-
width: 400
|
|
2071
|
-
}
|
|
2072
|
-
}), /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
|
|
2073
|
-
type: "h5"
|
|
2074
|
-
}, "Attachments"), this.state.noteAttachments.map(function (a, i) {
|
|
2075
|
-
return _this6.renderAttachment(a, i, _this6.onRemoveAttachment);
|
|
2076
|
-
}), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
2077
|
-
ref: function ref(input) {
|
|
2078
|
-
return _this6.attachmentInput = input;
|
|
2079
|
-
},
|
|
2080
|
-
id: "attachmentInput",
|
|
2081
|
-
type: "file",
|
|
2082
|
-
className: "fileInput",
|
|
2083
|
-
onChange: function onChange(e) {
|
|
2084
|
-
return _this6.onHandlePDFFileChange(e);
|
|
2085
|
-
},
|
|
2086
|
-
accept: "application/pdf"
|
|
2087
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2088
|
-
className: "iconTextButton",
|
|
2089
|
-
onClick: function onClick() {
|
|
2090
|
-
_this6.attachmentInput.click();
|
|
1905
|
+
case 13:
|
|
1906
|
+
case "end":
|
|
1907
|
+
return _context2.stop();
|
|
1908
|
+
}
|
|
2091
1909
|
}
|
|
2092
|
-
},
|
|
2093
|
-
|
|
2094
|
-
name: "paperclip"
|
|
2095
|
-
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2096
|
-
className: "iconTextButton_text"
|
|
2097
|
-
}, "Add Attachment")));
|
|
2098
|
-
}
|
|
2099
|
-
}, {
|
|
2100
|
-
key: "render",
|
|
2101
|
-
value: function render() {
|
|
2102
|
-
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, {
|
|
2103
|
-
className: "pageSectionWrapper--newPopup"
|
|
2104
|
-
}, this.renderInner()), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageSection, {
|
|
2105
|
-
className: "pageSectionWrapper--newPopupSide pageSectionWrapper--newPopupSide-fixedWidth"
|
|
2106
|
-
}, this.renderOverview())), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageBottomButtons, null, this.renderButtons()));
|
|
2107
|
-
}
|
|
2108
|
-
}]);
|
|
1910
|
+
}, _callee2, null, [[2, 10]]);
|
|
1911
|
+
})));
|
|
2109
1912
|
|
|
2110
|
-
|
|
2111
|
-
|
|
1913
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onDeleteNote", function (n) {
|
|
1914
|
+
if (!window.confirm('Are you sure you want to delete that note?')) {
|
|
1915
|
+
_this.setState({
|
|
1916
|
+
noteMenuOpen: null
|
|
1917
|
+
});
|
|
2112
1918
|
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
return {
|
|
2116
|
-
auth: auth
|
|
2117
|
-
};
|
|
2118
|
-
};
|
|
1919
|
+
return;
|
|
1920
|
+
}
|
|
2119
1921
|
|
|
2120
|
-
|
|
2121
|
-
jobsLoaded: jobsLoaded
|
|
2122
|
-
})(reactRouter.withRouter(Job));
|
|
1922
|
+
maintenanceActions.deleteNote(_this.state.jobId, n.Id);
|
|
2123
1923
|
|
|
2124
|
-
|
|
1924
|
+
var newNotes = ___default['default'].filter(_this.state.job.Notes, function (note) {
|
|
1925
|
+
return note.Id !== n.Id;
|
|
1926
|
+
});
|
|
2125
1927
|
|
|
2126
|
-
|
|
2127
|
-
var Actions = PlussCore__namespace.Actions,
|
|
2128
|
-
Components$1 = PlussCore__namespace.Components,
|
|
2129
|
-
Helper$1 = PlussCore__namespace.Helper,
|
|
2130
|
-
Session$1 = PlussCore__namespace.Session;
|
|
1928
|
+
var newJob = _objectSpread$3({}, _this.state.job);
|
|
2131
1929
|
|
|
2132
|
-
|
|
2133
|
-
_inherits__default['default'](AddJob, _Component);
|
|
1930
|
+
newJob.Notes = newNotes;
|
|
2134
1931
|
|
|
2135
|
-
|
|
1932
|
+
_this.setState({
|
|
1933
|
+
job: newJob,
|
|
1934
|
+
noteMenuOpen: null
|
|
1935
|
+
});
|
|
1936
|
+
});
|
|
2136
1937
|
|
|
2137
|
-
|
|
2138
|
-
|
|
1938
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onOpenEditNote", function (n) {
|
|
1939
|
+
_this.setState({
|
|
1940
|
+
noteAttachments: n.Attachments || [],
|
|
1941
|
+
noteInput: n.Note || '',
|
|
1942
|
+
addNoteOpen: true,
|
|
1943
|
+
editingNote: n.Id,
|
|
1944
|
+
noteMenuOpen: null
|
|
1945
|
+
});
|
|
1946
|
+
});
|
|
2139
1947
|
|
|
2140
|
-
|
|
1948
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "markSeen", function () {
|
|
1949
|
+
var job = _this.state.job;
|
|
1950
|
+
var auth = _this.props.auth; // Must have maintenance permission and not the requester
|
|
2141
1951
|
|
|
2142
|
-
|
|
1952
|
+
if (!Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) return;
|
|
1953
|
+
if (auth.user.Id === job.userID) return;
|
|
2143
1954
|
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
1955
|
+
_this.setState({
|
|
1956
|
+
updating: true
|
|
1957
|
+
}, /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3() {
|
|
1958
|
+
var update;
|
|
1959
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
|
|
1960
|
+
while (1) {
|
|
1961
|
+
switch (_context3.prev = _context3.next) {
|
|
1962
|
+
case 0:
|
|
1963
|
+
_context3.prev = 0;
|
|
1964
|
+
update = {
|
|
1965
|
+
id: job.id,
|
|
1966
|
+
seen: true,
|
|
1967
|
+
status: job.status || 'Unassigned'
|
|
1968
|
+
};
|
|
1969
|
+
_context3.next = 4;
|
|
1970
|
+
return maintenanceActions.editJob(update, auth.site);
|
|
2153
1971
|
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
1972
|
+
case 4:
|
|
1973
|
+
_context3.next = 11;
|
|
1974
|
+
break;
|
|
2157
1975
|
|
|
2158
|
-
|
|
1976
|
+
case 6:
|
|
1977
|
+
_context3.prev = 6;
|
|
1978
|
+
_context3.t0 = _context3["catch"](0);
|
|
2159
1979
|
|
|
2160
|
-
|
|
2161
|
-
|
|
1980
|
+
_this.setState({
|
|
1981
|
+
updating: false
|
|
1982
|
+
});
|
|
2162
1983
|
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
_context.t0 = _context["catch"](0);
|
|
2166
|
-
console.error('getJob', _context.t0);
|
|
1984
|
+
console.log('markSeen error', _context3.t0);
|
|
1985
|
+
alert('Something went wrong with the request. Please try again.');
|
|
2167
1986
|
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
1987
|
+
case 11:
|
|
1988
|
+
case "end":
|
|
1989
|
+
return _context3.stop();
|
|
1990
|
+
}
|
|
2171
1991
|
}
|
|
2172
|
-
}
|
|
2173
|
-
}
|
|
2174
|
-
})
|
|
1992
|
+
}, _callee3, null, [[0, 6]]);
|
|
1993
|
+
})));
|
|
1994
|
+
});
|
|
2175
1995
|
|
|
2176
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
2177
|
-
|
|
2178
|
-
|
|
1996
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getComments", function () {
|
|
1997
|
+
reactionActions.getComments(_this.state.jobId, 'maintenancerequest', 0).then(function (res) {
|
|
1998
|
+
_this.setState({
|
|
1999
|
+
comments: res.data
|
|
2000
|
+
});
|
|
2001
|
+
});
|
|
2002
|
+
});
|
|
2003
|
+
|
|
2004
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onAddComment", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4() {
|
|
2005
|
+
var _this$state2, commentInput, jobId, job, comments, res;
|
|
2006
|
+
|
|
2007
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee4$(_context4) {
|
|
2179
2008
|
while (1) {
|
|
2180
|
-
switch (
|
|
2009
|
+
switch (_context4.prev = _context4.next) {
|
|
2181
2010
|
case 0:
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
return maintenanceActions.getJobTypes(_this.props.auth.site);
|
|
2185
|
-
|
|
2186
|
-
case 3:
|
|
2187
|
-
res = _context2.sent;
|
|
2011
|
+
_this$state2 = _this.state, commentInput = _this$state2.commentInput, jobId = _this$state2.jobId, job = _this$state2.job, comments = _this$state2.comments;
|
|
2012
|
+
_context4.prev = 1;
|
|
2188
2013
|
|
|
2189
2014
|
_this.setState({
|
|
2190
|
-
|
|
2015
|
+
commentInput: ''
|
|
2191
2016
|
});
|
|
2192
2017
|
|
|
2193
|
-
|
|
2018
|
+
_context4.next = 5;
|
|
2019
|
+
return reactionActions.addComment(jobId, 'maintenancerequest', job.title, job.site, commentInput);
|
|
2194
2020
|
|
|
2195
|
-
|
|
2021
|
+
case 5:
|
|
2022
|
+
res = _context4.sent;
|
|
2023
|
+
|
|
2024
|
+
_this.setState({
|
|
2025
|
+
comments: [].concat(_toConsumableArray__default['default'](comments), [res.data])
|
|
2026
|
+
});
|
|
2027
|
+
|
|
2028
|
+
_context4.next = 12;
|
|
2196
2029
|
break;
|
|
2197
2030
|
|
|
2198
|
-
case
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
console.error('
|
|
2031
|
+
case 9:
|
|
2032
|
+
_context4.prev = 9;
|
|
2033
|
+
_context4.t0 = _context4["catch"](1);
|
|
2034
|
+
console.error('onAddComment', _context4.t0);
|
|
2202
2035
|
|
|
2203
|
-
case
|
|
2036
|
+
case 12:
|
|
2204
2037
|
case "end":
|
|
2205
|
-
return
|
|
2038
|
+
return _context4.stop();
|
|
2206
2039
|
}
|
|
2207
2040
|
}
|
|
2208
|
-
},
|
|
2041
|
+
}, _callee4, null, [[1, 9]]);
|
|
2209
2042
|
})));
|
|
2210
2043
|
|
|
2211
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getDefaultJob", function () {
|
|
2212
|
-
if (_this.state.types.length !== 0 && _this.state.jobId == null) {
|
|
2213
|
-
_this.setState({
|
|
2214
|
-
type: _this.state.types[0].typeName
|
|
2215
|
-
});
|
|
2216
|
-
}
|
|
2217
|
-
});
|
|
2218
|
-
|
|
2219
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onSelectType", function (key, e) {
|
|
2220
|
-
_this.setState({
|
|
2221
|
-
type: key
|
|
2222
|
-
});
|
|
2223
|
-
});
|
|
2224
|
-
|
|
2225
2044
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onHandleChange", function (event) {
|
|
2226
2045
|
var stateChange = {};
|
|
2227
2046
|
stateChange[event.target.getAttribute('id')] = event.target.value;
|
|
@@ -2229,348 +2048,534 @@ var AddJob = /*#__PURE__*/function (_Component) {
|
|
|
2229
2048
|
_this.setState(stateChange);
|
|
2230
2049
|
});
|
|
2231
2050
|
|
|
2232
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
2051
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onToggleStatusChanger", function () {
|
|
2233
2052
|
_this.setState({
|
|
2234
|
-
|
|
2053
|
+
statusChangerOpen: !_this.state.statusChangerOpen
|
|
2235
2054
|
});
|
|
2055
|
+
});
|
|
2236
2056
|
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2057
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onSelectStatus", /*#__PURE__*/function () {
|
|
2058
|
+
var _ref5 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5(status) {
|
|
2059
|
+
var res;
|
|
2060
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee5$(_context5) {
|
|
2061
|
+
while (1) {
|
|
2062
|
+
switch (_context5.prev = _context5.next) {
|
|
2063
|
+
case 0:
|
|
2064
|
+
_this.setState({
|
|
2065
|
+
job: _objectSpread$3(_objectSpread$3({}, _this.state.job), {}, {
|
|
2066
|
+
status: status
|
|
2067
|
+
}),
|
|
2068
|
+
statusChangerOpen: false
|
|
2069
|
+
});
|
|
2246
2070
|
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2071
|
+
_context5.prev = 1;
|
|
2072
|
+
_context5.next = 4;
|
|
2073
|
+
return maintenanceActions.editJobStatus(_this.state.job.id, status);
|
|
2250
2074
|
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
userID: _this.state.userID,
|
|
2254
|
-
userName: _this.state.userName,
|
|
2255
|
-
room: _this.state.room,
|
|
2256
|
-
phone: _this.state.phone,
|
|
2257
|
-
location: _this.state.location,
|
|
2258
|
-
title: _this.state.title,
|
|
2259
|
-
description: _this.state.description,
|
|
2260
|
-
isHome: _this.state.isHome,
|
|
2261
|
-
homeText: _this.state.homeText,
|
|
2262
|
-
type: _this.state.type,
|
|
2263
|
-
date: null,
|
|
2264
|
-
image: _this.state.image
|
|
2265
|
-
};
|
|
2075
|
+
case 4:
|
|
2076
|
+
res = _context5.sent;
|
|
2266
2077
|
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
});
|
|
2078
|
+
_this.setState({
|
|
2079
|
+
job: res.data.job
|
|
2080
|
+
}, function () {
|
|
2081
|
+
_this.props.jobsLoaded([_this.state.job]);
|
|
2082
|
+
});
|
|
2273
2083
|
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
_this.setState({
|
|
2277
|
-
updating: false
|
|
2278
|
-
});
|
|
2084
|
+
_context5.next = 11;
|
|
2085
|
+
break;
|
|
2279
2086
|
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
job.userID = 'undefined';
|
|
2285
|
-
maintenanceActions.createJob(job).then(function (res) {
|
|
2286
|
-
_this.setState({
|
|
2287
|
-
success: true,
|
|
2288
|
-
updating: false
|
|
2289
|
-
});
|
|
2087
|
+
case 8:
|
|
2088
|
+
_context5.prev = 8;
|
|
2089
|
+
_context5.t0 = _context5["catch"](1);
|
|
2090
|
+
console.error('onSelectStatus', _context5.t0);
|
|
2290
2091
|
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
}
|
|
2092
|
+
case 11:
|
|
2093
|
+
case "end":
|
|
2094
|
+
return _context5.stop();
|
|
2095
|
+
}
|
|
2096
|
+
}
|
|
2097
|
+
}, _callee5, null, [[1, 8]]);
|
|
2098
|
+
}));
|
|
2296
2099
|
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
}
|
|
2300
|
-
});
|
|
2100
|
+
return function (_x) {
|
|
2101
|
+
return _ref5.apply(this, arguments);
|
|
2102
|
+
};
|
|
2103
|
+
}());
|
|
2301
2104
|
|
|
2302
2105
|
_this.state = {
|
|
2303
|
-
jobId: Helper$1.safeReadParams(
|
|
2106
|
+
jobId: Helper$1.safeReadParams(props, 'jobId') ? props.match.params.jobId : null,
|
|
2304
2107
|
job: null,
|
|
2305
2108
|
showingSelector: false,
|
|
2306
2109
|
updating: false,
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
location: _this.props.auth.site,
|
|
2315
|
-
title: '',
|
|
2316
|
-
description: '',
|
|
2317
|
-
isHome: false,
|
|
2318
|
-
homeText: '',
|
|
2319
|
-
type: 'General',
|
|
2320
|
-
image: null,
|
|
2321
|
-
thumbnail: null,
|
|
2322
|
-
showWarnings: false,
|
|
2323
|
-
success: false
|
|
2110
|
+
comments: [],
|
|
2111
|
+
commentInput: '',
|
|
2112
|
+
loadingComments: false,
|
|
2113
|
+
statusChangerOpen: false,
|
|
2114
|
+
addNoteOpen: false,
|
|
2115
|
+
noteAttachments: [],
|
|
2116
|
+
noteInput: ''
|
|
2324
2117
|
};
|
|
2325
2118
|
return _this;
|
|
2326
2119
|
}
|
|
2327
2120
|
|
|
2328
|
-
_createClass__default['default'](
|
|
2329
|
-
key: "
|
|
2330
|
-
value: function
|
|
2121
|
+
_createClass__default['default'](Job, [{
|
|
2122
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
2123
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
2331
2124
|
Session$1.checkLoggedIn(this, this.props.auth);
|
|
2332
2125
|
}
|
|
2333
2126
|
}, {
|
|
2334
|
-
key: "componentDidMount",
|
|
2335
|
-
value: function componentDidMount() {
|
|
2336
|
-
this.
|
|
2337
|
-
|
|
2338
|
-
|
|
2127
|
+
key: "componentDidMount",
|
|
2128
|
+
value: function componentDidMount() {
|
|
2129
|
+
if (this.state.jobId) {
|
|
2130
|
+
this.getJob();
|
|
2131
|
+
this.getComments();
|
|
2132
|
+
}
|
|
2133
|
+
}
|
|
2134
|
+
}, {
|
|
2135
|
+
key: "renderStatusLabel",
|
|
2136
|
+
value: function renderStatusLabel() {
|
|
2137
|
+
if (!this.state.job.status) return null;
|
|
2138
|
+
var auth = this.props.auth;
|
|
2139
|
+
|
|
2140
|
+
if (Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) {
|
|
2141
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2142
|
+
className: "statusLabel pointer",
|
|
2143
|
+
onClick: this.onToggleStatusChanger,
|
|
2144
|
+
style: {
|
|
2145
|
+
backgroundColor: StatusTypes[this.state.job.status].color
|
|
2146
|
+
}
|
|
2147
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2148
|
+
className: "statusLabel_text"
|
|
2149
|
+
}, StatusTypes[this.state.job.status].text), this.renderStatusChanger());
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2153
|
+
className: "statusLabel",
|
|
2154
|
+
style: {
|
|
2155
|
+
backgroundColor: StatusTypes[this.state.job.status].color
|
|
2156
|
+
}
|
|
2157
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2158
|
+
className: "statusLabel_text"
|
|
2159
|
+
}, StatusTypes[this.state.job.status].text));
|
|
2160
|
+
}
|
|
2161
|
+
}, {
|
|
2162
|
+
key: "renderNotesButton",
|
|
2163
|
+
value: function renderNotesButton() {
|
|
2164
|
+
var auth = this.props.auth;
|
|
2165
|
+
if (!Session$1.validateAccess(auth.site, 'maintenanceTracking', auth)) return null;
|
|
2166
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2167
|
+
className: "statusLabel pointer",
|
|
2168
|
+
onClick: this.onOpenAddNote,
|
|
2169
|
+
style: {
|
|
2170
|
+
backgroundColor: FeatureConfig.env.colourBrandingMain,
|
|
2171
|
+
marginLeft: 8
|
|
2172
|
+
}
|
|
2173
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2174
|
+
className: "statusLabel_text"
|
|
2175
|
+
}, "Add Note"));
|
|
2339
2176
|
}
|
|
2340
2177
|
}, {
|
|
2341
|
-
key: "
|
|
2342
|
-
value: function
|
|
2178
|
+
key: "renderStatusChanger",
|
|
2179
|
+
value: function renderStatusChanger() {
|
|
2343
2180
|
var _this2 = this;
|
|
2344
2181
|
|
|
2345
|
-
|
|
2346
|
-
return
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2182
|
+
if (!this.state.statusChangerOpen) return null;
|
|
2183
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2184
|
+
className: "statusChanger statusChanger-maintenance"
|
|
2185
|
+
}, Object.keys(StatusTypes).map(function (statusKey) {
|
|
2186
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2187
|
+
key: statusKey,
|
|
2188
|
+
className: "statusLabel",
|
|
2189
|
+
onClick: function onClick() {
|
|
2190
|
+
return _this2.onSelectStatus(statusKey);
|
|
2191
|
+
},
|
|
2192
|
+
style: {
|
|
2193
|
+
backgroundColor: StatusTypes[statusKey].color
|
|
2194
|
+
}
|
|
2195
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2196
|
+
className: "statusLabel_text"
|
|
2197
|
+
}, StatusTypes[statusKey].text));
|
|
2198
|
+
}));
|
|
2199
|
+
}
|
|
2200
|
+
}, {
|
|
2201
|
+
key: "renderComment",
|
|
2202
|
+
value: function renderComment(c) {
|
|
2203
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2204
|
+
key: c.Id,
|
|
2205
|
+
className: "comment"
|
|
2206
|
+
}, /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2207
|
+
className: "comment_text"
|
|
2208
|
+
}, Helper$1.toParagraphed(c.Comment)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2209
|
+
className: "comment_bottom"
|
|
2210
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.ProfilePic, {
|
|
2211
|
+
className: "comment_profilePic",
|
|
2212
|
+
size: 25,
|
|
2213
|
+
image: c.User.profilePic
|
|
2214
|
+
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2215
|
+
className: "comment_name"
|
|
2216
|
+
}, c.User.displayName), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2217
|
+
className: "comment_time"
|
|
2218
|
+
}, moment__default['default'].utc(c.Timestamp).local().format('D MMM YYYY • h:mma'))));
|
|
2219
|
+
}
|
|
2220
|
+
}, {
|
|
2221
|
+
key: "renderCommentSection",
|
|
2222
|
+
value: function renderCommentSection() {
|
|
2223
|
+
var _this3 = this;
|
|
2354
2224
|
|
|
2355
|
-
|
|
2356
|
-
|
|
2225
|
+
if (this.state.loadingComments) return null;
|
|
2226
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2227
|
+
className: "padding-60 paddingLeft-20"
|
|
2228
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2229
|
+
className: "newTopBar paddingLeft-40"
|
|
2230
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2231
|
+
type: "formTitleSmall",
|
|
2232
|
+
className: "marginBottom-16"
|
|
2233
|
+
}, "Comments"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2234
|
+
className: "commentSection"
|
|
2235
|
+
}, this.state.comments.map(function (c) {
|
|
2236
|
+
return _this3.renderComment(c);
|
|
2237
|
+
})), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2238
|
+
className: "commentReply"
|
|
2239
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2240
|
+
className: "commentReply_button".concat(!___default['default'].isEmpty(this.state.commentInput) ? ' commentReply_button-active' : ''),
|
|
2241
|
+
onClick: this.onAddComment
|
|
2242
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2243
|
+
className: "commentReply_icon",
|
|
2244
|
+
name: "paper-plane-o"
|
|
2245
|
+
})), /*#__PURE__*/React__default['default'].createElement(Textarea__default['default'], {
|
|
2246
|
+
id: "commentInput",
|
|
2247
|
+
placeholder: "Reply here...",
|
|
2248
|
+
type: "text",
|
|
2249
|
+
className: "commentReply_input",
|
|
2250
|
+
value: this.state.commentInput,
|
|
2251
|
+
onChange: function onChange(e) {
|
|
2252
|
+
return _this3.onHandleChange(e);
|
|
2253
|
+
}
|
|
2254
|
+
}))));
|
|
2357
2255
|
}
|
|
2358
2256
|
}, {
|
|
2359
|
-
key: "
|
|
2360
|
-
value: function
|
|
2361
|
-
if (
|
|
2362
|
-
return /*#__PURE__*/React__default['default'].createElement(
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2257
|
+
key: "renderInner",
|
|
2258
|
+
value: function renderInner() {
|
|
2259
|
+
if (this.state.job == null) return null;
|
|
2260
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2261
|
+
style: {
|
|
2262
|
+
paddingBottom: 40
|
|
2263
|
+
}
|
|
2264
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2265
|
+
className: "padding-60 paddingVertical-40 bottomDivideBorder relative"
|
|
2266
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2267
|
+
type: "formTitleLarge",
|
|
2268
|
+
className: "marginBottom-24"
|
|
2269
|
+
}, this.state.job.title || 'Request'), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2270
|
+
className: "marginTop-16"
|
|
2271
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2272
|
+
className: 'fieldLabel'
|
|
2273
|
+
}, "Request date"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2274
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2275
|
+
}, moment__default['default'].utc(this.state.job.createdTime).local().format('D MMM YY'))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2276
|
+
className: "marginTop-16"
|
|
2277
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2278
|
+
className: 'fieldLabel'
|
|
2279
|
+
}, "Type"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2280
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2281
|
+
}, this.state.job.type)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2282
|
+
className: "marginTop-16"
|
|
2283
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2284
|
+
className: 'fieldLabel'
|
|
2285
|
+
}, "Location"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2286
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2287
|
+
}, this.state.job.room)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2288
|
+
className: "marginTop-16"
|
|
2289
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2290
|
+
className: 'fieldLabel'
|
|
2291
|
+
}, "Description ", this.state.job.image ? '- (image supplied)' : ''), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2292
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2293
|
+
}, this.state.job.description))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2294
|
+
className: "padding-60 paddingVertical-40 bottomDivideBorder"
|
|
2295
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2296
|
+
type: "formTitleSmall",
|
|
2297
|
+
className: "marginBottom-16"
|
|
2298
|
+
}, "Contact Details"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2299
|
+
className: "marginTop-16"
|
|
2300
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2301
|
+
className: 'fieldLabel'
|
|
2302
|
+
}, "Name"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2303
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2304
|
+
}, this.state.job.userName)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2305
|
+
className: "marginTop-16"
|
|
2306
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2307
|
+
className: 'fieldLabel'
|
|
2308
|
+
}, "Contact number"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2309
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2310
|
+
}, ___default['default'].isEmpty(this.state.job.phone) ? 'No phone provided' : this.state.job.phone)), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2311
|
+
className: "marginTop-16"
|
|
2312
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2313
|
+
className: 'fieldLabel'
|
|
2314
|
+
}, "Should person be home?"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2315
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2316
|
+
}, this.state.job.isHome ? 'Yes' : 'No')), this.state.job.isHome && this.state.job.homeText && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2317
|
+
className: "marginTop-16"
|
|
2318
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2319
|
+
className: 'fieldLabel'
|
|
2320
|
+
}, "When"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2321
|
+
className: 'fontRegular fontSize-16 text-dark marginTop-5'
|
|
2322
|
+
}, this.state.job.homeText))), (this.state.job.image || this.state.job.images) && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2323
|
+
className: "padding-60 paddingVertical-40 bottomDivideBorder"
|
|
2324
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2325
|
+
type: "formTitleSmall",
|
|
2326
|
+
className: "marginBottom-16"
|
|
2327
|
+
}, "Image"), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2328
|
+
style: {
|
|
2329
|
+
marginTop: 16,
|
|
2330
|
+
height: 180,
|
|
2331
|
+
width: 260,
|
|
2332
|
+
borderRadius: 4,
|
|
2333
|
+
border: '1px solid #aaa',
|
|
2334
|
+
backgroundColor: '#ddd',
|
|
2335
|
+
backgroundImage: "url(".concat(this.state.job.thumbnail, ")"),
|
|
2336
|
+
backgroundPosition: 'center'
|
|
2337
|
+
}
|
|
2338
|
+
})), this.renderCommentSection());
|
|
2339
|
+
}
|
|
2340
|
+
}, {
|
|
2341
|
+
key: "renderHistoryEntry",
|
|
2342
|
+
value: function renderHistoryEntry(e, i) {
|
|
2343
|
+
var job = this.state.job;
|
|
2344
|
+
var entryToUse = e || {
|
|
2345
|
+
timestamp: job.createdTime,
|
|
2346
|
+
status: 'Unassigned',
|
|
2347
|
+
user: {
|
|
2348
|
+
displayName: job.userName,
|
|
2349
|
+
id: job.userID,
|
|
2350
|
+
profilePic: job.userProfilePic
|
|
2351
|
+
}
|
|
2352
|
+
};
|
|
2353
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2354
|
+
className: "ticketHistoryEntry",
|
|
2355
|
+
key: i
|
|
2356
|
+
}, /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2357
|
+
className: "ticketHistoryEntry_timestamp"
|
|
2358
|
+
}, moment__default['default'].utc(entryToUse.timestamp).local().format('D MMM YYYY h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2359
|
+
className: "statusLabel statusLabel-large statusLabel-full",
|
|
2360
|
+
style: {
|
|
2361
|
+
backgroundColor: StatusTypes[entryToUse.status].color
|
|
2362
|
+
}
|
|
2363
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2364
|
+
className: "statusLabel_text"
|
|
2365
|
+
}, e ? "Marked as ".concat(StatusTypes[entryToUse.status].text) : 'Job opened')));
|
|
2366
|
+
}
|
|
2367
|
+
}, {
|
|
2368
|
+
key: "renderNote",
|
|
2369
|
+
value: function renderNote(note, index) {
|
|
2370
|
+
var _this4 = this;
|
|
2371
|
+
|
|
2372
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2373
|
+
className: "ticketHistoryEntry",
|
|
2374
|
+
key: index
|
|
2375
|
+
}, /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2376
|
+
className: "ticketHistoryEntry_timestamp"
|
|
2377
|
+
}, moment__default['default'].utc(note.Timestamp).local().format('D MMM YYYY h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2378
|
+
className: "statusLabel statusLabel-large statusLabel-full",
|
|
2379
|
+
style: {
|
|
2380
|
+
backgroundColor: '#6e79c5'
|
|
2381
|
+
}
|
|
2382
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2383
|
+
className: "statusLabel_text"
|
|
2384
|
+
}, "Staff Notes")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2385
|
+
className: "maintenanceNote"
|
|
2386
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2387
|
+
className: "maintenanceNote_top"
|
|
2388
|
+
}, this.props.auth && this.props.auth.user && this.props.auth.user.Id === note.User.id && /*#__PURE__*/React__default['default'].createElement(Components$1.SVGIcon, {
|
|
2389
|
+
colour: Colours.COLOUR_DUSK_LIGHT,
|
|
2390
|
+
icon: "more15",
|
|
2391
|
+
className: "maintenanceNote_moreIcon",
|
|
2392
|
+
onClick: function onClick() {
|
|
2393
|
+
return _this4.onOpenNoteMenu(index);
|
|
2394
|
+
}
|
|
2395
|
+
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2396
|
+
className: "maintenanceNote_name"
|
|
2397
|
+
}, note.User.displayName), this.state.noteMenuOpen === index && /*#__PURE__*/React__default['default'].createElement(Components$1.MoreMenu, {
|
|
2398
|
+
options: [{
|
|
2399
|
+
key: 'edit',
|
|
2400
|
+
text: 'Edit',
|
|
2401
|
+
onPress: function onPress() {
|
|
2402
|
+
return _this4.onOpenEditNote(note);
|
|
2403
|
+
}
|
|
2404
|
+
}, {
|
|
2405
|
+
key: 'delete',
|
|
2406
|
+
text: 'Delete',
|
|
2407
|
+
onPress: function onPress() {
|
|
2408
|
+
return _this4.onDeleteNote(note);
|
|
2409
|
+
}
|
|
2370
2410
|
}]
|
|
2371
|
-
})
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
if (___default['default'].isEmpty(this.state.userName)) return false;
|
|
2377
|
-
if (___default['default'].isEmpty(this.state.room)) return false;
|
|
2378
|
-
if (___default['default'].isEmpty(this.state.title)) return false;
|
|
2379
|
-
if (this.state.isHome && ___default['default'].isEmpty(this.state.homeText)) return false;
|
|
2380
|
-
return true;
|
|
2411
|
+
})), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2412
|
+
className: "maintenanceNote_text"
|
|
2413
|
+
}, Helper$1.toParagraphed(note.Note)), note.Attachments.map(function (a, i) {
|
|
2414
|
+
return _this4.renderAttachment(a, i);
|
|
2415
|
+
})));
|
|
2381
2416
|
}
|
|
2382
2417
|
}, {
|
|
2383
|
-
key: "
|
|
2384
|
-
value: function
|
|
2385
|
-
var
|
|
2418
|
+
key: "renderOverview",
|
|
2419
|
+
value: function renderOverview() {
|
|
2420
|
+
var _this5 = this;
|
|
2386
2421
|
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2422
|
+
var job = this.state.job;
|
|
2423
|
+
if (!job || !job.history) return null;
|
|
2424
|
+
|
|
2425
|
+
var source = ___default['default'].sortBy([].concat(_toConsumableArray__default['default'](job.history.map(function (e) {
|
|
2426
|
+
return _objectSpread$3(_objectSpread$3({}, e), {}, {
|
|
2427
|
+
EntryType: 'status'
|
|
2428
|
+
});
|
|
2429
|
+
})), _toConsumableArray__default['default']((job.Notes || []).map(function (e) {
|
|
2430
|
+
return _objectSpread$3(_objectSpread$3({}, e), {}, {
|
|
2431
|
+
timestamp: e.Timestamp,
|
|
2432
|
+
EntryType: 'note'
|
|
2433
|
+
});
|
|
2434
|
+
}))), 'timestamp');
|
|
2435
|
+
|
|
2436
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2437
|
+
className: "padding-32 paddingVertical-40 bottomDivideBorder relative"
|
|
2438
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2439
|
+
className: "newTopBar clearfix flex flex-reverse"
|
|
2440
|
+
}, this.renderNotesButton(), this.renderStatusLabel(), /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2441
|
+
type: "formTitleSmall",
|
|
2442
|
+
className: "flex-1"
|
|
2443
|
+
}, "Status History")), this.renderHistoryEntry(null, -1), ___default['default'].map(source, function (e, i) {
|
|
2444
|
+
switch (e.EntryType) {
|
|
2445
|
+
case 'status':
|
|
2446
|
+
return _this5.renderHistoryEntry(e, i);
|
|
2392
2447
|
|
|
2448
|
+
case 'note':
|
|
2449
|
+
return _this5.renderNote(e, i);
|
|
2450
|
+
}
|
|
2451
|
+
}));
|
|
2452
|
+
}
|
|
2453
|
+
}, {
|
|
2454
|
+
key: "renderButtons",
|
|
2455
|
+
value: function renderButtons() {
|
|
2393
2456
|
return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
|
|
2394
2457
|
inline: true,
|
|
2395
2458
|
buttonType: "tertiary",
|
|
2396
2459
|
onClick: function onClick() {
|
|
2397
|
-
|
|
2460
|
+
window.history.back();
|
|
2398
2461
|
},
|
|
2399
2462
|
isActive: true,
|
|
2400
2463
|
style: {
|
|
2401
2464
|
marginRight: 16
|
|
2402
2465
|
}
|
|
2403
|
-
}, "
|
|
2466
|
+
}, "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, {
|
|
2467
|
+
to: "/requestsHub/job/".concat(this.state.jobId)
|
|
2468
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
|
|
2404
2469
|
inline: true,
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2470
|
+
style: {
|
|
2471
|
+
marginRight: 25
|
|
2472
|
+
},
|
|
2473
|
+
buttonType: "outlined",
|
|
2474
|
+
isActive: true,
|
|
2475
|
+
onClick: this.editJob
|
|
2476
|
+
}, "Edit Details")));
|
|
2409
2477
|
}
|
|
2410
2478
|
}, {
|
|
2411
|
-
key: "
|
|
2412
|
-
value: function
|
|
2413
|
-
|
|
2479
|
+
key: "renderAttachment",
|
|
2480
|
+
value: function renderAttachment(attachment, index, onRemove) {
|
|
2481
|
+
if (!attachment) return null;
|
|
2482
|
+
return /*#__PURE__*/React__default['default'].createElement(Components$1.Attachment, {
|
|
2483
|
+
key: index,
|
|
2484
|
+
uploading: attachment.Uploading,
|
|
2485
|
+
source: attachment.Source,
|
|
2486
|
+
title: attachment.Title,
|
|
2487
|
+
onRemove: onRemove ? function () {
|
|
2488
|
+
return onRemove(attachment);
|
|
2489
|
+
} : undefined
|
|
2490
|
+
});
|
|
2491
|
+
}
|
|
2492
|
+
}, {
|
|
2493
|
+
key: "renderAddNotePopup",
|
|
2494
|
+
value: function renderAddNotePopup() {
|
|
2495
|
+
var _this6 = this;
|
|
2414
2496
|
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
}
|
|
2441
|
-
}), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
|
|
2442
|
-
id: "room",
|
|
2443
|
-
type: "text",
|
|
2444
|
-
label: "Location",
|
|
2445
|
-
placeholder: "Insert address here",
|
|
2446
|
-
value: this.state.room,
|
|
2447
|
-
onChange: function onChange(e) {
|
|
2448
|
-
return _this4.onHandleChange(e);
|
|
2449
|
-
},
|
|
2450
|
-
isRequired: true,
|
|
2451
|
-
alwaysShowLabel: true,
|
|
2452
|
-
isValid: function isValid() {
|
|
2453
|
-
return !___default['default'].isEmpty(_this4.state.room);
|
|
2454
|
-
},
|
|
2455
|
-
showError: function showError() {
|
|
2456
|
-
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.room);
|
|
2457
|
-
}
|
|
2458
|
-
}), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
|
|
2459
|
-
id: "phone",
|
|
2460
|
-
type: "text",
|
|
2461
|
-
label: "Contact number",
|
|
2462
|
-
placeholder: "04XX XXX XXX",
|
|
2463
|
-
value: this.state.phone // showError={this.state.showWarnings && !this.validateImage()}
|
|
2464
|
-
,
|
|
2465
|
-
onChange: function onChange(e) {
|
|
2466
|
-
return _this4.onHandleChange(e);
|
|
2467
|
-
},
|
|
2468
|
-
alwaysShowLabel: true
|
|
2469
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2470
|
-
style: {
|
|
2471
|
-
marginBottom: 15
|
|
2472
|
-
}
|
|
2473
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2474
|
-
type: "formLabel"
|
|
2475
|
-
}, "Job Type"), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.DropdownButton, {
|
|
2476
|
-
style: {
|
|
2477
|
-
minWidth: 80
|
|
2478
|
-
},
|
|
2479
|
-
bsStyle: "default",
|
|
2480
|
-
title: this.state.type,
|
|
2481
|
-
id: "typeSelect",
|
|
2482
|
-
onSelect: this.onSelectType
|
|
2483
|
-
}, this.renderTypeOptions())), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
|
|
2484
|
-
id: "title",
|
|
2485
|
-
label: "Title for the work required",
|
|
2486
|
-
type: "textarea",
|
|
2487
|
-
placeholder: "Title for the work required",
|
|
2488
|
-
value: this.state.title,
|
|
2489
|
-
onChange: function onChange(e) {
|
|
2490
|
-
return _this4.onHandleChange(e);
|
|
2491
|
-
},
|
|
2492
|
-
inputStyle: {
|
|
2493
|
-
height: 80
|
|
2494
|
-
},
|
|
2495
|
-
isRequired: true,
|
|
2496
|
-
isValid: function isValid() {
|
|
2497
|
-
return !___default['default'].isEmpty(_this4.state.title);
|
|
2498
|
-
},
|
|
2499
|
-
showError: function showError() {
|
|
2500
|
-
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.title);
|
|
2501
|
-
},
|
|
2502
|
-
alwaysShowLabel: true
|
|
2503
|
-
}), /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
|
|
2504
|
-
id: "description",
|
|
2505
|
-
label: "Description of work required",
|
|
2506
|
-
type: "textarea",
|
|
2507
|
-
placeholder: "Description of work required",
|
|
2508
|
-
value: this.state.description,
|
|
2509
|
-
onChange: function onChange(e) {
|
|
2510
|
-
return _this4.onHandleChange(e);
|
|
2511
|
-
},
|
|
2512
|
-
inputStyle: {
|
|
2513
|
-
height: 80
|
|
2514
|
-
},
|
|
2515
|
-
alwaysShowLabel: true
|
|
2516
|
-
}), /*#__PURE__*/React__default['default'].createElement(Components$1.RadioButton, {
|
|
2517
|
-
label: "Person must be home during work?",
|
|
2518
|
-
isActive: this.state.isHome,
|
|
2519
|
-
options: [{
|
|
2520
|
-
Label: 'No',
|
|
2521
|
-
Value: false,
|
|
2522
|
-
onChange: function onChange() {
|
|
2523
|
-
return _this4.setState({
|
|
2524
|
-
isHome: false
|
|
2525
|
-
});
|
|
2526
|
-
}
|
|
2497
|
+
if (!this.state.addNoteOpen) return null;
|
|
2498
|
+
|
|
2499
|
+
if (this.state.submittingNote) {
|
|
2500
|
+
return /*#__PURE__*/React__default['default'].createElement(Components$1.Popup, {
|
|
2501
|
+
title: "Saving Note",
|
|
2502
|
+
maxWidth: 600,
|
|
2503
|
+
hasPadding: true
|
|
2504
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2505
|
+
className: "flex flex-center-row"
|
|
2506
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2507
|
+
className: "spinner",
|
|
2508
|
+
name: "spinner fa-pulse fa-fw"
|
|
2509
|
+
})));
|
|
2510
|
+
}
|
|
2511
|
+
|
|
2512
|
+
return /*#__PURE__*/React__default['default'].createElement(Components$1.Popup, {
|
|
2513
|
+
title: "".concat(this.state.editingNote ? 'Edit' : 'Add', " Note"),
|
|
2514
|
+
onClose: this.onCloseAddNote,
|
|
2515
|
+
maxWidth: 600,
|
|
2516
|
+
hasPadding: true,
|
|
2517
|
+
buttons: [{
|
|
2518
|
+
type: 'primary',
|
|
2519
|
+
onClick: this.onConfirmAddNote,
|
|
2520
|
+
isActive: this.isReadyToSaveNote(),
|
|
2521
|
+
text: 'Save'
|
|
2527
2522
|
}, {
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
isHome: true
|
|
2533
|
-
});
|
|
2534
|
-
}
|
|
2523
|
+
type: 'tertiary',
|
|
2524
|
+
onClick: this.onCloseAddNote,
|
|
2525
|
+
isActive: true,
|
|
2526
|
+
text: 'Cancel'
|
|
2535
2527
|
}]
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
|
-
marginTop: 16
|
|
2539
|
-
},
|
|
2540
|
-
label: "Description of person's available times",
|
|
2541
|
-
id: "homeText",
|
|
2528
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
|
|
2529
|
+
id: "noteInput",
|
|
2542
2530
|
type: "textarea",
|
|
2543
|
-
|
|
2544
|
-
value: this.state.
|
|
2531
|
+
componentClass: "textarea",
|
|
2532
|
+
value: this.state.noteInput,
|
|
2533
|
+
placeholder: "Enter note",
|
|
2545
2534
|
onChange: function onChange(e) {
|
|
2546
|
-
return
|
|
2547
|
-
},
|
|
2548
|
-
inputStyle: {
|
|
2549
|
-
height: 80
|
|
2535
|
+
return _this6.onHandleChange(e);
|
|
2550
2536
|
},
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2537
|
+
inputStyle: {
|
|
2538
|
+
width: 400
|
|
2539
|
+
}
|
|
2540
|
+
}), /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
|
|
2541
|
+
type: "h5"
|
|
2542
|
+
}, "Attachments"), this.state.noteAttachments.map(function (a, i) {
|
|
2543
|
+
return _this6.renderAttachment(a, i, _this6.onRemoveAttachment);
|
|
2544
|
+
}), /*#__PURE__*/React__default['default'].createElement("input", {
|
|
2545
|
+
ref: function ref(input) {
|
|
2546
|
+
return _this6.attachmentInput = input;
|
|
2554
2547
|
},
|
|
2555
|
-
|
|
2556
|
-
|
|
2548
|
+
id: "attachmentInput",
|
|
2549
|
+
type: "file",
|
|
2550
|
+
className: "fileInput",
|
|
2551
|
+
onChange: function onChange(e) {
|
|
2552
|
+
return _this6.onHandlePDFFileChange(e);
|
|
2557
2553
|
},
|
|
2558
|
-
|
|
2559
|
-
})
|
|
2554
|
+
accept: "application/pdf"
|
|
2555
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2556
|
+
className: "iconTextButton",
|
|
2557
|
+
onClick: function onClick() {
|
|
2558
|
+
_this6.attachmentInput.click();
|
|
2559
|
+
}
|
|
2560
|
+
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2561
|
+
className: "iconTextButton_icon",
|
|
2562
|
+
name: "paperclip"
|
|
2563
|
+
}), /*#__PURE__*/React__default['default'].createElement("p", {
|
|
2564
|
+
className: "iconTextButton_text"
|
|
2565
|
+
}, "Add Attachment")));
|
|
2560
2566
|
}
|
|
2561
2567
|
}, {
|
|
2562
2568
|
key: "render",
|
|
2563
2569
|
value: function render() {
|
|
2564
|
-
|
|
2565
|
-
return /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageContents, {
|
|
2566
|
-
noBottomButtons: success
|
|
2567
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageSection, {
|
|
2570
|
+
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, {
|
|
2568
2571
|
className: "pageSectionWrapper--newPopup"
|
|
2569
|
-
},
|
|
2572
|
+
}, this.renderInner()), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageSection, {
|
|
2573
|
+
className: "pageSectionWrapper--newPopupSide pageSectionWrapper--newPopupSide-fixedWidth"
|
|
2574
|
+
}, this.renderOverview())), /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPageBottomButtons, null, this.renderButtons()));
|
|
2570
2575
|
}
|
|
2571
2576
|
}]);
|
|
2572
2577
|
|
|
2573
|
-
return
|
|
2578
|
+
return Job;
|
|
2574
2579
|
}(React.Component);
|
|
2575
2580
|
|
|
2576
2581
|
var mapStateToProps$1 = function mapStateToProps(state) {
|
|
@@ -2580,32 +2585,31 @@ var mapStateToProps$1 = function mapStateToProps(state) {
|
|
|
2580
2585
|
};
|
|
2581
2586
|
};
|
|
2582
2587
|
|
|
2583
|
-
var
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
addRecentlyCreated: Actions.addRecentlyCreated
|
|
2587
|
-
})(reactRouter.withRouter(AddJob));
|
|
2588
|
+
var Job$1 = reactRedux.connect(mapStateToProps$1, {
|
|
2589
|
+
jobsLoaded: jobsLoaded
|
|
2590
|
+
})(reactRouter.withRouter(Job));
|
|
2588
2591
|
|
|
2589
2592
|
function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); 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); }; }
|
|
2590
2593
|
|
|
2591
2594
|
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; } }
|
|
2592
|
-
var
|
|
2595
|
+
var Actions = PlussCore__namespace.Actions,
|
|
2593
2596
|
Components = PlussCore__namespace.Components,
|
|
2594
|
-
Helper = PlussCore__namespace.Helper
|
|
2597
|
+
Helper = PlussCore__namespace.Helper,
|
|
2598
|
+
Session = PlussCore__namespace.Session;
|
|
2595
2599
|
|
|
2596
|
-
var
|
|
2597
|
-
_inherits__default['default'](
|
|
2600
|
+
var AddJob = /*#__PURE__*/function (_Component) {
|
|
2601
|
+
_inherits__default['default'](AddJob, _Component);
|
|
2598
2602
|
|
|
2599
|
-
var _super = _createSuper$6(
|
|
2603
|
+
var _super = _createSuper$6(AddJob);
|
|
2600
2604
|
|
|
2601
|
-
function
|
|
2605
|
+
function AddJob(props) {
|
|
2602
2606
|
var _this;
|
|
2603
2607
|
|
|
2604
|
-
_classCallCheck__default['default'](this,
|
|
2608
|
+
_classCallCheck__default['default'](this, AddJob);
|
|
2605
2609
|
|
|
2606
2610
|
_this = _super.call(this, props);
|
|
2607
2611
|
|
|
2608
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
2612
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getJob", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
2609
2613
|
var res;
|
|
2610
2614
|
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
2611
2615
|
while (1) {
|
|
@@ -2613,141 +2617,76 @@ var JobTypes = /*#__PURE__*/function (_Component) {
|
|
|
2613
2617
|
case 0:
|
|
2614
2618
|
_context.prev = 0;
|
|
2615
2619
|
_context.next = 3;
|
|
2616
|
-
return maintenanceActions.
|
|
2620
|
+
return maintenanceActions.getJob(_this.props.auth.site, _this.state.jobId);
|
|
2617
2621
|
|
|
2618
2622
|
case 3:
|
|
2619
2623
|
res = _context.sent;
|
|
2620
|
-
|
|
2621
|
-
_context.next = 10;
|
|
2622
|
-
break;
|
|
2623
|
-
|
|
2624
|
-
case 7:
|
|
2625
|
-
_context.prev = 7;
|
|
2626
|
-
_context.t0 = _context["catch"](0);
|
|
2627
|
-
console.error('getJobTypes', _context.t0);
|
|
2624
|
+
res.data.location = res.data.site;
|
|
2628
2625
|
|
|
2629
|
-
|
|
2630
|
-
_context.prev = 10;
|
|
2626
|
+
_this.setState(res.data);
|
|
2631
2627
|
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
});
|
|
2628
|
+
_context.next = 11;
|
|
2629
|
+
break;
|
|
2635
2630
|
|
|
2636
|
-
|
|
2631
|
+
case 8:
|
|
2632
|
+
_context.prev = 8;
|
|
2633
|
+
_context.t0 = _context["catch"](0);
|
|
2634
|
+
console.error('getJob', _context.t0);
|
|
2637
2635
|
|
|
2638
|
-
case
|
|
2636
|
+
case 11:
|
|
2639
2637
|
case "end":
|
|
2640
2638
|
return _context.stop();
|
|
2641
2639
|
}
|
|
2642
2640
|
}
|
|
2643
|
-
}, _callee, null, [[0,
|
|
2641
|
+
}, _callee, null, [[0, 8]]);
|
|
2644
2642
|
})));
|
|
2645
2643
|
|
|
2646
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
});
|
|
2656
|
-
}
|
|
2657
|
-
});
|
|
2658
|
-
|
|
2659
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "validateEmail", function () {
|
|
2660
|
-
var jobTypeEmail = _this.state.jobTypeEmail;
|
|
2661
|
-
return !___default['default'].isEmpty(jobTypeEmail) && Helper.isEmail(jobTypeEmail);
|
|
2662
|
-
});
|
|
2663
|
-
|
|
2664
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "isJobTypeValid", function () {
|
|
2665
|
-
var _this$state = _this.state,
|
|
2666
|
-
jobTypeName = _this$state.jobTypeName,
|
|
2667
|
-
jobTypeDescription = _this$state.jobTypeDescription;
|
|
2668
|
-
if (___default['default'].isEmpty(jobTypeName)) return false;
|
|
2669
|
-
if (!_this.validateEmail()) return false;
|
|
2670
|
-
if (___default['default'].isEmpty(jobTypeDescription)) return false;
|
|
2671
|
-
return true;
|
|
2672
|
-
});
|
|
2673
|
-
|
|
2674
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onRemoveJobType", /*#__PURE__*/function () {
|
|
2675
|
-
var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(ev) {
|
|
2676
|
-
var index, newJobTypes;
|
|
2677
|
-
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
|
|
2678
|
-
while (1) {
|
|
2679
|
-
switch (_context2.prev = _context2.next) {
|
|
2680
|
-
case 0:
|
|
2681
|
-
if (window.confirm("Are you sure you want to delete ".concat(ev.typeName, "?"))) {
|
|
2682
|
-
_context2.next = 2;
|
|
2683
|
-
break;
|
|
2684
|
-
}
|
|
2685
|
-
|
|
2686
|
-
return _context2.abrupt("return");
|
|
2687
|
-
|
|
2688
|
-
case 2:
|
|
2689
|
-
_context2.prev = 2;
|
|
2690
|
-
_context2.next = 5;
|
|
2691
|
-
return maintenanceActions.deleteJobType(_this.props.auth.site, ev.id);
|
|
2644
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getJobTypes", /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
|
|
2645
|
+
var res;
|
|
2646
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
|
|
2647
|
+
while (1) {
|
|
2648
|
+
switch (_context2.prev = _context2.next) {
|
|
2649
|
+
case 0:
|
|
2650
|
+
_context2.prev = 0;
|
|
2651
|
+
_context2.next = 3;
|
|
2652
|
+
return maintenanceActions.getJobTypes(_this.props.auth.site);
|
|
2692
2653
|
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
return job != null && job.id === ev.id;
|
|
2696
|
-
});
|
|
2654
|
+
case 3:
|
|
2655
|
+
res = _context2.sent;
|
|
2697
2656
|
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2657
|
+
_this.setState({
|
|
2658
|
+
types: res.data
|
|
2659
|
+
});
|
|
2701
2660
|
|
|
2702
|
-
|
|
2703
|
-
}
|
|
2661
|
+
_this.getDefaultJob();
|
|
2704
2662
|
|
|
2705
|
-
|
|
2706
|
-
|
|
2663
|
+
_context2.next = 11;
|
|
2664
|
+
break;
|
|
2707
2665
|
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
alert('Something went wrong with the request. Please try again.');
|
|
2666
|
+
case 8:
|
|
2667
|
+
_context2.prev = 8;
|
|
2668
|
+
_context2.t0 = _context2["catch"](0);
|
|
2669
|
+
console.error('getJobTypes', _context2.t0);
|
|
2713
2670
|
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
}
|
|
2671
|
+
case 11:
|
|
2672
|
+
case "end":
|
|
2673
|
+
return _context2.stop();
|
|
2718
2674
|
}
|
|
2719
|
-
}
|
|
2720
|
-
})
|
|
2721
|
-
|
|
2722
|
-
return function (_x) {
|
|
2723
|
-
return _ref2.apply(this, arguments);
|
|
2724
|
-
};
|
|
2725
|
-
}());
|
|
2726
|
-
|
|
2727
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onShowJobType", function () {
|
|
2728
|
-
var job = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
2675
|
+
}
|
|
2676
|
+
}, _callee2, null, [[0, 8]]);
|
|
2677
|
+
})));
|
|
2729
2678
|
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
jobTypeLevel: job ? job.level : 1
|
|
2737
|
-
});
|
|
2679
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getDefaultJob", function () {
|
|
2680
|
+
if (_this.state.types.length !== 0 && _this.state.jobId == null) {
|
|
2681
|
+
_this.setState({
|
|
2682
|
+
type: _this.state.types[0].typeName
|
|
2683
|
+
});
|
|
2684
|
+
}
|
|
2738
2685
|
});
|
|
2739
2686
|
|
|
2740
|
-
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "
|
|
2741
|
-
if (_this.state.submitting) return;
|
|
2742
|
-
|
|
2687
|
+
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onSelectType", function (key, e) {
|
|
2743
2688
|
_this.setState({
|
|
2744
|
-
|
|
2745
|
-
showJobType: false,
|
|
2746
|
-
jobTypeId: null,
|
|
2747
|
-
jobTypeName: '',
|
|
2748
|
-
jobTypeEmail: '',
|
|
2749
|
-
jobTypeDescription: '',
|
|
2750
|
-
jobTypeLevel: 1
|
|
2689
|
+
type: key
|
|
2751
2690
|
});
|
|
2752
2691
|
});
|
|
2753
2692
|
|
|
@@ -2759,17 +2698,11 @@ var JobTypes = /*#__PURE__*/function (_Component) {
|
|
|
2759
2698
|
});
|
|
2760
2699
|
|
|
2761
2700
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onSave", function () {
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
jobTypeId = _this$state2.jobTypeId,
|
|
2766
|
-
jobTypeName = _this$state2.jobTypeName,
|
|
2767
|
-
jobTypeEmail = _this$state2.jobTypeEmail,
|
|
2768
|
-
jobTypeDescription = _this$state2.jobTypeDescription,
|
|
2769
|
-
jobTypeLevel = _this$state2.jobTypeLevel;
|
|
2770
|
-
if (submitting) return;
|
|
2701
|
+
_this.setState({
|
|
2702
|
+
showWarnings: false
|
|
2703
|
+
});
|
|
2771
2704
|
|
|
2772
|
-
if (!_this.
|
|
2705
|
+
if (!_this.validateForm()) {
|
|
2773
2706
|
_this.setState({
|
|
2774
2707
|
showWarnings: true
|
|
2775
2708
|
});
|
|
@@ -2777,391 +2710,349 @@ var JobTypes = /*#__PURE__*/function (_Component) {
|
|
|
2777
2710
|
return;
|
|
2778
2711
|
}
|
|
2779
2712
|
|
|
2780
|
-
_this.
|
|
2781
|
-
submitting: true
|
|
2782
|
-
}, /*#__PURE__*/_asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3() {
|
|
2783
|
-
return _regeneratorRuntime__default['default'].wrap(function _callee3$(_context3) {
|
|
2784
|
-
while (1) {
|
|
2785
|
-
switch (_context3.prev = _context3.next) {
|
|
2786
|
-
case 0:
|
|
2787
|
-
_context3.prev = 0;
|
|
2788
|
-
|
|
2789
|
-
if (!jobTypeId) {
|
|
2790
|
-
_context3.next = 6;
|
|
2791
|
-
break;
|
|
2792
|
-
}
|
|
2793
|
-
|
|
2794
|
-
_context3.next = 4;
|
|
2795
|
-
return maintenanceActions.editJobType(site, jobTypeId, jobTypeName, jobTypeEmail, jobTypeDescription, jobTypeLevel);
|
|
2796
|
-
|
|
2797
|
-
case 4:
|
|
2798
|
-
_context3.next = 8;
|
|
2799
|
-
break;
|
|
2800
|
-
|
|
2801
|
-
case 6:
|
|
2802
|
-
_context3.next = 8;
|
|
2803
|
-
return maintenanceActions.addJobType(site, jobTypeName, jobTypeEmail, jobTypeDescription, jobTypeLevel);
|
|
2713
|
+
if (_this.state.updating) return;
|
|
2804
2714
|
|
|
2805
|
-
|
|
2806
|
-
|
|
2715
|
+
_this.setState({
|
|
2716
|
+
updating: true
|
|
2717
|
+
});
|
|
2807
2718
|
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2719
|
+
var job = {
|
|
2720
|
+
id: _this.state.id,
|
|
2721
|
+
userID: _this.state.userID,
|
|
2722
|
+
userName: _this.state.userName,
|
|
2723
|
+
room: _this.state.room,
|
|
2724
|
+
phone: _this.state.phone,
|
|
2725
|
+
location: _this.state.location,
|
|
2726
|
+
title: _this.state.title,
|
|
2727
|
+
description: _this.state.description,
|
|
2728
|
+
isHome: _this.state.isHome,
|
|
2729
|
+
homeText: _this.state.homeText,
|
|
2730
|
+
type: _this.state.type,
|
|
2731
|
+
date: null,
|
|
2732
|
+
image: _this.state.image
|
|
2733
|
+
};
|
|
2811
2734
|
|
|
2812
|
-
|
|
2813
|
-
|
|
2735
|
+
if (_this.state.id != null) {
|
|
2736
|
+
maintenanceActions.editJob(job, _this.props.auth.site).then(function (res) {
|
|
2737
|
+
_this.setState({
|
|
2738
|
+
success: true,
|
|
2739
|
+
updating: false
|
|
2740
|
+
});
|
|
2814
2741
|
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2742
|
+
_this.props.jobsLoaded([job]);
|
|
2743
|
+
}).catch(function (res) {
|
|
2744
|
+
_this.setState({
|
|
2745
|
+
updating: false
|
|
2746
|
+
});
|
|
2819
2747
|
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2748
|
+
alert('Something went wrong with the request. Please try again.');
|
|
2749
|
+
});
|
|
2750
|
+
} else {
|
|
2751
|
+
// Create New Job
|
|
2752
|
+
job.userID = 'undefined';
|
|
2753
|
+
maintenanceActions.createJob(job).then(function (res) {
|
|
2754
|
+
_this.setState({
|
|
2755
|
+
success: true,
|
|
2756
|
+
updating: false
|
|
2757
|
+
});
|
|
2823
2758
|
|
|
2824
|
-
|
|
2759
|
+
_this.props.jobsUpdate(_this.props.auth.site);
|
|
2760
|
+
}).catch(function (res) {
|
|
2761
|
+
_this.setState({
|
|
2762
|
+
updating: false
|
|
2763
|
+
});
|
|
2825
2764
|
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
}
|
|
2830
|
-
}
|
|
2831
|
-
}, _callee3, null, [[0, 12]]);
|
|
2832
|
-
})));
|
|
2765
|
+
alert('Something went wrong with the request. Please try again.');
|
|
2766
|
+
});
|
|
2767
|
+
}
|
|
2833
2768
|
});
|
|
2834
2769
|
|
|
2835
2770
|
_this.state = {
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2771
|
+
jobId: Helper.safeReadParams(_this.props, 'jobId') ? _this.props.match.params.jobId : null,
|
|
2772
|
+
job: null,
|
|
2773
|
+
showingSelector: false,
|
|
2774
|
+
updating: false,
|
|
2775
|
+
connected: false,
|
|
2776
|
+
types: [],
|
|
2777
|
+
id: null,
|
|
2778
|
+
userID: '',
|
|
2779
|
+
userName: '',
|
|
2780
|
+
room: '',
|
|
2781
|
+
phone: '',
|
|
2782
|
+
location: _this.props.auth.site,
|
|
2783
|
+
title: '',
|
|
2784
|
+
description: '',
|
|
2785
|
+
isHome: false,
|
|
2786
|
+
homeText: '',
|
|
2787
|
+
type: 'General',
|
|
2788
|
+
image: null,
|
|
2789
|
+
thumbnail: null,
|
|
2847
2790
|
showWarnings: false,
|
|
2848
|
-
|
|
2791
|
+
success: false
|
|
2849
2792
|
};
|
|
2850
2793
|
return _this;
|
|
2851
2794
|
}
|
|
2852
2795
|
|
|
2853
|
-
_createClass__default['default'](
|
|
2854
|
-
key: "
|
|
2855
|
-
value: function
|
|
2856
|
-
this.updateProps(this.props);
|
|
2796
|
+
_createClass__default['default'](AddJob, [{
|
|
2797
|
+
key: "UNSAFE_componentWillMount",
|
|
2798
|
+
value: function UNSAFE_componentWillMount() {
|
|
2857
2799
|
Session.checkLoggedIn(this, this.props.auth);
|
|
2858
2800
|
}
|
|
2859
2801
|
}, {
|
|
2860
2802
|
key: "componentDidMount",
|
|
2861
2803
|
value: function componentDidMount() {
|
|
2862
2804
|
this.getJobTypes();
|
|
2805
|
+
if (this.state.jobId) this.getJob();
|
|
2806
|
+
this.props.addRecentlyCreated('maintenance');
|
|
2863
2807
|
}
|
|
2864
2808
|
}, {
|
|
2865
|
-
key: "
|
|
2866
|
-
value: function
|
|
2867
|
-
this.updateProps(nextProps);
|
|
2868
|
-
}
|
|
2869
|
-
}, {
|
|
2870
|
-
key: "updateProps",
|
|
2871
|
-
value: function updateProps(props) {
|
|
2872
|
-
this.setState({
|
|
2873
|
-
jobList: props.jobtypes
|
|
2874
|
-
});
|
|
2875
|
-
}
|
|
2876
|
-
}, {
|
|
2877
|
-
key: "renderList",
|
|
2878
|
-
value: function renderList() {
|
|
2809
|
+
key: "renderTypeOptions",
|
|
2810
|
+
value: function renderTypeOptions() {
|
|
2879
2811
|
var _this2 = this;
|
|
2880
2812
|
|
|
2881
|
-
var source =
|
|
2882
|
-
|
|
2883
|
-
if (this.state.sortDesc) source.reverse();
|
|
2884
|
-
source = ___default['default'].filter(source, function (ev) {
|
|
2885
|
-
if (!ev) return false;
|
|
2886
|
-
if (ev.Deleted) return false;
|
|
2887
|
-
return true;
|
|
2888
|
-
});
|
|
2889
|
-
return source.map(function (ev, index) {
|
|
2813
|
+
var source = this.state.types;
|
|
2814
|
+
return source.map(function (ev) {
|
|
2890
2815
|
if (ev != null) {
|
|
2891
|
-
return /*#__PURE__*/React__default['default'].createElement(
|
|
2892
|
-
key:
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
},
|
|
2896
|
-
onClick: function onClick() {
|
|
2897
|
-
return _this2.onShowJobType(ev);
|
|
2898
|
-
}
|
|
2899
|
-
}, ev.typeName)), /*#__PURE__*/React__default['default'].createElement("td", null, ev.description), /*#__PURE__*/React__default['default'].createElement("td", null, ev.email), /*#__PURE__*/React__default['default'].createElement("td", {
|
|
2900
|
-
className: "table-options"
|
|
2901
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2902
|
-
style: {
|
|
2903
|
-
display: 'flex',
|
|
2904
|
-
alignItems: 'center'
|
|
2905
|
-
}
|
|
2906
|
-
}, Session.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
|
|
2907
|
-
onClick: function onClick() {
|
|
2908
|
-
return _this2.onShowJobType(ev);
|
|
2909
|
-
}
|
|
2910
|
-
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2911
|
-
style: {
|
|
2912
|
-
fontSize: 20,
|
|
2913
|
-
padding: 5,
|
|
2914
|
-
marginLeft: 12,
|
|
2915
|
-
cursor: 'pointer'
|
|
2916
|
-
},
|
|
2917
|
-
name: "pencil"
|
|
2918
|
-
})), Session.validateAccess(_this2.props.auth.site, 'maintenanceTypes', _this2.props.auth) && /*#__PURE__*/React__default['default'].createElement("a", {
|
|
2919
|
-
onClick: function onClick() {
|
|
2920
|
-
return _this2.onRemoveJobType(ev);
|
|
2921
|
-
}
|
|
2922
|
-
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
2923
|
-
style: {
|
|
2924
|
-
fontSize: 20,
|
|
2925
|
-
padding: 5,
|
|
2926
|
-
marginLeft: 8,
|
|
2927
|
-
cursor: 'pointer'
|
|
2928
|
-
},
|
|
2929
|
-
name: "minus-circle"
|
|
2930
|
-
})))));
|
|
2816
|
+
return /*#__PURE__*/React__default['default'].createElement(reactBootstrap.MenuItem, {
|
|
2817
|
+
key: ev.typeName,
|
|
2818
|
+
eventKey: ev.typeName,
|
|
2819
|
+
active: _this2.state.type === ev.typeName
|
|
2820
|
+
}, ev.typeName);
|
|
2931
2821
|
}
|
|
2932
2822
|
|
|
2933
2823
|
return null;
|
|
2934
2824
|
});
|
|
2935
2825
|
}
|
|
2936
2826
|
}, {
|
|
2937
|
-
key: "
|
|
2938
|
-
value: function
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
}, /*#__PURE__*/React__default['default'].createElement("thead", null, /*#__PURE__*/React__default['default'].createElement("tr", null, /*#__PURE__*/React__default['default'].createElement("th", {
|
|
2951
|
-
style: {
|
|
2952
|
-
cursor: 'pointer'
|
|
2953
|
-
},
|
|
2954
|
-
onClick: function onClick() {
|
|
2955
|
-
return _this3.sortByCol('name');
|
|
2956
|
-
}
|
|
2957
|
-
}, "Request type"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
2958
|
-
style: {
|
|
2959
|
-
cursor: 'pointer'
|
|
2960
|
-
},
|
|
2961
|
-
onClick: function onClick() {
|
|
2962
|
-
return _this3.sortByCol('name');
|
|
2963
|
-
}
|
|
2964
|
-
}, "Type Description"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
2965
|
-
style: {
|
|
2966
|
-
cursor: 'pointer'
|
|
2967
|
-
},
|
|
2968
|
-
onClick: function onClick() {
|
|
2969
|
-
return _this3.sortByCol('email');
|
|
2970
|
-
}
|
|
2971
|
-
}, "Email"), /*#__PURE__*/React__default['default'].createElement("th", {
|
|
2972
|
-
style: {
|
|
2973
|
-
width: 70
|
|
2974
|
-
}
|
|
2975
|
-
}))), /*#__PURE__*/React__default['default'].createElement("tbody", null, this.renderList()));
|
|
2976
|
-
}
|
|
2977
|
-
}, {
|
|
2978
|
-
key: "renderEmpty",
|
|
2979
|
-
value: function renderEmpty() {
|
|
2980
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2981
|
-
style: {
|
|
2982
|
-
display: 'flex',
|
|
2983
|
-
flexDirection: 'column',
|
|
2984
|
-
flex: 1,
|
|
2985
|
-
justifyContent: 'center',
|
|
2986
|
-
alignItems: 'center',
|
|
2987
|
-
marginTop: 32
|
|
2988
|
-
}
|
|
2989
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2990
|
-
className: "emptyState"
|
|
2991
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2992
|
-
className: "marginTop-32",
|
|
2993
|
-
style: {
|
|
2994
|
-
maxWidth: 500,
|
|
2995
|
-
textAlign: 'center'
|
|
2996
|
-
}
|
|
2997
|
-
}, /*#__PURE__*/React__default['default'].createElement("span", {
|
|
2998
|
-
className: "fontRegular fontSize-13"
|
|
2999
|
-
}, "Please add the many categories of request types that exist in your village which work alongside the Maintenance area.")), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3000
|
-
className: "marginTop-8 fontRegular fontSize-13",
|
|
3001
|
-
style: {
|
|
3002
|
-
maxWidth: 500,
|
|
3003
|
-
textAlign: 'center'
|
|
3004
|
-
}
|
|
3005
|
-
}, "Examples might be; OH&S, Electrical, General. Remember to add a description too."));
|
|
2827
|
+
key: "renderSuccess",
|
|
2828
|
+
value: function renderSuccess() {
|
|
2829
|
+
if (!this.state.success) return null;
|
|
2830
|
+
return /*#__PURE__*/React__default['default'].createElement(Components.SuccessPopup, {
|
|
2831
|
+
text: "Maintenance request has been ".concat(this.state.id != null ? 'edited' : 'added'),
|
|
2832
|
+
buttons: [{
|
|
2833
|
+
type: 'outlined',
|
|
2834
|
+
onClick: function onClick() {
|
|
2835
|
+
window.history.back();
|
|
2836
|
+
},
|
|
2837
|
+
text: "Back to Maintenance"
|
|
2838
|
+
}]
|
|
2839
|
+
});
|
|
3006
2840
|
}
|
|
3007
|
-
}, {
|
|
3008
|
-
key: "
|
|
3009
|
-
value: function
|
|
3010
|
-
if (___default['default'].isEmpty(this.state.
|
|
3011
|
-
|
|
2841
|
+
}, {
|
|
2842
|
+
key: "validateForm",
|
|
2843
|
+
value: function validateForm() {
|
|
2844
|
+
if (___default['default'].isEmpty(this.state.userName)) return false;
|
|
2845
|
+
if (___default['default'].isEmpty(this.state.room)) return false;
|
|
2846
|
+
if (___default['default'].isEmpty(this.state.title)) return false;
|
|
2847
|
+
if (this.state.isHome && ___default['default'].isEmpty(this.state.homeText)) return false;
|
|
2848
|
+
return true;
|
|
3012
2849
|
}
|
|
3013
2850
|
}, {
|
|
3014
|
-
key: "
|
|
3015
|
-
value: function
|
|
3016
|
-
var
|
|
3017
|
-
|
|
3018
|
-
var _this$state3 = this.state,
|
|
3019
|
-
jobList = _this$state3.jobList,
|
|
3020
|
-
loading = _this$state3.loading;
|
|
2851
|
+
key: "renderSubmit",
|
|
2852
|
+
value: function renderSubmit() {
|
|
2853
|
+
var _this3 = this;
|
|
3021
2854
|
|
|
3022
|
-
if (
|
|
3023
|
-
return /*#__PURE__*/React__default['default'].createElement(
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
}
|
|
3027
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3028
|
-
className: "padding-60 paddingVertical-40",
|
|
3029
|
-
style: {
|
|
3030
|
-
textAlign: 'center'
|
|
3031
|
-
}
|
|
3032
|
-
}, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
|
|
3033
|
-
style: {
|
|
3034
|
-
fontSize: 30,
|
|
3035
|
-
color: FeatureConfig.env.colourBrandingOff
|
|
3036
|
-
},
|
|
3037
|
-
name: "spinner fa-pulse fa-fw"
|
|
3038
|
-
})));
|
|
2855
|
+
if (this.state.updating) {
|
|
2856
|
+
return /*#__PURE__*/React__default['default'].createElement(Components.Button, {
|
|
2857
|
+
buttonType: "secondary"
|
|
2858
|
+
}, "Saving...");
|
|
3039
2859
|
}
|
|
3040
2860
|
|
|
3041
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
}
|
|
3045
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
3046
|
-
className: "flex flex-row flex-center flex-between marginBottom-32"
|
|
3047
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components.PageTitle, null, "Request Types"), /*#__PURE__*/React__default['default'].createElement(Components.AddButton, {
|
|
2861
|
+
return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components.Button, {
|
|
2862
|
+
inline: true,
|
|
2863
|
+
buttonType: "tertiary",
|
|
3048
2864
|
onClick: function onClick() {
|
|
3049
|
-
return
|
|
2865
|
+
return _this3.props.history.push('/requestsHub');
|
|
3050
2866
|
},
|
|
3051
|
-
|
|
3052
|
-
|
|
2867
|
+
isActive: true,
|
|
2868
|
+
style: {
|
|
2869
|
+
marginRight: 16
|
|
2870
|
+
}
|
|
2871
|
+
}, "Cancel"), /*#__PURE__*/React__default['default'].createElement(Components.Button, {
|
|
2872
|
+
inline: true,
|
|
2873
|
+
buttonType: "primary",
|
|
2874
|
+
onClick: this.onSave,
|
|
2875
|
+
isActive: this.validateForm()
|
|
2876
|
+
}, "Save"));
|
|
3053
2877
|
}
|
|
3054
2878
|
}, {
|
|
3055
|
-
key: "
|
|
3056
|
-
value: function
|
|
3057
|
-
var
|
|
2879
|
+
key: "renderMain",
|
|
2880
|
+
value: function renderMain() {
|
|
2881
|
+
var _this4 = this;
|
|
3058
2882
|
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
hasPadding: true,
|
|
3071
|
-
buttons: [{
|
|
3072
|
-
type: 'primaryAction',
|
|
3073
|
-
onClick: this.onSave,
|
|
3074
|
-
isActive: !submitting && this.isJobTypeValid(),
|
|
3075
|
-
text: submitting ? 'Saving...' : 'Save',
|
|
3076
|
-
className: 'popupButton'
|
|
3077
|
-
}, {
|
|
3078
|
-
type: 'outlinedAction',
|
|
3079
|
-
onClick: this.onHideJobType,
|
|
3080
|
-
isActive: !submitting,
|
|
3081
|
-
text: 'Cancel',
|
|
3082
|
-
className: 'popupButton'
|
|
3083
|
-
}],
|
|
3084
|
-
onClose: this.onHideJobType,
|
|
3085
|
-
title: jobTypeId ? 'Edit Request Type' : 'Create New Request Type'
|
|
3086
|
-
}, /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
3087
|
-
id: "jobTypeName",
|
|
2883
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2884
|
+
style: {
|
|
2885
|
+
marginBottom: 15
|
|
2886
|
+
}
|
|
2887
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2888
|
+
className: "padding-60 paddingVertical-40 bottomDivideBorder"
|
|
2889
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components.Text, {
|
|
2890
|
+
type: "formTitleLarge",
|
|
2891
|
+
className: "marginBottom-24"
|
|
2892
|
+
}, this.state.infoId == null ? 'New' : 'Edit', " Request"), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
2893
|
+
id: "userName",
|
|
3088
2894
|
type: "text",
|
|
3089
|
-
label: "
|
|
3090
|
-
placeholder: "
|
|
3091
|
-
value:
|
|
3092
|
-
onChange:
|
|
2895
|
+
label: "Name",
|
|
2896
|
+
placeholder: "Insert name here",
|
|
2897
|
+
value: this.state.userName,
|
|
2898
|
+
onChange: function onChange(e) {
|
|
2899
|
+
return _this4.onHandleChange(e);
|
|
2900
|
+
},
|
|
3093
2901
|
isRequired: true,
|
|
2902
|
+
alwaysShowLabel: true,
|
|
3094
2903
|
isValid: function isValid() {
|
|
3095
|
-
return !___default['default'].isEmpty(
|
|
2904
|
+
return !___default['default'].isEmpty(_this4.state.userName);
|
|
3096
2905
|
},
|
|
3097
2906
|
showError: function showError() {
|
|
3098
|
-
return showWarnings && ___default['default'].isEmpty(
|
|
2907
|
+
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.userName);
|
|
2908
|
+
}
|
|
2909
|
+
}), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
2910
|
+
id: "room",
|
|
2911
|
+
type: "text",
|
|
2912
|
+
label: "Location",
|
|
2913
|
+
placeholder: "Insert address here",
|
|
2914
|
+
value: this.state.room,
|
|
2915
|
+
onChange: function onChange(e) {
|
|
2916
|
+
return _this4.onHandleChange(e);
|
|
3099
2917
|
},
|
|
3100
|
-
|
|
2918
|
+
isRequired: true,
|
|
2919
|
+
alwaysShowLabel: true,
|
|
2920
|
+
isValid: function isValid() {
|
|
2921
|
+
return !___default['default'].isEmpty(_this4.state.room);
|
|
2922
|
+
},
|
|
2923
|
+
showError: function showError() {
|
|
2924
|
+
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.room);
|
|
2925
|
+
}
|
|
3101
2926
|
}), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
3102
|
-
id: "
|
|
2927
|
+
id: "phone",
|
|
3103
2928
|
type: "text",
|
|
3104
|
-
label: "
|
|
3105
|
-
placeholder: "
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
onChange:
|
|
2929
|
+
label: "Contact number",
|
|
2930
|
+
placeholder: "04XX XXX XXX",
|
|
2931
|
+
value: this.state.phone // showError={this.state.showWarnings && !this.validateImage()}
|
|
2932
|
+
,
|
|
2933
|
+
onChange: function onChange(e) {
|
|
2934
|
+
return _this4.onHandleChange(e);
|
|
2935
|
+
},
|
|
2936
|
+
alwaysShowLabel: true
|
|
2937
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
2938
|
+
style: {
|
|
2939
|
+
marginBottom: 15
|
|
2940
|
+
}
|
|
2941
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components.Text, {
|
|
2942
|
+
type: "formLabel"
|
|
2943
|
+
}, "Job Type"), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.DropdownButton, {
|
|
2944
|
+
style: {
|
|
2945
|
+
minWidth: 80
|
|
2946
|
+
},
|
|
2947
|
+
bsStyle: "default",
|
|
2948
|
+
title: this.state.type,
|
|
2949
|
+
id: "typeSelect",
|
|
2950
|
+
onSelect: this.onSelectType
|
|
2951
|
+
}, this.renderTypeOptions())), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
2952
|
+
id: "title",
|
|
2953
|
+
label: "Title for the work required",
|
|
2954
|
+
type: "textarea",
|
|
2955
|
+
placeholder: "Title for the work required",
|
|
2956
|
+
value: this.state.title,
|
|
2957
|
+
onChange: function onChange(e) {
|
|
2958
|
+
return _this4.onHandleChange(e);
|
|
2959
|
+
},
|
|
2960
|
+
inputStyle: {
|
|
2961
|
+
height: 80
|
|
2962
|
+
},
|
|
3109
2963
|
isRequired: true,
|
|
3110
|
-
isValid:
|
|
2964
|
+
isValid: function isValid() {
|
|
2965
|
+
return !___default['default'].isEmpty(_this4.state.title);
|
|
2966
|
+
},
|
|
3111
2967
|
showError: function showError() {
|
|
3112
|
-
return showWarnings &&
|
|
2968
|
+
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.title);
|
|
3113
2969
|
},
|
|
3114
2970
|
alwaysShowLabel: true
|
|
3115
2971
|
}), /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
3116
|
-
id: "
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
placeholder: "
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
2972
|
+
id: "description",
|
|
2973
|
+
label: "Description of work required",
|
|
2974
|
+
type: "textarea",
|
|
2975
|
+
placeholder: "Description of work required",
|
|
2976
|
+
value: this.state.description,
|
|
2977
|
+
onChange: function onChange(e) {
|
|
2978
|
+
return _this4.onHandleChange(e);
|
|
2979
|
+
},
|
|
2980
|
+
inputStyle: {
|
|
2981
|
+
height: 80
|
|
2982
|
+
},
|
|
2983
|
+
alwaysShowLabel: true
|
|
2984
|
+
}), /*#__PURE__*/React__default['default'].createElement(Components.RadioButton, {
|
|
2985
|
+
label: "Person must be home during work?",
|
|
2986
|
+
isActive: this.state.isHome,
|
|
2987
|
+
options: [{
|
|
2988
|
+
Label: 'No',
|
|
2989
|
+
Value: false,
|
|
2990
|
+
onChange: function onChange() {
|
|
2991
|
+
return _this4.setState({
|
|
2992
|
+
isHome: false
|
|
2993
|
+
});
|
|
2994
|
+
}
|
|
2995
|
+
}, {
|
|
2996
|
+
Label: 'Yes',
|
|
2997
|
+
Value: true,
|
|
2998
|
+
onChange: function onChange() {
|
|
2999
|
+
return _this4.setState({
|
|
3000
|
+
isHome: true
|
|
3001
|
+
});
|
|
3002
|
+
}
|
|
3003
|
+
}]
|
|
3004
|
+
}), this.state.isHome && /*#__PURE__*/React__default['default'].createElement(Components.GenericInput, {
|
|
3005
|
+
style: {
|
|
3006
|
+
marginTop: 16
|
|
3007
|
+
},
|
|
3008
|
+
label: "Description of person's available times",
|
|
3009
|
+
id: "homeText",
|
|
3010
|
+
type: "textarea",
|
|
3011
|
+
placeholder: "Description of person's available times",
|
|
3012
|
+
value: this.state.homeText,
|
|
3013
|
+
onChange: function onChange(e) {
|
|
3014
|
+
return _this4.onHandleChange(e);
|
|
3015
|
+
},
|
|
3016
|
+
inputStyle: {
|
|
3017
|
+
height: 80
|
|
3018
|
+
},
|
|
3123
3019
|
isRequired: true,
|
|
3124
3020
|
isValid: function isValid() {
|
|
3125
|
-
return !___default['default'].isEmpty(
|
|
3021
|
+
return !___default['default'].isEmpty(_this4.state.homeText);
|
|
3126
3022
|
},
|
|
3127
3023
|
showError: function showError() {
|
|
3128
|
-
return showWarnings && ___default['default'].isEmpty(
|
|
3024
|
+
return _this4.state.showWarnings && ___default['default'].isEmpty(_this4.state.homeText);
|
|
3129
3025
|
},
|
|
3130
3026
|
alwaysShowLabel: true
|
|
3131
|
-
}));
|
|
3027
|
+
})));
|
|
3132
3028
|
}
|
|
3133
3029
|
}, {
|
|
3134
3030
|
key: "render",
|
|
3135
3031
|
value: function render() {
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
style: {
|
|
3143
|
-
position: 'relative'
|
|
3144
|
-
}
|
|
3145
|
-
}, this.renderJobTypes()), this.renderNewUserTypePopup()));
|
|
3032
|
+
var success = this.state.success;
|
|
3033
|
+
return /*#__PURE__*/React__default['default'].createElement(Components.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageContents, {
|
|
3034
|
+
noBottomButtons: success
|
|
3035
|
+
}, /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageSection, {
|
|
3036
|
+
className: "pageSectionWrapper--newPopup"
|
|
3037
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderSuccess(), !success && this.renderMain()))), /*#__PURE__*/React__default['default'].createElement(Components.OverlayPageBottomButtons, null, this.renderSubmit()));
|
|
3146
3038
|
}
|
|
3147
3039
|
}]);
|
|
3148
3040
|
|
|
3149
|
-
return
|
|
3041
|
+
return AddJob;
|
|
3150
3042
|
}(React.Component);
|
|
3151
3043
|
|
|
3152
3044
|
var mapStateToProps = function mapStateToProps(state) {
|
|
3153
|
-
var jobtypes = state.maintenance.jobtypes;
|
|
3154
3045
|
var auth = state.auth;
|
|
3155
3046
|
return {
|
|
3156
|
-
jobtypes: jobtypes,
|
|
3157
3047
|
auth: auth
|
|
3158
3048
|
};
|
|
3159
3049
|
};
|
|
3160
3050
|
|
|
3161
|
-
var
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3051
|
+
var AddJob$1 = reactRedux.connect(mapStateToProps, {
|
|
3052
|
+
jobsUpdate: jobsUpdate,
|
|
3053
|
+
jobsLoaded: jobsLoaded,
|
|
3054
|
+
addRecentlyCreated: Actions.addRecentlyCreated
|
|
3055
|
+
})(reactRouter.withRouter(AddJob));
|
|
3165
3056
|
|
|
3166
3057
|
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; }
|
|
3167
3058
|
|
|
@@ -3556,8 +3447,7 @@ var Reducers = {
|
|
|
3556
3447
|
var Screens = {
|
|
3557
3448
|
RequestsHub: RequestsHub$1,
|
|
3558
3449
|
Job: Job$1,
|
|
3559
|
-
AddJob: AddJob$1
|
|
3560
|
-
JobTypes: JobTypes$1
|
|
3450
|
+
AddJob: AddJob$1
|
|
3561
3451
|
};
|
|
3562
3452
|
|
|
3563
3453
|
exports.ActivityText = ActivityText;
|