orc-shared 5.4.0-dev.0 → 5.5.1-dev.1

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 (129) hide show
  1. package/dist/actions/makeApiAction.js +2 -2
  2. package/dist/actions/makeOrcApiAction.js +2 -2
  3. package/dist/actions/metadata.js +2 -2
  4. package/dist/actions/navigation.js +16 -3
  5. package/dist/actions/tasks.js +170 -0
  6. package/dist/buildStore.js +5 -3
  7. package/dist/components/AppFrame/About.js +2 -2
  8. package/dist/components/AppFrame/Preferences.js +2 -3
  9. package/dist/components/AppFrame/Sidebar.js +4 -8
  10. package/dist/components/Form/FieldList.js +5 -6
  11. package/dist/components/Form/Inputs/Text.js +0 -1
  12. package/dist/components/Form/Inputs/Translation.js +2 -2
  13. package/dist/components/List/enhanceColumnDefs.js +2 -2
  14. package/dist/components/MaterialUI/DataDisplay/Modal.js +5 -5
  15. package/dist/components/MaterialUI/DataDisplay/Notification.js +2 -2
  16. package/dist/components/MaterialUI/DataDisplay/NotificationProps.js +2 -2
  17. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/InformationItem.js +13 -5
  18. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/Translations.js +2 -2
  19. package/dist/components/MaterialUI/DataDisplay/TableProps.js +2 -2
  20. package/dist/components/MaterialUI/DataDisplay/TooltippedElements/MultipleLinesText.js +4 -2
  21. package/dist/components/MaterialUI/DataDisplay/TransferList.js +4 -5
  22. package/dist/components/MaterialUI/DataDisplay/chipProps.js +2 -2
  23. package/dist/components/MaterialUI/DataDisplay/collapsableListProps.js +2 -2
  24. package/dist/components/MaterialUI/DataDisplay/dividerProps.js +2 -2
  25. package/dist/components/MaterialUI/DataDisplay/modalProps.js +2 -2
  26. package/dist/components/MaterialUI/DataDisplay/useTableSelection.js +2 -2
  27. package/dist/components/MaterialUI/Inputs/Autocomplete.js +2 -2
  28. package/dist/components/MaterialUI/Inputs/AutocompleteProps.js +2 -2
  29. package/dist/components/MaterialUI/Inputs/Checkbox.js +5 -6
  30. package/dist/components/MaterialUI/Inputs/CheckboxGroup.js +7 -8
  31. package/dist/components/MaterialUI/Inputs/CheckboxGroupProps.js +2 -2
  32. package/dist/components/MaterialUI/Inputs/CheckboxProps.js +2 -2
  33. package/dist/components/MaterialUI/Inputs/DatePicker.js +2 -2
  34. package/dist/components/MaterialUI/Inputs/InputBaseProps.js +2 -2
  35. package/dist/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +43 -46
  36. package/dist/components/MaterialUI/Inputs/RadioProps.js +2 -2
  37. package/dist/components/MaterialUI/Inputs/Select.js +3 -4
  38. package/dist/components/MaterialUI/Inputs/SelectProps.js +2 -2
  39. package/dist/components/MaterialUI/Inputs/StandaloneRadio.js +4 -5
  40. package/dist/components/MaterialUI/Inputs/Switch.js +2 -2
  41. package/dist/components/MaterialUI/Inputs/SwitchProps.js +2 -2
  42. package/dist/components/MaterialUI/Inputs/createInput.js +5 -6
  43. package/dist/components/MaterialUI/Inputs/standaloneRadioProps.js +2 -2
  44. package/dist/components/MaterialUI/Navigation/DropDownMenuProps.js +2 -2
  45. package/dist/components/MaterialUI/ScopeSelector/TreeItem.js +2 -3
  46. package/dist/components/MaterialUI/Surfaces/expansionPanelProps.js +2 -2
  47. package/dist/components/MaterialUI/Surfaces/paperProps.js +2 -2
  48. package/dist/components/MaterialUI/componentProps.js +2 -2
  49. package/dist/components/MaterialUI/hocs/withDeferredTooltip.js +4 -1
  50. package/dist/components/MaterialUI/muiThemes.js +12 -13
  51. package/dist/components/MaterialUI/textProps.js +2 -2
  52. package/dist/components/Navigation/Bar.js +2 -2
  53. package/dist/components/Navigation/index.js +1 -0
  54. package/dist/components/Navigation/useNavigationState.js +2 -2
  55. package/dist/components/Routing/Page.js +4 -1
  56. package/dist/components/Routing/SegmentPage.js +5 -2
  57. package/dist/components/Routing/SubPage.js +21 -8
  58. package/dist/components/Routing/withWaypointing.js +2 -2
  59. package/dist/components/Scope/index.js +2 -2
  60. package/dist/components/TaskDetailsModal.js +191 -0
  61. package/dist/components/Treeview/Node.js +2 -2
  62. package/dist/components/Treeview/index.js +2 -2
  63. package/dist/constants.js +18 -2
  64. package/dist/content/iconsSheet.svg +22 -0
  65. package/dist/content/orckestra-logo-white.png +0 -0
  66. package/dist/getThemeOverrides.js +2 -2
  67. package/dist/hocs/withToggle.js +3 -4
  68. package/dist/hocs/withUpdateHandler.js +2 -2
  69. package/dist/hooks/useEditState.js +6 -4
  70. package/dist/hooks/useEntityLoader.js +2 -2
  71. package/dist/hooks/useFullEntityEditState.js +2 -2
  72. package/dist/hooks/useLabelMessage.js +2 -2
  73. package/dist/hooks/useMultipleFieldEditState.js +2 -2
  74. package/dist/hooks/useNotificationRequestState.js +2 -2
  75. package/dist/reducers/navigation.js +16 -0
  76. package/dist/reducers/request.js +4 -0
  77. package/dist/reducers/tasks.js +98 -0
  78. package/dist/selectors/authentication.js +15 -1
  79. package/dist/selectors/metadata.js +2 -2
  80. package/dist/selectors/modules.js +2 -2
  81. package/dist/selectors/tasks.js +64 -0
  82. package/dist/sharedMessages.js +17 -1
  83. package/dist/utils/flatten.js +2 -2
  84. package/dist/utils/modelValidationHelper.js +7 -8
  85. package/dist/utils/propertyHelper.js +33 -0
  86. package/dist/utils/stripKey.js +2 -2
  87. package/package.json +1 -1
  88. package/src/actions/navigation.js +7 -0
  89. package/src/actions/navigation.test.js +12 -0
  90. package/src/actions/tasks.js +77 -0
  91. package/src/actions/tasks.test.js +169 -0
  92. package/src/buildStore.js +2 -0
  93. package/src/components/AppFrame/About.test.js +3 -3
  94. package/src/components/AppFrame/Sidebar.js +4 -3
  95. package/src/components/MaterialUI/DataDisplay/PredefinedElements/InformationItem.js +15 -3
  96. package/src/components/MaterialUI/DataDisplay/TooltippedElements/MultipleLinesText.js +2 -1
  97. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +39 -27
  98. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.test.js +39 -34
  99. package/src/components/MaterialUI/hocs/withDeferredTooltip.js +2 -1
  100. package/src/components/MaterialUI/hocs/withDeferredTooltip.test.js +52 -0
  101. package/src/components/Routing/Page.js +12 -1
  102. package/src/components/Routing/SegmentPage.js +13 -1
  103. package/src/components/Routing/SubPage.js +21 -9
  104. package/src/components/Routing/SubPage.test.js +213 -0
  105. package/src/components/TaskDetailsModal.js +132 -0
  106. package/src/components/TaskDetailsModal.test.js +317 -0
  107. package/src/components/Text.test.js +44 -59
  108. package/src/constants.js +15 -0
  109. package/src/content/iconsSheet.svg +22 -0
  110. package/src/content/orckestra-logo-white.png +0 -0
  111. package/src/hooks/useEditState.js +12 -2
  112. package/src/hooks/useEditState.test.js +1 -1
  113. package/src/hooks/useLabelMessage.test.js +16 -10
  114. package/src/reducers/navigation.js +24 -0
  115. package/src/reducers/navigation.test.js +38 -0
  116. package/src/reducers/request.js +4 -0
  117. package/src/reducers/request.test.js +11 -0
  118. package/src/reducers/tasks.js +56 -0
  119. package/src/reducers/tasks.test.js +404 -0
  120. package/src/selectors/authentication.js +13 -0
  121. package/src/selectors/authentication.test.js +322 -0
  122. package/src/selectors/tasks.js +16 -0
  123. package/src/selectors/tasks.test.js +60 -0
  124. package/src/sharedMessages.js +17 -1
  125. package/src/translations/en-US.json +16 -12
  126. package/src/translations/fr-CA.json +16 -12
  127. package/src/utils/propertyHelper.js +38 -0
  128. package/src/utils/propertyHelper.test.js +160 -0
  129. package/src/utils/timezoneHelper.test.js +4 -2
