orc-shared 1.2.0-dev.2 → 1.2.0-dev.6

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 (74) hide show
  1. package/dist/actions/modules.js +63 -1
  2. package/dist/actions/scopes.js +59 -22
  3. package/dist/components/AppFrame/MenuItem.js +5 -14
  4. package/dist/components/AppFrame/Sidebar.js +11 -5
  5. package/dist/components/ApplicationModuleLoader.js +143 -0
  6. package/dist/components/Authenticate.js +12 -12
  7. package/dist/components/MaterialUI/DataDisplay/SelectionList.js +1 -1
  8. package/dist/components/MaterialUI/Navigation/ExternalLink.js +113 -0
  9. package/dist/components/MaterialUI/muiThemes.js +5 -0
  10. package/dist/components/Modules.js +126 -41
  11. package/dist/components/Routing/FullPage.js +3 -1
  12. package/dist/components/Routing/Page.js +5 -3
  13. package/dist/components/Routing/Segment.js +1 -1
  14. package/dist/components/Routing/withWaypointing.js +6 -2
  15. package/dist/components/Scope/useScopeConfirmationModalState.js +7 -16
  16. package/dist/components/Scope/useScopeData.js +4 -13
  17. package/dist/constants.js +19 -2
  18. package/dist/content/iconsSheet.svg +3 -0
  19. package/dist/reducers/modules.js +39 -1
  20. package/dist/reducers/scopes.js +27 -0
  21. package/dist/reducers/settings.js +31 -2
  22. package/dist/selectors/authentication.js +57 -18
  23. package/dist/selectors/modules.js +15 -1
  24. package/dist/selectors/scope.js +7 -1
  25. package/dist/selectors/settings.js +13 -1
  26. package/package.json +6 -5
  27. package/src/actions/modules.js +30 -0
  28. package/src/actions/modules.test.js +50 -1
  29. package/src/actions/scopes.js +33 -7
  30. package/src/actions/scopes.test.js +84 -14
  31. package/src/components/AppFrame/AppFrame.test.js +9 -0
  32. package/src/components/AppFrame/MenuItem.js +3 -5
  33. package/src/components/AppFrame/MenuItem.test.js +2 -24
  34. package/src/components/AppFrame/Sidebar.js +8 -1
  35. package/src/components/AppFrame/Sidebar.test.js +18 -0
  36. package/src/components/ApplicationModuleLoader.js +52 -0
  37. package/src/components/ApplicationModuleLoader.test.js +149 -0
  38. package/src/components/Authenticate.js +5 -4
  39. package/src/components/Authenticate.test.js +23 -4
  40. package/src/components/MaterialUI/DataDisplay/SelectionList.js +1 -1
  41. package/src/components/MaterialUI/DataDisplay/SelectionList.test.js +2 -2
  42. package/src/components/MaterialUI/Navigation/ExternalLink.js +25 -0
  43. package/src/components/MaterialUI/Navigation/ExternalLink.test.js +26 -0
  44. package/src/components/MaterialUI/muiThemes.js +5 -0
  45. package/src/components/Modules.js +103 -20
  46. package/src/components/Modules.test.js +315 -28
  47. package/src/components/Provision.test.js +34 -0
  48. package/src/components/Routing/FullPage.js +2 -1
  49. package/src/components/Routing/FullPage.test.js +23 -0
  50. package/src/components/Routing/Page.js +2 -2
  51. package/src/components/Routing/Page.test.js +20 -0
  52. package/src/components/Routing/Segment.js +1 -1
  53. package/src/components/Routing/withWaypointing.js +2 -2
  54. package/src/components/Routing/withWaypointing.test.js +33 -5
  55. package/src/components/Scope/useScopeConfirmationModalState.js +5 -16
  56. package/src/components/Scope/useScopeConfirmationModalState.test.js +39 -13
  57. package/src/components/Scope/useScopeData.js +0 -3
  58. package/src/components/Scope/useScopeData.test.js +0 -27
  59. package/src/constants.js +15 -0
  60. package/src/content/iconsSheet.svg +3 -0
  61. package/src/hocs/withScopeData.test.js +0 -31
  62. package/src/reducers/modules.js +48 -2
  63. package/src/reducers/modules.test.js +117 -2
  64. package/src/reducers/scopes.js +30 -0
  65. package/src/reducers/scopes.test.js +45 -1
  66. package/src/reducers/settings.js +26 -2
  67. package/src/reducers/settings.test.js +74 -6
  68. package/src/selectors/authentication.js +53 -27
  69. package/src/selectors/authentication.test.js +600 -12
  70. package/src/selectors/modules.js +7 -0
  71. package/src/selectors/modules.test.js +16 -1
  72. package/src/selectors/scope.js +2 -0
  73. package/src/selectors/scope.test.js +5 -0
  74. package/src/selectors/settings.js +6 -0
