orc-shared 1.5.0-dev.9 → 1.5.1-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/actions/navigation.js +16 -1
  2. package/dist/actions/requestsApi.js +1 -0
  3. package/dist/actions/tasks.js +190 -0
  4. package/dist/buildStore.js +3 -1
  5. package/dist/components/AppFrame/Sidebar.js +4 -8
  6. package/dist/components/CategoryList.js +6 -0
  7. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/DiscountedPrice.js +1 -0
  8. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/InformationItem.js +13 -5
  9. package/dist/components/MaterialUI/DataDisplay/TooltippedElements/MultipleLinesText.js +4 -2
  10. package/dist/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +43 -46
  11. package/dist/components/MaterialUI/hocs/withDeferredTooltip.js +3 -2
  12. package/dist/components/Navigation/index.js +0 -1
  13. package/dist/components/Routing/Page.js +4 -1
  14. package/dist/components/Routing/SegmentPage.js +4 -1
  15. package/dist/components/Routing/SubPage.js +5 -6
  16. package/dist/components/Routing/withWaypointing.js +1 -1
  17. package/dist/components/TaskDetailsModal.js +193 -0
  18. package/dist/constants.js +16 -1
  19. package/dist/reducers/navigation.js +16 -0
  20. package/dist/reducers/request.js +4 -0
  21. package/dist/reducers/tasks.js +99 -0
  22. package/dist/selectors/authentication.js +17 -1
  23. package/dist/selectors/tasks.js +66 -0
  24. package/dist/sharedMessages.js +17 -1
  25. package/dist/utils/propertyHelper.js +35 -0
  26. package/dist/whyDidYouRerender.js +1 -0
  27. package/package.json +5 -5
  28. package/src/actions/navigation.js +7 -0
  29. package/src/actions/navigation.test.js +12 -0
  30. package/src/actions/tasks.js +77 -0
  31. package/src/actions/tasks.test.js +169 -0
  32. package/src/buildStore.js +2 -0
  33. package/src/components/AppFrame/About.test.js +3 -3
  34. package/src/components/AppFrame/Sidebar.js +4 -3
  35. package/src/components/MaterialUI/DataDisplay/PredefinedElements/InformationItem.js +15 -3
  36. package/src/components/MaterialUI/DataDisplay/TooltippedElements/MultipleLinesText.js +2 -1
  37. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +39 -27
  38. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.test.js +39 -34
  39. package/src/components/MaterialUI/hocs/withDeferredTooltip.js +2 -1
  40. package/src/components/MaterialUI/hocs/withDeferredTooltip.test.js +52 -0
  41. package/src/components/Routing/Page.js +12 -1
  42. package/src/components/Routing/SegmentPage.js +12 -1
  43. package/src/components/Routing/SubPage.js +4 -7
  44. package/src/components/Routing/SubPage.test.js +46 -0
  45. package/src/components/TaskDetailsModal.js +132 -0
  46. package/src/components/TaskDetailsModal.test.js +317 -0
  47. package/src/components/Text.test.js +44 -59
  48. package/src/constants.js +13 -0
  49. package/src/hooks/useLabelMessage.test.js +16 -10
  50. package/src/reducers/navigation.js +24 -0
  51. package/src/reducers/navigation.test.js +38 -0
  52. package/src/reducers/request.js +4 -0
  53. package/src/reducers/request.test.js +11 -0
  54. package/src/reducers/tasks.js +56 -0
  55. package/src/reducers/tasks.test.js +404 -0
  56. package/src/selectors/authentication.js +13 -0
  57. package/src/selectors/authentication.test.js +322 -0
  58. package/src/selectors/tasks.js +16 -0
  59. package/src/selectors/tasks.test.js +60 -0
  60. package/src/sharedMessages.js +17 -1
  61. package/src/translations/en-US.json +16 -12
  62. package/src/translations/fr-CA.json +16 -12
  63. package/src/utils/propertyHelper.js +38 -0
  64. package/src/utils/propertyHelper.test.js +160 -0
  65. package/src/utils/timezoneHelper.test.js +4 -2