@@ -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");
@@ -56,6 +56,16 @@ var hasEditorPermissionsForScope = exports.hasEditorPermissionsForScope = functi
56
56
  return hasRolePermissions(appRolesClaims, scope, _constants.platformRoles.Editor, scopes);
57
57
  });
58
58
  };
59
+ var hasPermissionsForRole = exports.hasPermissionsForRole = function hasPermissionsForRole(roleGroup, role) {
60
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
61
+ return hasRolePermissions(appRolesClaims, currentScope, role, scopes);
62
+ });
63
+ };
64
+ var hasPermissionsForRoleAndScope = exports.hasPermissionsForRoleAndScope = function hasPermissionsForRoleAndScope(scope, roleGroup, role) {
65
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _scope.getScopesSelector, function (appRolesClaims, scopes) {
66
+ return hasRolePermissions(appRolesClaims, scope, role, scopes);
67
+ });
68
+ };
59
69
  var hasAdministratorPermissions = exports.hasAdministratorPermissions = function hasAdministratorPermissions(roleGroup) {
60
70
  return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
61
71
  return hasRolePermissions(appRolesClaims, currentScope, _constants.platformRoles.Administrator, scopes);
@@ -89,6 +99,8 @@ var hasReaderPermissionsForScope = exports.hasReaderPermissionsForScope = functi
89
99
  reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
90
100
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
91
101
  reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
102
+ reactHotLoader.register(hasPermissionsForRole, "hasPermissionsForRole", "/home/vsts/work/1/s/src/selectors/authentication.js");
103
+ reactHotLoader.register(hasPermissionsForRoleAndScope, "hasPermissionsForRoleAndScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
92
104
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
93
105
  reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
94
106
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
@@ -112,6 +124,8 @@ var hasReaderPermissionsForScope = exports.hasReaderPermissionsForScope = functi
112
124
  reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
113
125
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
114
126
  reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
127
+ reactHotLoader.register(hasPermissionsForRole, "hasPermissionsForRole", "/home/vsts/work/1/s/src/selectors/authentication.js");
128
+ reactHotLoader.register(hasPermissionsForRoleAndScope, "hasPermissionsForRoleAndScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
115
129
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
116
130
  reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
117
131
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
@@ -24,8 +24,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
26
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
28
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
28
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
29
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
30
30
  return a;
31
31
  };
@@ -14,8 +14,8 @@ var _reselect = require("reselect");
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
20
20
  return a;
21
21
  };
@@ -0,0 +1,64 @@
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 = exports.taskInfo = function taskInfo(taskId) {
26
+ return (0, _reselect.createSelector)(tasksData, function (tasks) {
27
+ return tasks.getIn(["taskInfos", taskId]) || null;
28
+ });
29
+ };
30
+ var taskLogs = exports.taskLogs = function taskLogs(taskId) {
31
+ return (0, _reselect.createSelector)(tasksData, function (tasks) {
32
+ return tasks.getIn(["logs", taskId]) || _immutable.default.List();
33
+ });
34
+ };
35
+ ;
36
+ (function () {
37
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
38
+ if (!reactHotLoader) {
39
+ return;
40
+ }
41
+ reactHotLoader.register(tasksData, "tasksData", "/home/vsts/work/1/s/src/selectors/tasks.js");
42
+ reactHotLoader.register(taskInfo, "taskInfo", "/home/vsts/work/1/s/src/selectors/tasks.js");
43
+ reactHotLoader.register(taskLogs, "taskLogs", "/home/vsts/work/1/s/src/selectors/tasks.js");
44
+ })();
45
+ ;
46
+ (function () {
47
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
48
+ leaveModule && leaveModule(module);
49
+ })();
50
+ ;
51
+ (function () {
52
+ var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
53
+ if (!reactHotLoader) {
54
+ return;
55
+ }
56
+ reactHotLoader.register(tasksData, "tasksData", "/home/vsts/work/1/s/src/selectors/tasks.js");
57
+ reactHotLoader.register(taskInfo, "taskInfo", "/home/vsts/work/1/s/src/selectors/tasks.js");
58
+ reactHotLoader.register(taskLogs, "taskLogs", "/home/vsts/work/1/s/src/selectors/tasks.js");
59
+ })();
60
+ ;
61
+ (function () {
62
+ var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;
63
+ leaveModule && leaveModule(module);
64
+ })();
@@ -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;
@@ -13,8 +13,8 @@ exports.flattenObj = exports.flatten = void 0;
13
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
17
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
17
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
18
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
19
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -5,7 +5,6 @@ exports.validationRules = exports.showError = exports.hasValidationErrors = expo
5
5
  var _propertyValidator = require("./propertyValidator");
6
6
  var _constants = require("../constants");
7
7
  var _lodash = require("lodash");
8
- var _validationRules;
9
8
  (function () {
10
9
  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
11
10
  enterModule && enterModule(module);
@@ -15,31 +14,31 @@ var _validationRules;
15
14
  enterModule && enterModule(module);
16
15
  })();
17
16
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
19
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
19
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
21
20
  return a;
22
21
  };