@@ -13,6 +13,8 @@ var _applications = require("../actions/applications");
13
13
 
14
14
  var _scopes = require("../actions/scopes");
15
15
 
16
+ var _constants = require("../constants");
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  (function () {
@@ -33,23 +35,48 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
33
35
  return a;
34
36
  };
35
37
 
36
- var initialState = _immutable.default.Map({
38
+ var initialState = _immutable.default.fromJS({
37
39
  defaultApp: 0,
38
- defaultScope: null
40
+ defaultScope: null,
41
+ loadedModulesScope: [],
42
+ modules: []
39
43
  });
40
44
 
45
+ var setLoadedModulesScope = function setLoadedModulesScope(state, module) {
46
+ var loadedModulesScope = state.get("loadedModulesScope").toJS();
47
+ loadedModulesScope.push(module);
48
+ return state.set("loadedModulesScope", _immutable.default.fromJS(loadedModulesScope));
49
+ };
50
+
41
51
  var settingsReducer = function settingsReducer(state, action) {
42
52
  if (state === void 0) {
43
53
  state = initialState;
44
54
  }
45
55
 
46
56
  switch (action.type) {
57
+ case _scopes.GET_APPLICATION_MODULES_SUCCESS:
58
+ return state.set("modules", _immutable.default.fromJS(action.payload.map(function (x) {
59
+ return _constants.overtureModule[x.name];
60
+ })));
61
+
47
62
  case _applications.GET_MY_APPLICATION_SUCCESS:
48
63
  return state.set("defaultApp", action.payload.id);
49
64
 
50
65
  case _applications.SET_MY_APPLICATION_SUCCESS:
51
66
  return state.set("defaultApp", action.meta.appId);
52
67
 
68
+ case _scopes.GET_SCOPES_SUCCESS:
69
+ return setLoadedModulesScope(state, action.meta.module);
70
+
71
+ case _scopes.GET_SCOPES_FAILURE:
72
+ {
73
+ if (action.payload.status === 500) {
74
+ state = setLoadedModulesScope(state, action.meta.module);
75
+ }
76
+
77
+ return state;
78
+ }
79
+
53
80
  case _scopes.GET_MY_SCOPE_SUCCESS:
54
81
  return state.set("defaultScope", action.payload.id);
55
82
 
@@ -79,6 +106,7 @@ exports.default = _default3;
79
106
  }
80
107
 
81
108
  reactHotLoader.register(initialState, "initialState", "/home/vsts/work/1/s/src/reducers/settings.js");
109
+ reactHotLoader.register(setLoadedModulesScope, "setLoadedModulesScope", "/home/vsts/work/1/s/src/reducers/settings.js");
82
110
  reactHotLoader.register(settingsReducer, "settingsReducer", "/home/vsts/work/1/s/src/reducers/settings.js");
83
111
  reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/reducers/settings.js");
84
112
  })();
@@ -100,6 +128,7 @@ exports.default = _default3;
100
128
  }
101
129
 
102
130
  reactHotLoader.register(initialState, "initialState", "/home/vsts/work/1/s/src/reducers/settings.js");
131
+ reactHotLoader.register(setLoadedModulesScope, "setLoadedModulesScope", "/home/vsts/work/1/s/src/reducers/settings.js");
103
132
  reactHotLoader.register(settingsReducer, "settingsReducer", "/home/vsts/work/1/s/src/reducers/settings.js");
104
133
  reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/reducers/settings.js");
105
134
  })();
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.selectRolesClaims = exports.selectGroupRolesClaims = exports.selectCurrentUsername = exports.hasReaderPermissions = exports.hasEditorPermissions = exports.hasAdministratorPermissions = void 0;
4
+ exports.selectRolesClaims = exports.selectGroupRolesClaims = exports.selectCurrentUsername = exports.hasReaderPermissionsForScope = exports.hasReaderPermissions = exports.hasEditorPermissionsForScope = exports.hasEditorPermissions = exports.hasAdministratorPermissionsForScope = exports.hasAdministratorPermissions = void 0;
5
5
 