@@ -52,7 +52,8 @@ var SubPage = function SubPage(_ref) {
52
52
  location = _ref.location,
53
53
  history = _ref.history,
54
54
  root = _ref.root,
55
- modulePrependPath = _ref.modulePrependPath;
55
+ modulePrependPath = _ref.modulePrependPath,
56
+ parentUrlPattern = _ref.parentUrlPattern;
56
57
  var classes = useStyles();
57
58
  var dispatch = (0, _reactRedux.useDispatch)();
58
59
  var View = config.component,
@@ -60,15 +61,13 @@ var SubPage = function SubPage(_ref) {
60
61
  var pattern = new _urlPattern.default(root);
61
62
  var baseHref = pattern.stringify(match.params);
62
63
  var path = location.pathname;
63
- var basePathArr = path.split("/");
64
- basePathArr.pop();
65
- var basePath = basePathArr.join("/");
66
64
  var WrappedView = (0, _react.useMemo)(function () {
67
65
  return (0, _withErrorBoundary.default)(path)((0, _withWaypointing.default)(View));
68
66
  }, [path, View]);
69
67
  var closeSubPage = function closeSubPage() {
70
- history.push(basePath);
71
- dispatch((0, _navigation.mapHref)(basePath, basePath));
68
+ var parentHref = parentUrlPattern.stringify(match.params);
69
+ history.push(parentHref);
70
+ dispatch((0, _navigation.mapHref)(parentHref, parentHref));
72
71
  };
73
72
  var message = /*#__PURE__*/_react.default.createElement(WrappedView, _extends({
74
73
  match: match,
@@ -27,7 +27,7 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
27
27
  };
28
28
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
29
29
  return a;
30
- };
30
+ }; // HOC that sets the currently matched route of a component in state, including params
31
31
  var withWaypointing = function withWaypointing(Comp, isVisible, componentProps) {
32
32
  if (isVisible === void 0) {
33
33
  isVisible = true;
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useStyles = exports.default = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
6
+ var _reactRedux = require("react-redux");
7
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
8
+ var _reactIntl = require("react-intl");
9
+ var _styles = require("@material-ui/core/styles");
10
+ var _constants = require("../constants");
11
+ var _useSelectorAndUnwrap = _interopRequireDefault(require("../hooks/useSelectorAndUnwrap"));
12
+ var _InformationItem = _interopRequireDefault(require("./MaterialUI/DataDisplay/PredefinedElements/InformationItem"));
13
+ var _tasks = require("../selectors/tasks");
14
+ var _propertyHelper = require("../utils/propertyHelper");
15
+ var _useLoader = _interopRequireDefault(require("../hooks/useLoader"));
16
+ var _tasks2 = require("../actions/tasks");
17
+ var _modalProps = _interopRequireDefault(require("./MaterialUI/DataDisplay/modalProps"));
18
+ var _Modal = _interopRequireDefault(require("./MaterialUI/DataDisplay/Modal"));
19
+ var _metadata = require("../selectors/metadata");
20
+ var _sharedMessages = _interopRequireDefault(require("../sharedMessages"));
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ (function () {
25
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
26
+ enterModule && enterModule(module);
27
+ })();
28
+ (function () {
29
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
30
+ enterModule && enterModule(module);
31
+ })();
32
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
33
+ return a;
34
+ };
35
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
36
+ return a;
37
+ };
38
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
39
+ return {
40
+ actionPanel: {
41
+ display: "flex",
42
+ marginLeft: "auto",
43
+ flex: "1 1 0",
44
+ justifyContent: "flex-end"
45
+ },
46
+ taskContainer: {
47
+ display: "flex",
48
+ width: "100%",
49
+ flexDirection: "column",
50
+ "&>div": {
51
+ "&:last-child": {
52
+ flex: 1,
53
+ display: "flex",
54
+ flexDirection: "column",
55
+ "&>textarea": {
56
+ overflowY: "scroll",
57
+ resize: "none",
58
+ flex: 1
59
+ }
60
+ }
61
+ }
62
+ }
63
+ };
64
+ });
65
+ exports.useStyles = useStyles;
66
+ var isTaskCompleted = function isTaskCompleted(status) {
67
+ switch (status) {
68
+ case _constants.taskStatuses.faulted:
69
+ case _constants.taskStatuses.ranToCompletion:
70
+ case _constants.taskStatuses.canceled:
71
+ case _constants.taskStatuses.ignored:
72
+ return true;
73
+ default:
74
+ return false;
75
+ }
76
+ };
77
+ var TaskDetailsModal = function TaskDetailsModal(_ref) {
78
+ var taskId = _ref.taskId,
79
+ open = _ref.open,
80
+ closeModal = _ref.closeModal;
81
+ var classes = useStyles();
82
+ var dispatch = (0, _reactRedux.useDispatch)();
83
+ var taskDetails = (0, _useSelectorAndUnwrap.default)((0, _tasks.taskInfo)(taskId));
84
+ var logs = (0, _useSelectorAndUnwrap.default)((0, _tasks.taskLogs)(taskId));
85
+ var logsText = logs.sort(function (a, b) {
86
+ return (0, _propertyHelper.compareObjectProperty)(a, b, "executionTime");
87
+ }).reduce(function (accumulator, currentValue) {
88
+ if (currentValue.message === null) {
89
+ return accumulator;
90
+ }
91
+ if (accumulator === "") {
92
+ return currentValue.message.trim();
93
+ }
94
+ return accumulator + "\n" + currentValue.message.trim();
95
+ }, "");
96
+ (0, _useLoader.default)((0, _tasks2.getTaskInfo)(taskId), function () {
97
+ return taskDetails !== null;
98
+ });
99
+ var internalCloseModal = function internalCloseModal() {
100
+ dispatch((0, _tasks2.clearTaskLog)(taskId));
101
+ closeModal();
102
+ };
103
+ var taskStatus = taskDetails == null ? void 0 : taskDetails.status;
104
+ (0, _react.useEffect)(function () {
105
+ var timer = setInterval(function () {
106
+ if (!isTaskCompleted(taskStatus)) {
107
+ dispatch((0, _tasks2.getTaskInfo)(taskId));
108
+ dispatch((0, _tasks2.getTaskLog)(taskId, false));
109
+ }
110
+ }, 10000);
111
+ return function () {
112
+ return clearInterval(timer);
113
+ };
114
+ }, [dispatch, taskId, taskStatus]);
115
+ var localizedStatus = (0, _reactRedux.useSelector)((0, _metadata.namedLookupLocalizedSelector)("order", "TaskStatus", taskStatus));
116
+ var modalProps = new _modalProps.default();
117
+ var titleComponent = /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _sharedMessages.default.taskInProgressModalTitle);
118
+ modalProps.set(_modalProps.default.propNames.title, titleComponent);
119
+ modalProps.set(_modalProps.default.propNames.open, open);
120
+ modalProps.set(_modalProps.default.propNames.type, "wide");
121
+ modalProps.set(_modalProps.default.propNames.backdropClickCallback, internalCloseModal);
122
+ var actionPanel = /*#__PURE__*/_react.default.createElement("div", {
123
+ className: classes.actionPanel
124
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
125
+ key: _sharedMessages.default.close.id,
126
+ "data-qa": _sharedMessages.default.close.id,
127
+ variant: "contained",
128
+ color: "primary",
129
+ disableElevation: true,
130
+ onClick: function onClick(e) {
131
+ return internalCloseModal(e);
132
+ }
133
+ }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, _sharedMessages.default.close)));
134
+ modalProps.set(_modalProps.default.propNames.actionPanel, actionPanel);
135
+ var taskContent = /*#__PURE__*/_react.default.createElement("div", {
136
+ className: classes.taskContainer
137
+ }, /*#__PURE__*/_react.default.createElement(_InformationItem.default, {
138
+ label: _sharedMessages.default.taskId
139
+ }, taskId), /*#__PURE__*/_react.default.createElement(_InformationItem.default, {
140
+ label: _sharedMessages.default.taskStatus
141
+ }, localizedStatus), /*#__PURE__*/_react.default.createElement(_InformationItem.default, {
142
+ label: _sharedMessages.default.taskLogs
143
+ }, /*#__PURE__*/_react.default.createElement("textarea", {
144
+ readOnly: true,
145
+ value: logsText
146
+ })));
147
+ return /*#__PURE__*/_react.default.createElement(_Modal.default, {
148
+ message: taskContent,
149
+ modalProps: modalProps
150
+ });
151
+ };
152
+ __signature__(TaskDetailsModal, "useStyles{classes}\nuseDispatch{dispatch}\nuseSelectorAndUnwrap{taskDetails}\nuseSelectorAndUnwrap{logs}\nuseLoader{}\nuseEffect{}\nuseSelector{localizedStatus}", function () {
153
+ return [useStyles, _reactRedux.useDispatch, _useSelectorAndUnwrap.default, _useSelectorAndUnwrap.default, _useLoader.default, _reactRedux.useSelector];
154
+ });
155
+ __signature__(TaskDetailsModal, "useStyles{classes}\nuseDispatch{dispatch}\nuseSelectorAndUnwrap{taskDetails}\nuseSelectorAndUnwrap{logs}\nuseLoader{}\nuseEffect{}\nuseSelector{localizedStatus}", function () {
156
+ return [useStyles, _reactRedux.useDispatch, _useSelectorAndUnwrap.default, _useSelectorAndUnwrap.default, _useLoader.default, _reactRedux.useSelector];
157
+ });
158
+ var _default = TaskDetailsModal;
159
+ var _default2 = _default;
160
+ var _default3 = _default2;
161
+ exports.default = _default3;
162
+ ;
163
+ (function () {
164
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
165
+ if (!reactHotLoader) {
166
+ return;
167
+ }
168
+ reactHotLoader.register(useStyles, "useStyles", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
169
+ reactHotLoader.register(isTaskCompleted, "isTaskCompleted", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
170
+ reactHotLoader.register(TaskDetailsModal, "TaskDetailsModal", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
171
+ reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
172
+ })();
173
+ ;
174
+ (function () {
175
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
176
+ leaveModule && leaveModule(module);
177
+ })();
178
+ ;
179
+ (function () {
180
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
181
+ if (!reactHotLoader) {
182
+ return;
183
+ }
184
+ reactHotLoader.register(useStyles, "useStyles", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
185
+ reactHotLoader.register(isTaskCompleted, "isTaskCompleted", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
186
+ reactHotLoader.register(TaskDetailsModal, "TaskDetailsModal", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
187
+ reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/components/TaskDetailsModal.js");
188
+ })();
189
+ ;
190
+ (function () {
191
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
192
+ leaveModule && leaveModule(module);
193
+ })();
package/dist/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.validationErrorTypes = exports.scopeTypes = exports.scopeConfirmationDialogTypes = exports.roleGroups = exports.requestStates = exports.requestStateOperations = exports.requestStateOperationMap = exports.platformRoles = exports.overtureModule = exports.infoBar = exports.displayMode = exports.definitionType = exports.attributeDataType = void 0;
4
+ exports.validationErrorTypes = exports.taskStatuses = exports.scopeTypes = exports.scopeConfirmationDialogTypes = exports.roleGroups = exports.requestStates = exports.requestStateOperations = exports.requestStateOperationMap = exports.platformRoles = exports.overtureModule = exports.infoBar = exports.displayMode = exports.definitionType = exports.attributeDataType = void 0;
5
5
  (function () {
6
6
  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
7
7
  enterModule && enterModule(module);
@@ -128,6 +128,19 @@ var requestStateOperationMap = {
128
128
  update: "updates"
129
129
  };
130
130
  exports.requestStateOperationMap = requestStateOperationMap;
131
+ var taskStatuses = {
132
+ created: "Created",
133
+ waitingToRun: "WaitingToRun",
134
+ running: "Running",
135
+ ranToCompletion: "RanToCompletion",
136
+ canceled: "Canceled",
137
+ faulted: "Faulted",
138
+ idle: "Idle",
139
+ waitingToCancel: "WaitingToCancel",
140
+ ignored: "Ignored",
141
+ queuedForSequence: "QueuedForSequence"
142
+ };
143
+ exports.taskStatuses = taskStatuses;
131
144
  ;
132
145
  (function () {
133
146
  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
@@ -147,6 +160,7 @@ exports.requestStateOperationMap = requestStateOperationMap;
147
160
  reactHotLoader.register(definitionType, "definitionType", "/home/vsts/work/1/s/src/constants.js");
148
161
  reactHotLoader.register(requestStateOperations, "requestStateOperations", "/home/vsts/work/1/s/src/constants.js");
149
162
  reactHotLoader.register(requestStateOperationMap, "requestStateOperationMap", "/home/vsts/work/1/s/src/constants.js");
163
+ reactHotLoader.register(taskStatuses, "taskStatuses", "/home/vsts/work/1/s/src/constants.js");
150
164
  })();
151
165
  ;
152
166
  (function () {
@@ -172,6 +186,7 @@ exports.requestStateOperationMap = requestStateOperationMap;
172
186
  reactHotLoader.register(definitionType, "definitionType", "/home/vsts/work/1/s/src/constants.js");
173
187
  reactHotLoader.register(requestStateOperations, "requestStateOperations", "/home/vsts/work/1/s/src/constants.js");
174
188
  reactHotLoader.register(requestStateOperationMap, "requestStateOperationMap", "/home/vsts/work/1/s/src/constants.js");
189
+ reactHotLoader.register(taskStatuses, "taskStatuses", "/home/vsts/work/1/s/src/constants.js");
175
190
  })();
176
191
  ;
177
192
  (function () {
@@ -83,6 +83,22 @@ var navigationReducer = function navigationReducer(state, action) {
83
83
  s.deleteIn(["tabIndex", remainingSection]);
84
84
  }
85
85
  });
86
+ case _navigation.REMOVE_MODULE_TABS:
87
+ return state.withMutations(function (s) {
88
+ var module = action.payload.module;
89
+ s.deleteIn(["moduleTabs", module]);
90
+ s.deleteIn(["closingTabsHandlerActions", module]);
91
+ s.get("tabIndex").keySeq().forEach(function (key) {
92
+ if (key.startsWith(module)) {
93
+ s.deleteIn(["tabIndex", key]);
94
+ }
95
+ });
96
+ s.get("mappedHrefs").keySeq().forEach(function (key) {
97
+ if (key.startsWith(module)) {
98
+ s.deleteIn(["mappedHrefs", key]);
99
+ }
100
+ });
101
+ });
86
102
  case _navigation.SET_HREF_CONFIG:
87
103
  return state.set("config", _immutable.default.fromJS(action.payload));
88
104
  case _navigation.SET_CURRENT_PREPEND_PATH:
@@ -33,6 +33,10 @@ var requestReducer = function requestReducer(state, action) {
33
33
  state = initialState;
34
34
  }
35
35
  if (action.type.endsWith("_REQUEST")) {
36
+ if ((0, _utils.safeGet)(action, "meta", "addToActiveRequests") === false) {
37
+ // this flag should only be used by requests triggered by a background process to avoid the spinner
38
+ return state;
39
+ }
36
40
  var requestName = action.type.replace(/_REQUEST$/, "");
37
41
  return state.setIn(["actives", requestName], true);
38
42
  }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _immutable = _interopRequireDefault(require("immutable"));
6
+ var _utils = require("../utils");
7
+ var _tasks = require("../actions/tasks");
8
+ var _propertyHelper = require("../utils/propertyHelper");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ (function () {
11
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
12
+ enterModule && enterModule(module);
13
+ })();
14
+ (function () {
15
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
16
+ enterModule && enterModule(module);
17
+ })();
18
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
19
+ return a;
20
+ };
21
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
22
+ return a;
23
+ };
24
+ var initialState = _immutable.default.fromJS({
25
+ tasks: [],
26
+ taskInfos: {},
27
+ logs: {}
28
+ });
29
+ var tasks = function tasks(state, action) {
30
+ var _action$payload;
31
+ if (state === void 0) {
32
+ state = initialState;
33
+ }
34
+ switch (action.type) {
35
+ case _tasks.GET_TASKINFO_SUCCESS:
36
+ return state.setIn(["taskInfos", action.payload.taskId], _immutable.default.fromJS(action.payload));
37
+ case _tasks.GET_TASK_LIST_SUCCESS:
38
+ return state.set("tasks", _immutable.default.fromJS(action.payload.sort(function (a, b) {
39
+ return (0, _propertyHelper.compareObjectProperty)(a, b, "created");
40
+ })));
41
+ case _tasks.DELETE_TASK_REQUEST:
42
+ var deleteTaskId = (0, _utils.safeGet)(action, "meta", "taskId");
43
+ return state.withMutations(function (s) {
44
+ s.set("tasks", s.get("tasks").filter(function (task) {
45
+ return task.get("taskId") !== deleteTaskId;
46
+ }));
47
+ s.deleteIn(["logs", deleteTaskId]);
48
+ s.deleteIn(["taskInfos", deleteTaskId]);
49
+ });
50
+ case _tasks.GET_TASK_LOG_SUCCESS:
51
+ var logTaskId = (0, _utils.safeGet)(action, "meta", "taskId");
52
+ if (((_action$payload = action.payload) == null ? void 0 : _action$payload.length) > 0) {
53
+ return state.setIn(["logs", logTaskId], _immutable.default.fromJS(action.payload.sort(function (a, b) {
54
+ return (0, _propertyHelper.compareObjectProperty)(a, b, "executionTime");
55
+ })));
56
+ } else {
57
+ return state.deleteIn(["logs", logTaskId]);
58
+ }
59
+ case _tasks.CLEAR_TASK_LOG:
60
+ var taskId = (0, _utils.safeGet)(action, "meta", "taskId");
61
+ return state.deleteIn(["logs", taskId]);
62
+ default:
63
+ return state;
64
+ }
65
+ };
66
+ var _default = tasks;
67
+ var _default2 = _default;
68
+ var _default3 = _default2;
69
+ exports.default = _default3;
70
+ ;
71
+ (function () {
72
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
73
+ if (!reactHotLoader) {
74
+ return;
75
+ }
76
+ reactHotLoader.register(initialState, "initialState", "/home/vsts/work/1/s/src/reducers/tasks.js");
77
+ reactHotLoader.register(tasks, "tasks", "/home/vsts/work/1/s/src/reducers/tasks.js");
78
+ reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/reducers/tasks.js");
79
+ })();
80
+ ;
81
+ (function () {
82
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
83
+ leaveModule && leaveModule(module);
84
+ })();
85
+ ;
86
+ (function () {
87
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
88
+ if (!reactHotLoader) {
89
+ return;
90
+ }
91
+ reactHotLoader.register(initialState, "initialState", "/home/vsts/work/1/s/src/reducers/tasks.js");
92
+ reactHotLoader.register(tasks, "tasks", "/home/vsts/work/1/s/src/reducers/tasks.js");
93
+ reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/reducers/tasks.js");
94
+ })();
95
+ ;
96
+ (function () {
97
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
98
+ leaveModule && leaveModule(module);
99
+ })();
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.selectRolesClaims = exports.selectGroupRolesClaims = exports.selectCurrentUsername = exports.hasReaderPermissionsForScope = exports.hasReaderPermissions = exports.hasEditorPermissionsForScope = exports.hasEditorPermissions = exports.hasAdministratorPermissionsForScope = exports.hasAdministratorPermissions = void 0;
4
+ exports.selectRolesClaims = exports.selectGroupRolesClaims = exports.selectCurrentUsername = exports.hasReaderPermissionsForScope = exports.hasReaderPermissions = exports.hasPermissionsForRoleAndScope = exports.hasPermissionsForRole = exports.hasEditorPermissionsForScope = exports.hasEditorPermissions = exports.hasAdministratorPermissionsForScope = exports.hasAdministratorPermissions = void 0;
5
5
  var _reselect = require("reselect");
6
6
  var _constants = require("./../constants");
7
7
  var _navigation = require("./navigation");
@@ -61,6 +61,18 @@ var hasEditorPermissionsForScope = function hasEditorPermissionsForScope(scope,
61
61
  });
62
62
  };
63
63
  exports.hasEditorPermissionsForScope = hasEditorPermissionsForScope;
64
+ var hasPermissionsForRole = function hasPermissionsForRole(roleGroup, role) {
65
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
66
+ return hasRolePermissions(appRolesClaims, currentScope, role, scopes);
67
+ });
68
+ };
69
+ exports.hasPermissionsForRole = hasPermissionsForRole;
70
+ var hasPermissionsForRoleAndScope = function hasPermissionsForRoleAndScope(scope, roleGroup, role) {
71
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _scope.getScopesSelector, function (appRolesClaims, scopes) {
72
+ return hasRolePermissions(appRolesClaims, scope, role, scopes);
73
+ });
74
+ };
75
+ exports.hasPermissionsForRoleAndScope = hasPermissionsForRoleAndScope;
64
76
  var hasAdministratorPermissions = function hasAdministratorPermissions(roleGroup) {
65
77
  return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
66
78
  return hasRolePermissions(appRolesClaims, currentScope, _constants.platformRoles.Administrator, scopes);
@@ -98,6 +110,8 @@ exports.hasReaderPermissionsForScope = hasReaderPermissionsForScope;
98
110
  reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
99
111
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
100
112
  reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
113
+ reactHotLoader.register(hasPermissionsForRole, "hasPermissionsForRole", "/home/vsts/work/1/s/src/selectors/authentication.js");
114
+ reactHotLoader.register(hasPermissionsForRoleAndScope, "hasPermissionsForRoleAndScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
101
115
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
102
116
  reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
103
117
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
@@ -121,6 +135,8 @@ exports.hasReaderPermissionsForScope = hasReaderPermissionsForScope;
121
135
  reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
122
136
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
123
137
  reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
138
+ reactHotLoader.register(hasPermissionsForRole, "hasPermissionsForRole", "/home/vsts/work/1/s/src/selectors/authentication.js");
139
+ reactHotLoader.register(hasPermissionsForRoleAndScope, "hasPermissionsForRoleAndScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
124
140
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
125
141
  reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
126
142
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.taskLogs = exports.taskInfo = void 0;
5
+ var _immutable = _interopRequireDefault(require("immutable"));
6
+ var _reselect = require("reselect");
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ (function () {
9
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
10
+ enterModule && enterModule(module);
11
+ })();
12
+ (function () {
13
+ var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
14
+ enterModule && enterModule(module);
15
+ })();
16
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
17
+ return a;
18
+ };
19
+ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
20
+ return a;
21
+ };
22
+ var tasksData = function tasksData(state) {
23
+ return state.get("tasks");
24
+ };
25
+ var taskInfo = function taskInfo(taskId) {
26
+ return (0, _reselect.createSelector)(tasksData, function (tasks) {
27
+ return tasks.getIn(["taskInfos", taskId]) || null;
28
+ });
29
+ };
30
+ exports.taskInfo = taskInfo;
31
+ var taskLogs = function taskLogs(taskId) {
32
+ return (0, _reselect.createSelector)(tasksData, function (tasks) {
33
+ return tasks.getIn(["logs", taskId]) || _immutable.default.List();
34
+ });
35
+ };
36
+ exports.taskLogs = taskLogs;
37
+ ;
38
+ (function () {
39
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
40
+ if (!reactHotLoader) {
41
+ return;
42
+ }
43
+ reactHotLoader.register(tasksData, "tasksData", "/home/vsts/work/1/s/src/selectors/tasks.js");
44
+ reactHotLoader.register(taskInfo, "taskInfo", "/home/vsts/work/1/s/src/selectors/tasks.js");
45
+ reactHotLoader.register(taskLogs, "taskLogs", "/home/vsts/work/1/s/src/selectors/tasks.js");
46
+ })();
47
+ ;
48
+ (function () {
49
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
50
+ leaveModule && leaveModule(module);
51
+ })();
52
+ ;
53
+ (function () {
54
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
55
+ if (!reactHotLoader) {
56
+ return;
57
+ }
58
+ reactHotLoader.register(tasksData, "tasksData", "/home/vsts/work/1/s/src/selectors/tasks.js");
59
+ reactHotLoader.register(taskInfo, "taskInfo", "/home/vsts/work/1/s/src/selectors/tasks.js");
60
+ reactHotLoader.register(taskLogs, "taskLogs", "/home/vsts/work/1/s/src/selectors/tasks.js");
61
+ })();
62
+ ;
63
+ (function () {
64
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
65
+ leaveModule && leaveModule(module);
66
+ })();
@@ -72,7 +72,7 @@ var sharedMessages = (0, _reactIntl.defineMessages)({
72
72
  },
73
73
  copyright: {
74
74
  id: "orc-shared.copyright",
75
- defaultMessage: "© 2021 Orckestra Technologies Inc."
75
+ defaultMessage: "© {year} Orckestra Technologies Inc."
76
76
  },
77
77
  allRightsReserved: {
78
78
  id: "orc-shared.allRightsReserved",
@@ -269,6 +269,22 @@ var sharedMessages = (0, _reactIntl.defineMessages)({
269
269
  errorUnknown: {
270
270
  id: "orc-shared.errorUnknown",
271
271
  defaultMessage: "Unknown Error"
272
+ },
273
+ taskInProgressModalTitle: {
274
+ id: "orc-shared.taskInProgressModalTitle",
275
+ defaultMessage: "Task In Progress"
276
+ },
277
+ taskId: {
278
+ id: "orc-shared.taskId",
279
+ defaultMessage: "Task ID"
280
+ },
281
+ taskStatus: {
282
+ id: "orc-shared.taskStatus",
283
+ defaultMessage: "Status"
284
+ },
285
+ taskLogs: {
286
+ id: "orc-shared.taskLogs",
287
+ defaultMessage: "Logs"
272
288
  }
273
289
  });
274
290
  var _default = sharedMessages;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ exports.compareObjectPropertyDescending = exports.compareObjectProperty = void 0;
4
5
  exports.getPropertyOrDefault = getPropertyOrDefault;
5
6
  exports.getPropertyOrDefaultFromMap = getPropertyOrDefaultFromMap;
6
7
  exports.isObjectContainsPropertyWithValue = exports.isObjectContainsPropertyWithAnyValue = void 0;
@@ -83,6 +84,36 @@ var isObjectContainsPropertyWithAnyValue = function isObjectContainsPropertyWith
83
84
  return false;
84
85
  };
85
86
  exports.isObjectContainsPropertyWithAnyValue = isObjectContainsPropertyWithAnyValue;
87
+ var compareObjectProperty = function compareObjectProperty(obj1, obj2, propertyName) {
88
+ if (propertyName == null || propertyName === "") {
89
+ return 0;
90
+ }
91
+ var val1 = obj1 == null ? void 0 : obj1[propertyName];
92
+ var val2 = obj2 == null ? void 0 : obj2[propertyName];
93
+ if (val1 === val2) {
94
+ return 0;
95
+ }
96
+ if (val1 < val2) {
97
+ return -1;
98
+ }
99
+ return 1;
100
+ };
101
+ exports.compareObjectProperty = compareObjectProperty;
102
+ var compareObjectPropertyDescending = function compareObjectPropertyDescending(obj1, obj2, propertyName) {
103
+ if (propertyName == null || propertyName === "") {
104
+ return 0;
105
+ }
106
+ var val1 = obj1 == null ? void 0 : obj1[propertyName];
107
+ var val2 = obj2 == null ? void 0 : obj2[propertyName];
108
+ if (val1 === val2) {
109
+ return 0;
110
+ }
111
+ if (val1 > val2) {
112
+ return -1;
113
+ }
114
+ return 1;
115
+ };
116
+ exports.compareObjectPropertyDescending = compareObjectPropertyDescending;
86
117
  ;
87
118
  (function () {
88
119
  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
@@ -95,6 +126,8 @@ exports.isObjectContainsPropertyWithAnyValue = isObjectContainsPropertyWithAnyVa
95
126
  reactHotLoader.register(getPropertyOrDefault, "getPropertyOrDefault", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
96
127
  reactHotLoader.register(isObjectContainsPropertyWithValue, "isObjectContainsPropertyWithValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
97
128
  reactHotLoader.register(isObjectContainsPropertyWithAnyValue, "isObjectContainsPropertyWithAnyValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
129
+ reactHotLoader.register(compareObjectProperty, "compareObjectProperty", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
130
+ reactHotLoader.register(compareObjectPropertyDescending, "compareObjectPropertyDescending", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
98
131
  })();
99
132
  ;
100
133
  (function () {
@@ -113,6 +146,8 @@ exports.isObjectContainsPropertyWithAnyValue = isObjectContainsPropertyWithAnyVa
113
146
  reactHotLoader.register(getPropertyOrDefault, "getPropertyOrDefault", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
114
147
  reactHotLoader.register(isObjectContainsPropertyWithValue, "isObjectContainsPropertyWithValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
115
148
  reactHotLoader.register(isObjectContainsPropertyWithAnyValue, "isObjectContainsPropertyWithAnyValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
149
+ reactHotLoader.register(compareObjectProperty, "compareObjectProperty", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
150
+ reactHotLoader.register(compareObjectPropertyDescending, "compareObjectPropertyDescending", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
116
151
  })();
117
152
  ;
118
153
  (function () {
@@ -8,6 +8,7 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
8
8
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
9
9
  return a;
10
10
  };
11
+ /* istanbul ignore file */
11
12
  // If you want to investigate rerenderer of components, import that file before "react-hot-loader", usually in App.js
12
13
  if (process.env.NODE_ENV === "development") {
13
14
  var whyDidYouRender = require("@welldone-software/why-did-you-render");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "1.5.0-dev.9",
3
+ "version": "1.5.1-dev.2",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -49,7 +49,10 @@
49
49
  ],
50
50
  "devDependencies": {},
51
51
  "peerDependencies": {
52
- "orc-scripts": "1.5.0"
52
+ "orc-scripts": "1.6.1-dev.1"
53
+ },
54
+ "dependencies": {
55
+ "orc-scripts": "1.6.1-dev.1"
53
56
  },
54
57
  "sideEffects": false,
55
58
  "lint-staged": {
@@ -67,8 +70,5 @@
67
70
  "hooks": {
68
71
  "pre-commit": "lint-staged"
69
72
  }
70
- },
71
- "dependencies": {
72
- "orc-scripts": "1.5.0"
73
73
  }
74
74
  }