23
22
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
24
23
  return a;
25
24
  };
26
- var validationRules = exports.validationRules = (_validationRules = {}, _defineProperty(_validationRules, _constants.validationErrorTypes.fieldIsRequired, function (value) {
25
+ var validationRules = exports.validationRules = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, _constants.validationErrorTypes.fieldIsRequired, function (value) {
27
26
  if (value === null || value === undefined) return false;
28
27
  if ((0, _propertyValidator.isString)(value) && (0, _propertyValidator.isStringNullOrWhitespace)(value)) return false;
29
28
  return true;
30
- }), _defineProperty(_validationRules, _constants.validationErrorTypes.fieldMustBeValidEmail, function (value) {
29
+ }), _constants.validationErrorTypes.fieldMustBeValidEmail, function (value) {
31
30
  if (!value) return true;
32
31
  var regexRule = new RegExp("^(([\\w-]+[\\.\\+])+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|(([a-zA-Z0-9][a-zA-Z0-9\\.\\-]+[a-zA-Z0-9])|([a-zA-Z0-9]{1,}))\\.[a-zA-Z]{2,12})$");
33
32
  return regexRule.test(value);
34
- }), _defineProperty(_validationRules, _constants.validationErrorTypes.fieldMustBeValidPhoneNumber, function (value) {
33
+ }), _constants.validationErrorTypes.fieldMustBeValidPhoneNumber, function (value) {
35
34
  if (!value) return true;
36
35
  var regexRule = new RegExp("^(\\+?\\-?[ 0-9])*$");
37
36
  return regexRule.test(value);
38
- }), _defineProperty(_validationRules, _constants.validationErrorTypes.fieldMustBeValidPhoneExtension, function (value) {
37
+ }), _constants.validationErrorTypes.fieldMustBeValidPhoneExtension, function (value) {
39
38
  if (!value) return true;
40
39
  var regexRule = new RegExp("^(\\-?\\*?\\#?[ 0-9])*$");
41
40
  return regexRule.test(value);
42
- }), _validationRules);
41
+ });
43
42
  var showError = exports.showError = function showError(field) {
44
43
  if (field == null) return false;
45
44
  return field.error != null;
@@ -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;
@@ -81,6 +82,34 @@ var isObjectContainsPropertyWithAnyValue = exports.isObjectContainsPropertyWithA
81
82
  }