6
6
  var _reselect = require("reselect");
7
7
 
@@ -9,6 +9,8 @@ var _constants = require("./../constants");
9
9
 
10
10
  var _navigation = require("./navigation");
11
11
 
12
+ var _scope = require("./scope");
13
+
12
14
  (function () {
13
15
  var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
14
16
  enterModule && enterModule(module);
@@ -48,41 +50,70 @@ var selectGroupRolesClaims = function selectGroupRolesClaims(roleGroup) {
48
50
 
49
51
  exports.selectGroupRolesClaims = selectGroupRolesClaims;
50
52
 
51
- var hasEditorPermissions = function hasEditorPermissions(roleGroup) {
52
- return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, function (appRolesClaims, currentScope) {
53
- if (appRolesClaims != null) {
54
- return !!appRolesClaims.getIn(["*", _constants.platformRoles.Editor]) || !!appRolesClaims.getIn([currentScope, _constants.platformRoles.Editor]);
53
+ var hasRolePermissions = function hasRolePermissions(appRolesClaims, scopeId, role, scopes) {
54
+ if (appRolesClaims != null && scopeId != null) {
55
+ var allowed = !!appRolesClaims.getIn(["*", role]) || !!appRolesClaims.getIn([scopeId, role]);
56
+
57
+ if (!allowed) {
58
+ var _scopes$get$toJS$pare, _scopes$get, _scopes$get$toJS;
59
+
60
+ var parentScopeId = (_scopes$get$toJS$pare = (_scopes$get = scopes.get(scopeId)) == null ? void 0 : (_scopes$get$toJS = _scopes$get.toJS()) == null ? void 0 : _scopes$get$toJS.parentScopeId) != null ? _scopes$get$toJS$pare : null;
61
+ return hasRolePermissions(appRolesClaims, parentScopeId, role, scopes);
55
62
  }
56
63
 
57
- return false;
64
+ return allowed;
65
+ }
66
+
67
+ return false;
68
+ };
69
+
70
+ var hasEditorPermissions = function hasEditorPermissions(roleGroup) {
71
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
72
+ return hasRolePermissions(appRolesClaims, currentScope, _constants.platformRoles.Editor, scopes);
58
73
  });
59
74
  };
60
75
 
61
76
  exports.hasEditorPermissions = hasEditorPermissions;
62
77
 
63
- var hasAdministratorPermissions = function hasAdministratorPermissions(roleGroup) {
64
- return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, function (appRolesClaims, currentScope) {
65
- if (appRolesClaims != null) {
66
- return !!appRolesClaims.getIn(["*", _constants.platformRoles.Administrator]) || !!appRolesClaims.getIn([currentScope, _constants.platformRoles.Administrator]);
67
- }
78
+ var hasEditorPermissionsForScope = function hasEditorPermissionsForScope(scope, roleGroup) {
79
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _scope.getScopesSelector, function (appRolesClaims, scopes) {
80
+ return hasRolePermissions(appRolesClaims, scope, _constants.platformRoles.Editor, scopes);
81
+ });
82
+ };
68
83
 
69
- return false;
84
+ exports.hasEditorPermissionsForScope = hasEditorPermissionsForScope;
85
+
86
+ var hasAdministratorPermissions = function hasAdministratorPermissions(roleGroup) {
87
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
88
+ return hasRolePermissions(appRolesClaims, currentScope, _constants.platformRoles.Administrator, scopes);
70
89
  });
71
90
  };
72
91
 
73
92
  exports.hasAdministratorPermissions = hasAdministratorPermissions;
74
93
 
75
- var hasReaderPermissions = function hasReaderPermissions(roleGroup) {
76
- return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, function (appRolesClaims, currentScope) {
77
- if (appRolesClaims != null) {
78
- return !!appRolesClaims.getIn(["*", _constants.platformRoles.Reader]) || !!appRolesClaims.getIn([currentScope, _constants.platformRoles.Reader]);
79
- }
94
+ var hasAdministratorPermissionsForScope = function hasAdministratorPermissionsForScope(scope, roleGroup) {
95
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _scope.getScopesSelector, function (appRolesClaims, scopes) {
96
+ return hasRolePermissions(appRolesClaims, scope, _constants.platformRoles.Administrator, scopes);
97
+ });
98
+ };
80
99
 
81
- return false;
100
+ exports.hasAdministratorPermissionsForScope = hasAdministratorPermissionsForScope;
101
+
102
+ var hasReaderPermissions = function hasReaderPermissions(roleGroup) {
103
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _navigation.getCurrentScope, _scope.getScopesSelector, function (appRolesClaims, currentScope, scopes) {
104
+ return hasRolePermissions(appRolesClaims, currentScope, _constants.platformRoles.Reader, scopes);
82
105
  });
83
106
  };
84
107
 
85
108
  exports.hasReaderPermissions = hasReaderPermissions;
109
+
110
+ var hasReaderPermissionsForScope = function hasReaderPermissionsForScope(scope, roleGroup) {
111
+ return (0, _reselect.createSelector)(selectGroupRolesClaims(roleGroup), _scope.getScopesSelector, function (appRolesClaims, scopes) {
112
+ return hasRolePermissions(appRolesClaims, scope, _constants.platformRoles.Reader, scopes);
113
+ });
114
+ };
115
+
116
+ exports.hasReaderPermissionsForScope = hasReaderPermissionsForScope;
86
117
  ;
87
118
 
88
119
  (function () {
@@ -96,9 +127,13 @@ exports.hasReaderPermissions = hasReaderPermissions;
96
127
  reactHotLoader.register(selectCurrentUsername, "selectCurrentUsername", "/home/vsts/work/1/s/src/selectors/authentication.js");
97
128
  reactHotLoader.register(selectRolesClaims, "selectRolesClaims", "/home/vsts/work/1/s/src/selectors/authentication.js");
98
129
  reactHotLoader.register(selectGroupRolesClaims, "selectGroupRolesClaims", "/home/vsts/work/1/s/src/selectors/authentication.js");
130
+ reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
99
131
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
132
+ reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
100
133
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
134
+ reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
101
135
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
136
+ reactHotLoader.register(hasReaderPermissionsForScope, "hasReaderPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
102
137
  })();
103
138
 
104
139
  ;
@@ -121,9 +156,13 @@ exports.hasReaderPermissions = hasReaderPermissions;
121
156
  reactHotLoader.register(selectCurrentUsername, "selectCurrentUsername", "/home/vsts/work/1/s/src/selectors/authentication.js");
122
157
  reactHotLoader.register(selectRolesClaims, "selectRolesClaims", "/home/vsts/work/1/s/src/selectors/authentication.js");
123
158
  reactHotLoader.register(selectGroupRolesClaims, "selectGroupRolesClaims", "/home/vsts/work/1/s/src/selectors/authentication.js");
159
+ reactHotLoader.register(hasRolePermissions, "hasRolePermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
124
160
  reactHotLoader.register(hasEditorPermissions, "hasEditorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
161
+ reactHotLoader.register(hasEditorPermissionsForScope, "hasEditorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
125
162
  reactHotLoader.register(hasAdministratorPermissions, "hasAdministratorPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
163
+ reactHotLoader.register(hasAdministratorPermissionsForScope, "hasAdministratorPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
126
164
  reactHotLoader.register(hasReaderPermissions, "hasReaderPermissions", "/home/vsts/work/1/s/src/selectors/authentication.js");
165
+ reactHotLoader.register(hasReaderPermissionsForScope, "hasReaderPermissionsForScope", "/home/vsts/work/1/s/src/selectors/authentication.js");
127
166
  })();
128
167
 
129
168
  ;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.modulesSelector = void 0;
4
+ exports.modulesSelector = exports.getScopeModuleInformationSelector = void 0;
5
5
 
6
6
  var _reselect = require("reselect");
7
7
 
@@ -15,6 +15,12 @@ var _reselect = require("reselect");
15
15
  enterModule && enterModule(module);
16
16
  })();
17
17
 
18
+ function ownKeys(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; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
+
22
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
+
18
24
  var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
19
25
  return a;
20
26
  };
@@ -31,6 +37,12 @@ var modulesSelector = (0, _reselect.createSelector)(modulesData, function (data)
31
37
  return data.getIn(["tree"]);
32
38
  });
33
39
  exports.modulesSelector = modulesSelector;
40
+ var getScopeModuleInformationSelector = (0, _reselect.createSelector)(modulesData, function (data) {
41
+ return _objectSpread({
42
+ visibleModules: data.getIn(["visibleModules"]).toJS()
43
+ }, data.getIn(["lastScopeAndModuleSelection"]).toJS());
44
+ });
45
+ exports.getScopeModuleInformationSelector = getScopeModuleInformationSelector;
34
46
  ;
35
47
 
36
48
  (function () {
@@ -42,6 +54,7 @@ exports.modulesSelector = modulesSelector;
42
54
 
43
55
  reactHotLoader.register(modulesData, "modulesData", "/home/vsts/work/1/s/src/selectors/modules.js");
44
56
  reactHotLoader.register(modulesSelector, "modulesSelector", "/home/vsts/work/1/s/src/selectors/modules.js");
57
+ reactHotLoader.register(getScopeModuleInformationSelector, "getScopeModuleInformationSelector", "/home/vsts/work/1/s/src/selectors/modules.js");
45
58
  })();
46
59
 
47
60
  ;
@@ -62,6 +75,7 @@ exports.modulesSelector = modulesSelector;
62
75
 
63
76
  reactHotLoader.register(modulesData, "modulesData", "/home/vsts/work/1/s/src/selectors/modules.js");
64
77
  reactHotLoader.register(modulesSelector, "modulesSelector", "/home/vsts/work/1/s/src/selectors/modules.js");
78
+ reactHotLoader.register(getScopeModuleInformationSelector, "getScopeModuleInformationSelector", "/home/vsts/work/1/s/src/selectors/modules.js");
65
79
  })();
66
80
 
67
81
  ;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.scopeGetter = exports.scopeDefaultCultureSelector = exports.localizedScopesSelectorByIds = exports.localizedScopeSelector = exports.isCurrentScopeAuthorizedSelector = exports.currentScopeSelector = void 0;
4
+ exports.scopeGetter = exports.scopeDefaultCultureSelector = exports.localizedScopesSelectorByIds = exports.localizedScopeSelector = exports.isCurrentScopeAuthorizedSelector = exports.getScopesSelector = exports.currentScopeSelector = void 0;
5
5
 
6
6
  var _reselect = require("reselect");
7
7
 
@@ -39,6 +39,10 @@ var scopeData = function scopeData(state) {
39
39
  return state.get("scopes");
40
40
  };
41
41
 
42
+ var getScopesSelector = (0, _reselect.createSelector)(scopeData, function (scopes) {
43
+ return scopes;
44
+ });
45
+ exports.getScopesSelector = getScopesSelector;
42
46
  var localizedScopesSelector = (0, _reselect.createSelector)(scopeData, _locale.currentLocaleOrDefault, function (scopes, locale) {
43
47
  return scopes.map(function (scope) {
44
48
  return scope.withMutations(function (s) {
@@ -130,6 +134,7 @@ exports.localizedScopeSelector = localizedScopeSelector;
130
134
  }
131
135
 
132
136
  reactHotLoader.register(scopeData, "scopeData", "/home/vsts/work/1/s/src/selectors/scope.js");
137
+ reactHotLoader.register(getScopesSelector, "getScopesSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
133
138
  reactHotLoader.register(localizedScopesSelector, "localizedScopesSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
134
139
  reactHotLoader.register(currentScopeSelector, "currentScopeSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
135
140
  reactHotLoader.register(scopeDefaultCultureSelector, "scopeDefaultCultureSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
@@ -158,6 +163,7 @@ exports.localizedScopeSelector = localizedScopeSelector;
158
163
  }
159
164
 
160
165
  reactHotLoader.register(scopeData, "scopeData", "/home/vsts/work/1/s/src/selectors/scope.js");
166
+ reactHotLoader.register(getScopesSelector, "getScopesSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
161
167
  reactHotLoader.register(localizedScopesSelector, "localizedScopesSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
162
168
  reactHotLoader.register(currentScopeSelector, "currentScopeSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
163
169
  reactHotLoader.register(scopeDefaultCultureSelector, "scopeDefaultCultureSelector", "/home/vsts/work/1/s/src/selectors/scope.js");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.defaultScopeSelector = exports.defaultAppId = void 0;
4
+ exports.getLoadedModulesScopeSelector = exports.getApplicationModulesSelector = exports.defaultScopeSelector = exports.defaultAppId = void 0;
5
5
 
6
6
  var _reselect = require("reselect");
7
7
 
@@ -35,6 +35,14 @@ var defaultScopeSelector = (0, _reselect.createSelector)(settingsData, function
35
35
  return data.get("defaultScope");
36
36
  });
37
37
  exports.defaultScopeSelector = defaultScopeSelector;
38
+ var getLoadedModulesScopeSelector = (0, _reselect.createSelector)(settingsData, function (data) {
39
+ return data.get("loadedModulesScope").toJS();
40
+ });
41
+ exports.getLoadedModulesScopeSelector = getLoadedModulesScopeSelector;
42
+ var getApplicationModulesSelector = (0, _reselect.createSelector)(settingsData, function (data) {
43
+ return data.get("modules").toJS();
44
+ });
45
+ exports.getApplicationModulesSelector = getApplicationModulesSelector;
38
46
  ;
39
47
 
40
48
  (function () {
@@ -47,6 +55,8 @@ exports.defaultScopeSelector = defaultScopeSelector;
47
55
  reactHotLoader.register(settingsData, "settingsData", "/home/vsts/work/1/s/src/selectors/settings.js");
48
56
  reactHotLoader.register(defaultAppId, "defaultAppId", "/home/vsts/work/1/s/src/selectors/settings.js");
49
57
  reactHotLoader.register(defaultScopeSelector, "defaultScopeSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
58
+ reactHotLoader.register(getLoadedModulesScopeSelector, "getLoadedModulesScopeSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
59
+ reactHotLoader.register(getApplicationModulesSelector, "getApplicationModulesSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
50
60
  })();
51
61
 
52
62
  ;
@@ -68,6 +78,8 @@ exports.defaultScopeSelector = defaultScopeSelector;
68
78
  reactHotLoader.register(settingsData, "settingsData", "/home/vsts/work/1/s/src/selectors/settings.js");
69
79
  reactHotLoader.register(defaultAppId, "defaultAppId", "/home/vsts/work/1/s/src/selectors/settings.js");
70
80
  reactHotLoader.register(defaultScopeSelector, "defaultScopeSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
81
+ reactHotLoader.register(getLoadedModulesScopeSelector, "getLoadedModulesScopeSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
82
+ reactHotLoader.register(getApplicationModulesSelector, "getApplicationModulesSelector", "/home/vsts/work/1/s/src/selectors/settings.js");
71
83
  })();
72
84
 
73
85
  ;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "1.2.0-dev.2",
3
+ "version": "1.2.0-dev.6",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -47,11 +47,9 @@
47
47
  "cultureIso": "fr-CA"
48
48
  }
49
49
  ],
50
- "devDependencies": {
51
- "orc-scripts": "1.3.0-dev.1"
52
- },
50
+ "devDependencies": {},
53
51
  "peerDependencies": {
54
- "orc-scripts": "1.3.0-dev.1"
52
+ "orc-scripts": "1.3.0-dev.2"
55
53
  },
56
54
  "sideEffects": false,
57
55
  "lint-staged": {
@@ -69,5 +67,8 @@
69
67
  "hooks": {
70
68
  "pre-commit": "lint-staged"
71
69
  }
70
+ },
71
+ "dependencies": {
72
+ "orc-scripts": "1.3.0-dev.2"
72
73
  }
73
74
  }
@@ -4,3 +4,33 @@ export const setModulesStructure = modules => ({
4
4
  type: SET_MODULES_STRUCTURE,
5
5
  payload: modules,
6
6
  });
7
+
8
+ export const SET_MODULE_AS_VISIBLE = "SET_MODULE_AS_VISIBLE";
9
+
10
+ export const setModuleAsVisible = module => ({
11
+ type: SET_MODULE_AS_VISIBLE,
12
+ payload: module,
13
+ });
14
+
15
+ export const INITIALIZE_FIRST_MODULE_SCOPE = "INITIALIZE_FIRST_MODULE_SCOPE";
16
+
17
+ export const initializeFirstModuleScope = scope => ({
18
+ type: INITIALIZE_FIRST_MODULE_SCOPE,
19
+ payload: scope,
20
+ });
21
+
22
+ export const SET_NEW_SCOPE_AND_MODULE_NAME = "SET_NEW_SCOPE_AND_MODULE_NAME";
23
+
24
+ export const setNewScopeAndModuleName = (scope, moduleName) => ({
25
+ type: SET_NEW_SCOPE_AND_MODULE_NAME,
26
+ payload: {
27
+ scope,
28
+ moduleName,
29
+ },
30
+ });
31
+
32
+ export const SET_ROUTING_PERFORMED = "SET_ROUTING_PERFORMED";
33
+
34
+ export const setRoutingPerformed = () => ({
35
+ type: SET_ROUTING_PERFORMED,
36
+ });
@@ -1,4 +1,15 @@
1
- import { SET_MODULES_STRUCTURE, setModulesStructure } from "./modules";
1
+ import {
2
+ INITIALIZE_FIRST_MODULE_SCOPE,
3
+ initializeFirstModuleScope,
4
+ SET_MODULE_AS_VISIBLE,
5
+ SET_MODULES_STRUCTURE,
6
+ SET_NEW_SCOPE_AND_MODULE_NAME,
7
+ SET_ROUTING_PERFORMED,
8
+ setModuleAsVisible,
9
+ setModulesStructure,
10
+ setNewScopeAndModuleName,
11
+ setRoutingPerformed,
12
+ } from "./modules";
2
13
 
3
14
  describe("setModulesStructure", () => {
4
15
  it("creates an action object", () => {
@@ -8,3 +19,41 @@ describe("setModulesStructure", () => {
8
19
  });
9
20
  });
10
21
  });
22
+
23
+ describe("initializeFirstModuleScope", () => {
24
+ it("creates an action object", () => {
25
+ expect(initializeFirstModuleScope, "when called with", ["module_1"], "to equal", {
26
+ type: INITIALIZE_FIRST_MODULE_SCOPE,
27
+ payload: "module_1",
28
+ });
29
+ });
30
+ });
31
+
32
+ describe("setModuleAsVisible", () => {
33
+ it("creates an action object", () => {
34
+ expect(setModuleAsVisible, "when called with", ["module_A"], "to equal", {
35
+ type: SET_MODULE_AS_VISIBLE,
36
+ payload: "module_A",
37
+ });
38
+ });
39
+ });
40
+
41
+ describe("setNewScopeAndModuleName", () => {
42
+ it("creates an action object", () => {
43
+ expect(setNewScopeAndModuleName, "when called with", ["matrixScope", "moduleNeo"], "to equal", {
44
+ type: SET_NEW_SCOPE_AND_MODULE_NAME,
45
+ payload: {
46
+ scope: "matrixScope",
47
+ moduleName: "moduleNeo",
48
+ },
49
+ });
50
+ });
51
+ });
52
+
53
+ describe("setRoutingPerformed", () => {
54
+ it("creates an action object", () => {
55
+ expect(setRoutingPerformed, "when called", "to equal", {
56
+ type: SET_ROUTING_PERFORMED,
57
+ });
58
+ });
59
+ });
@@ -1,26 +1,52 @@
1
1
  import { makeActionTypes } from "./makeApiAction";
2
2
  import makeOrcApiAction from "./makeOrcApiAction";
3
- import { getUserScopeRequest, getUserScopeTreeRequest } from "./requestsApi";
3
+ import { getApplicationModules, getUserScopeRequest, getUserScopeTreeRequest } from "./requestsApi";
4
+ import { overtureModule } from "../constants";
4
5
 
5
- export const validateOvertureModule = () => {
6
- if (!OVERTURE_MODULE) {
7
- throw new Error('"overtureModule.name" is missing in the configuration.');
6
+ export const validateOvertureApplication = () => {
7
+ if (!OVERTURE_APPLICATION) {
8
+ throw new Error('"overtureApplication.name" is missing in the configuration.');
8
9
  }
9
10
  };
10
11
 
11
- validateOvertureModule();
12
+ validateOvertureApplication();
13
+
14
+ export const GET_APPLICATION_MODULES = "GET_APPLICATION_MODULES";
15
+
16
+ export const [GET_APPLICATION_MODULES_REQUEST, GET_APPLICATION_MODULES_SUCCESS, GET_APPLICATION_MODULES_FAILURE] =
17
+ makeActionTypes(GET_APPLICATION_MODULES);
18
+
19
+ export const getAppModules = () =>
20
+ makeOrcApiAction(GET_APPLICATION_MODULES, getApplicationModules.buildUrl(OVERTURE_APPLICATION));
12
21
 
13
22
  export const GET_SCOPES = "GET_SCOPES";
14
23
 
15
24
  export const [GET_SCOPES_REQUEST, GET_SCOPES_SUCCESS, GET_SCOPES_FAILURE] = makeActionTypes(GET_SCOPES);
16
25
 
17
- export const getScopes = () => makeOrcApiAction(GET_SCOPES, getUserScopeTreeRequest.buildUrl(OVERTURE_MODULE, {}));
26
+ export const getScopes = module =>
27
+ makeOrcApiAction(
28
+ GET_SCOPES,
29
+ getUserScopeTreeRequest.buildUrl(module === overtureModule.System ? overtureModule.Orders : module, {}),
30
+ getUserScopeTreeRequest.verb,
31
+ {
32
+ bailout: false,
33
+ meta: { module },
34
+ },
35
+ );
18
36
 
19
37
  export const GET_MY_SCOPE = "GET_MY_SCOPE";
20
38
 
21
39
  export const [GET_MY_SCOPE_REQUEST, GET_MY_SCOPE_SUCCESS, GET_MY_SCOPE_FAILURE] = makeActionTypes(GET_MY_SCOPE);
22
40
 
23
- export const getDefaultScope = () => makeOrcApiAction(GET_MY_SCOPE, getUserScopeRequest.buildUrl(OVERTURE_MODULE));
41
+ export const getDefaultScope = module =>
42
+ makeOrcApiAction(
43
+ GET_MY_SCOPE,
44
+ getUserScopeRequest.buildUrl(module === overtureModule.System ? overtureModule.Orders : module),
45
+ getUserScopeRequest.verb,
46
+ {
47
+ bailout: false,
48
+ },
49
+ );
24
50
 
25
51
  export const APPLICATION_SCOPE_HAS_CHANGED = "APPLICATION_SCOPE_HAS_CHANGED";
26
52