82
83
  return false;
83
84
  };
85
+ var compareObjectProperty = exports.compareObjectProperty = function compareObjectProperty(obj1, obj2, propertyName) {
86
+ if (propertyName == null || propertyName === "") {
87
+ return 0;
88
+ }
89
+ var val1 = obj1 == null ? void 0 : obj1[propertyName];
90
+ var val2 = obj2 == null ? void 0 : obj2[propertyName];
91
+ if (val1 === val2) {
92
+ return 0;
93
+ }
94
+ if (val1 < val2) {
95
+ return -1;
96
+ }
97
+ return 1;
98
+ };
99
+ var compareObjectPropertyDescending = exports.compareObjectPropertyDescending = function compareObjectPropertyDescending(obj1, obj2, propertyName) {
100
+ if (propertyName == null || propertyName === "") {
101
+ return 0;
102
+ }
103
+ var val1 = obj1 == null ? void 0 : obj1[propertyName];
104
+ var val2 = obj2 == null ? void 0 : obj2[propertyName];
105
+ if (val1 === val2) {
106
+ return 0;
107
+ }
108
+ if (val1 > val2) {
109
+ return -1;
110
+ }
111
+ return 1;
112
+ };
84
113
  ;
85
114
  (function () {
86
115
  var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;
@@ -93,6 +122,8 @@ var isObjectContainsPropertyWithAnyValue = exports.isObjectContainsPropertyWithA
93
122
  reactHotLoader.register(getPropertyOrDefault, "getPropertyOrDefault", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
94
123
  reactHotLoader.register(isObjectContainsPropertyWithValue, "isObjectContainsPropertyWithValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
95
124
  reactHotLoader.register(isObjectContainsPropertyWithAnyValue, "isObjectContainsPropertyWithAnyValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
125
+ reactHotLoader.register(compareObjectProperty, "compareObjectProperty", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
126
+ reactHotLoader.register(compareObjectPropertyDescending, "compareObjectPropertyDescending", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
96
127
  })();
97
128
  ;
98
129
  (function () {
@@ -111,6 +142,8 @@ var isObjectContainsPropertyWithAnyValue = exports.isObjectContainsPropertyWithA
111
142
  reactHotLoader.register(getPropertyOrDefault, "getPropertyOrDefault", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
112
143
  reactHotLoader.register(isObjectContainsPropertyWithValue, "isObjectContainsPropertyWithValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
113
144
  reactHotLoader.register(isObjectContainsPropertyWithAnyValue, "isObjectContainsPropertyWithAnyValue", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
145
+ reactHotLoader.register(compareObjectProperty, "compareObjectProperty", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
146
+ reactHotLoader.register(compareObjectPropertyDescending, "compareObjectPropertyDescending", "/home/vsts/work/1/s/src/utils/propertyHelper.js");
114
147
  })();
115
148
  ;
116
149
  (function () {
@@ -12,8 +12,8 @@ exports.default = void 0;
12
12
  })();
13
13
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
14
14
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
15
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
16
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
17
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
18
18
  return a;
19
19
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "5.4.0-dev.0",
3
+ "version": "5.5.1-dev.1",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -25,6 +25,13 @@ export const removeTab = (module, path) => ({
25
25
  payload: { module, path },
26
26
  });
27
27
 
28
+ export const REMOVE_MODULE_TABS = "REMOVE_MODULE_TABS";
29
+
30
+ export const removeModuleTabs = module => ({
31
+ type: REMOVE_MODULE_TABS,
32
+ payload: { module },
33
+ });
34
+
28
35
  export const SET_HREF_CONFIG = "SET_HREF_CONFIG";
29
36
 
30
37
  export const setHrefConfig = (prependPath, prependHref, otherConfigs = {}) => ({
@@ -5,6 +5,8 @@ import {
5
5
  SET_HREF_CONFIG,
6
6
  setClosingTabHandlerActions,
7
7
  SET_CLOSING_TAB_HANDLER_ACTIONS,
8
+ removeModuleTabs,
9
+ REMOVE_MODULE_TABS,
8
10
  } from "./navigation";
9
11
 
10
12
  describe("removeTab", () => {
@@ -18,6 +20,16 @@ describe("removeTab", () => {
18
20
  }));
19
21
  });
20
22
 
23
+ describe("removeModuleTabs", () => {
24
+ it("creates a remove module tabs action", () =>
25
+ expect(removeModuleTabs, "when called with", ["module"], "to equal", {
26
+ type: REMOVE_MODULE_TABS,
27
+ payload: {
28
+ module: "module",
29
+ },
30
+ }));
31
+ });
32
+
21
33
  describe("setHrefConfig", () => {
22
34
  it("set href config action", () =>
23
35
  expect(setHrefConfig, "when called with", ["/:scope/", "/scope/"], "to equal", {
@@ -0,0 +1,77 @@
1
+ import { makeActionTypes } from "./makeApiAction";
2
+ import makeOrcApiAction from "./makeOrcApiAction";
3
+ import {
4
+ deleteTaskInfoRequest,
5
+ getRequesterTasksInfoRequest,
6
+ getTaskExecutionLogsRequest,
7
+ getTaskInfoRequest,
8
+ } from "./requestsApi";
9
+
10
+ const GET_TASKINFO = "GET_TASKINFO";
11
+
12
+ export const [GET_TASKINFO_REQUEST, GET_TASKINFO_SUCCESS, GET_TASKINFO_FAILURE] = makeActionTypes(GET_TASKINFO);
13
+
14
+ export const getTaskInfo = taskId => makeOrcApiAction(GET_TASKINFO, getTaskInfoRequest.buildUrl(taskId));
15
+
16
+ export const GET_TASK_LIST = "GET_TASK_LIST";
17
+
18
+ export const ssrsDownloadFilterTaskNames = [
19
+ "Orckestra.Overture.Providers.CommerceEngine.Profiles.ProfileSchemaExportTask, Orckestra.Overture.Providers.CommerceEngine",
20
+ "Orckestra.Overture.Providers.CommerceEngine.Profiles.ProfileSchemaImportTask, Orckestra.Overture.Providers.CommerceEngine",
21
+ "Orckestra.Overture.Providers.CommerceEngine.Orders.ExportOrderSchemaTask, Orckestra.Overture.Providers.CommerceEngine",
22
+ "Orckestra.Overture.Providers.CommerceEngine.Orders.ImportOrderSchemaTask, Orckestra.Overture.Providers.CommerceEngine",
23
+ "Orckestra.Overture.Providers.CommerceEngine.Products.ImportExport.ExportProductsTask, Orckestra.Overture.Providers.CommerceEngine",
24
+ "Orckestra.Overture.Providers.CommerceEngine.Products.ImportExport.ProductSchemaExportTask, Orckestra.Overture.Providers.CommerceEngine",
25
+ "Orckestra.Overture.Providers.CommerceEngine.Products.ImportExport.ImportProductsTask, Orckestra.Overture.Providers.CommerceEngine",
26
+ "OrckestraCommerce.DataExchange.Product.Tasks.ProductExportTask, OrckestraCommerce.DataExchange",
27
+ "Orckestra.Overture.Providers.CommerceEngine.Marketing.ExportCouponCodesTask, Orckestra.Overture.Providers.CommerceEngine",
28
+ "Orckestra.Overture.Providers.CommerceEngine.Marketing.ImportCouponCodesTask, Orckestra.Overture.Providers.CommerceEngine",
29
+ "Orckestra.Overture.Providers.CommerceEngine.Marketing.GenerateCouponTask, Orckestra.Overture.Providers.CommerceEngine",
30
+ "Orckestra.Overture.Providers.CommerceEngine.Reporting.ReportExportTask, Orckestra.Overture.Providers.CommerceEngine",
31
+ ];
32
+
33
+ export const [GET_TASK_LIST_REQUEST, GET_TASK_LIST_SUCCESS, GET_TASK_LIST_FAILURE] = makeActionTypes(GET_TASK_LIST);
34
+
35
+ export const getTaskList = (requester, filterTaskNames, lastModified = null, addToActiveRequests = true) =>
36
+ makeOrcApiAction(
37
+ GET_TASK_LIST,
38
+ getRequesterTasksInfoRequest.buildUrl({
39
+ filterTaskNames: filterTaskNames,
40
+ requester: requester,
41
+ lastModified: lastModified,
42
+ }),
43
+ getRequesterTasksInfoRequest.verb,
44
+ {
45
+ meta: {
46
+ addToActiveRequests,
47
+ },
48
+ },
49
+ );
50
+
51
+ const DELETE_TASK = "DELETE_TASK";
52
+
53
+ export const [DELETE_TASK_REQUEST, DELETE_TASK_SUCCESS, DELETE_TASK_FAILURE] = makeActionTypes(DELETE_TASK);
54
+
55
+ export const deleteTask = taskId =>
56
+ makeOrcApiAction(DELETE_TASK, deleteTaskInfoRequest.buildUrl(taskId), deleteTaskInfoRequest.verb, {
57
+ meta: { taskId },
58
+ });
59
+
60
+ const GET_TASK_LOG = "GET_TASK_LOG";
61
+
62
+ export const [GET_TASK_LOG_REQUEST, GET_TASK_LOG_SUCCESS, GET_TASK_LOG_FAILURE] = makeActionTypes(GET_TASK_LOG);
63
+
64
+ export const getTaskLog = (taskId, addToActiveRequests = true) =>
65
+ makeOrcApiAction(GET_TASK_LOG, getTaskExecutionLogsRequest.buildUrl(taskId), getTaskExecutionLogsRequest.verb, {
66
+ meta: {
67
+ taskId,
68
+ addToActiveRequests,
69
+ },
70
+ });
71
+
72
+ export const CLEAR_TASK_LOG = "CLEAR_TASK_LOG";
73
+
74
+ export const clearTaskLog = taskId => ({
75
+ type: CLEAR_TASK_LOG,
76
+ meta: { taskId },
77
+ });
@@ -0,0 +1,169 @@
1
+ import { RSAA } from "redux-api-middleware";
2
+ import {
3
+ GET_TASKINFO_REQUEST,
4
+ GET_TASKINFO_SUCCESS,
5
+ GET_TASKINFO_FAILURE,
6
+ getTaskInfo,
7
+ getTaskList,
8
+ getTaskLog,
9
+ ssrsDownloadFilterTaskNames,
10
+ deleteTask,
11
+ } from "./tasks";
12
+
13
+ jest.mock("../utils/buildUrl", () => {
14
+ const modExport = {};
15
+ modExport.loadConfig = () => Promise.resolve({});
16
+ modExport.buildUrl = (path = [], params = "") => "URL: " + path.join("/") + " " + JSON.stringify(params);
17
+ return modExport;
18
+ });
19
+
20
+ describe("getTaskInfo", () => {
21
+ it("creates a RSAA to get task info", () =>
22
+ expect(getTaskInfo, "when called with", ["1234"], "to exhaustively satisfy", {
23
+ [RSAA]: {
24
+ types: [GET_TASKINFO_REQUEST, GET_TASKINFO_SUCCESS, GET_TASKINFO_FAILURE],
25
+ endpoint: 'URL: tasks/1234 ""',
26
+ method: "GET",
27
+ body: undefined,
28
+ credentials: "include",
29
+ bailout: expect.it("to be a function"),
30
+ headers: {
31
+ Accept: "application/json; charset=utf-8",
32
+ "Content-Type": "application/json",
33
+ },
34
+ options: { redirect: "follow" },
35
+ },
36
+ }));
37
+ });
38
+
39
+ describe("getTaskLog", () => {
40
+ it("creates a RSAA to get task info", () =>
41
+ expect(getTaskLog, "when called with", ["1234"], "to exhaustively satisfy", {
42
+ [RSAA]: {
43
+ types: [
44
+ { type: "GET_TASK_LOG_REQUEST", meta: { taskId: "1234", addToActiveRequests: true } },
45
+ { type: "GET_TASK_LOG_SUCCESS", meta: { taskId: "1234", addToActiveRequests: true } },
46
+ { type: "GET_TASK_LOG_FAILURE", meta: { taskId: "1234", addToActiveRequests: true } },
47
+ ],
48
+ endpoint: 'URL: tasks/1234/logs ""',
49
+ method: "GET",
50
+ body: undefined,
51
+ credentials: "include",
52
+ bailout: expect.it("to be a function"),
53
+ headers: {
54
+ Accept: "application/json; charset=utf-8",
55
+ "Content-Type": "application/json",
56
+ },
57
+ options: { redirect: "follow" },
58
+ },
59
+ }));
60
+
61
+ it("creates a RSAA to get task info with addToActiveRequests false", () =>
62
+ expect(getTaskLog, "when called with", ["1234", false], "to exhaustively satisfy", {
63
+ [RSAA]: {
64
+ types: [
65
+ { type: "GET_TASK_LOG_REQUEST", meta: { taskId: "1234", addToActiveRequests: false } },
66
+ { type: "GET_TASK_LOG_SUCCESS", meta: { taskId: "1234", addToActiveRequests: false } },
67
+ { type: "GET_TASK_LOG_FAILURE", meta: { taskId: "1234", addToActiveRequests: false } },
68
+ ],
69
+ endpoint: 'URL: tasks/1234/logs ""',
70
+ method: "GET",
71
+ body: undefined,
72
+ credentials: "include",
73
+ bailout: expect.it("to be a function"),
74
+ headers: {
75
+ Accept: "application/json; charset=utf-8",
76
+ "Content-Type": "application/json",
77
+ },
78
+ options: { redirect: "follow" },
79
+ },
80
+ }));
81
+ });
82
+
83
+ describe("getTaskList", () => {
84
+ it("creates a RSAA to get task info", () => {
85
+ const expectedParameters = {
86
+ filterTaskNames: ssrsDownloadFilterTaskNames,
87
+ requester: "freddie",
88
+ lastModified: "date value",
89
+ };
90
+
91
+ expect(
92
+ getTaskList,
93
+ "when called with",
94
+ ["freddie", ssrsDownloadFilterTaskNames, "date value", false],
95
+ "to exhaustively satisfy",
96
+ {
97
+ [RSAA]: {
98
+ types: [
99
+ { type: "GET_TASK_LIST_REQUEST", meta: { addToActiveRequests: false } },
100
+ { type: "GET_TASK_LIST_SUCCESS", meta: { addToActiveRequests: false } },
101
+ { type: "GET_TASK_LIST_FAILURE", meta: { addToActiveRequests: false } },
102
+ ],
103
+ endpoint: "URL: tasks " + JSON.stringify(expectedParameters),
104
+ method: "GET",
105
+ body: undefined,
106
+ credentials: "include",
107
+ bailout: expect.it("to be a function"),
108
+ headers: {
109
+ Accept: "application/json; charset=utf-8",
110
+ "Content-Type": "application/json",
111
+ },
112
+ options: { redirect: "follow" },
113
+ },
114
+ },
115
+ );
116
+ });
117
+
118
+ it("creates a RSAA to get task info with null lastModified and true addToActiveRequests", () => {
119
+ const expectedParameters = {
120
+ filterTaskNames: ssrsDownloadFilterTaskNames,
121
+ requester: "freddie",
122
+ lastModified: null,
123
+ };
124
+
125
+ expect(getTaskList, "when called with", ["freddie", ssrsDownloadFilterTaskNames], "to exhaustively satisfy", {
126
+ [RSAA]: {
127
+ types: [
128
+ { type: "GET_TASK_LIST_REQUEST", meta: { addToActiveRequests: true } },
129
+ { type: "GET_TASK_LIST_SUCCESS", meta: { addToActiveRequests: true } },
130
+ { type: "GET_TASK_LIST_FAILURE", meta: { addToActiveRequests: true } },
131
+ ],
132
+ endpoint: "URL: tasks " + JSON.stringify(expectedParameters),
133
+ method: "GET",
134
+ body: undefined,
135
+ credentials: "include",
136
+ bailout: expect.it("to be a function"),
137
+ headers: {
138
+ Accept: "application/json; charset=utf-8",
139
+ "Content-Type": "application/json",
140
+ },
141
+ options: { redirect: "follow" },
142
+ },
143
+ });
144
+ });
145
+ });
146
+
147
+ describe("deleteTask", () => {
148
+ it("creates a RSAA to delete a task", () => {
149
+ expect(deleteTask, "when called with", ["1234"], "to exhaustively satisfy", {
150
+ [RSAA]: {
151
+ types: [
152
+ { type: "DELETE_TASK_REQUEST", meta: { taskId: "1234" } },
153
+ { type: "DELETE_TASK_SUCCESS", meta: { taskId: "1234" } },
154
+ { type: "DELETE_TASK_FAILURE", meta: { taskId: "1234" } },
155
+ ],
156
+ endpoint: 'URL: tasks/1234 ""',
157
+ method: "DELETE",
158
+ body: undefined,
159
+ credentials: "include",
160
+ bailout: expect.it("to be a function"),
161
+ headers: {
162
+ Accept: "application/json; charset=utf-8",
163
+ "Content-Type": "application/json",
164
+ },
165
+ options: { redirect: "follow" },
166
+ },
167
+ });
168
+ });
169
+ });
package/src/buildStore.js CHANGED
@@ -20,6 +20,7 @@ import timezonesReducer from "./reducers/timezones";
20
20
  import modulesReducer from "./reducers/modules";
21
21
  import metadataReducer from "./reducers/metadata";
22
22
  import requestStatesReducer from "./reducers/requestStates";
23
+ import tasksReducer from "./reducers/tasks";
23
24
 
24
25
  window.BUILD_ID = BUILD_ID;
25
26
  window.BUILD_NUMBER = BUILD_NUMBER;
@@ -65,6 +66,7 @@ const buildStore = (reducers, devOptions = {}) => {
65
66
  modules: modulesReducer,
66
67
  metadata: metadataReducer,
67
68
  requestStates: requestStatesReducer,
69
+ tasks: tasksReducer,
68
70
  });
69
71
  const rootReducer = buildReducer(reducers);
70
72