Commit 4054d3de6e8c1da18d672abb9c0cf5eedb7c27d2
1 parent
3ebd99ac
UI: Improve dashboard state management.
Showing
4 changed files
with
64 additions
and
18 deletions
... | ... | @@ -369,7 +369,7 @@ export default function DashboardController(types, dashboardUtils, widgetService |
369 | 369 | } |
370 | 370 | } |
371 | 371 | |
372 | - function openDashboardState(state) { | |
372 | + function openDashboardState(state, openRightLayout) { | |
373 | 373 | var layoutsData = dashboardUtils.getStateLayoutsData(vm.dashboard, state); |
374 | 374 | if (layoutsData) { |
375 | 375 | vm.dashboardCtx.state = state; |
... | ... | @@ -387,7 +387,7 @@ export default function DashboardController(types, dashboardUtils, widgetService |
387 | 387 | layoutVisibilityChanged = !vm.isMobile; |
388 | 388 | } |
389 | 389 | } |
390 | - vm.isRightLayoutOpened = false; | |
390 | + vm.isRightLayoutOpened = openRightLayout ? true : false; | |
391 | 391 | updateLayouts(layoutVisibilityChanged); |
392 | 392 | } |
393 | 393 | ... | ... |
... | ... | @@ -26,12 +26,13 @@ export default function DefaultStateController($scope, $location, $state, $state |
26 | 26 | vm.navigatePrevState = navigatePrevState; |
27 | 27 | vm.getStateId = getStateId; |
28 | 28 | vm.getStateParams = getStateParams; |
29 | + vm.getStateParamsByStateId = getStateParamsByStateId; | |
29 | 30 | |
30 | 31 | vm.getStateName = getStateName; |
31 | 32 | |
32 | 33 | vm.displayStateSelection = displayStateSelection; |
33 | 34 | |
34 | - function openState(id, params) { | |
35 | + function openState(id, params, openRightLayout) { | |
35 | 36 | if (vm.states && vm.states[id]) { |
36 | 37 | if (!params) { |
37 | 38 | params = {}; |
... | ... | @@ -42,11 +43,11 @@ export default function DefaultStateController($scope, $location, $state, $state |
42 | 43 | } |
43 | 44 | //append new state |
44 | 45 | vm.stateObject[0] = newState; |
45 | - gotoState(vm.stateObject[0].id, true); | |
46 | + gotoState(vm.stateObject[0].id, true, openRightLayout); | |
46 | 47 | } |
47 | 48 | } |
48 | 49 | |
49 | - function updateState(id, params) { | |
50 | + function updateState(id, params, openRightLayout) { | |
50 | 51 | if (vm.states && vm.states[id]) { |
51 | 52 | if (!params) { |
52 | 53 | params = {}; |
... | ... | @@ -57,7 +58,7 @@ export default function DefaultStateController($scope, $location, $state, $state |
57 | 58 | } |
58 | 59 | //replace with new state |
59 | 60 | vm.stateObject[0] = newState; |
60 | - gotoState(vm.stateObject[0].id, true); | |
61 | + gotoState(vm.stateObject[0].id, true, openRightLayout); | |
61 | 62 | } |
62 | 63 | } |
63 | 64 | |
... | ... | @@ -76,6 +77,24 @@ export default function DefaultStateController($scope, $location, $state, $state |
76 | 77 | return vm.stateObject[vm.stateObject.length-1].params; |
77 | 78 | } |
78 | 79 | |
80 | + function getStateParamsByStateId(stateId) { | |
81 | + var stateObj = getStateObjById(stateId); | |
82 | + if (stateObj) { | |
83 | + return stateObj.params; | |
84 | + } else { | |
85 | + return null; | |
86 | + } | |
87 | + } | |
88 | + | |
89 | + function getStateObjById(id) { | |
90 | + for (var i=0; i < vm.stateObject.length; i++) { | |
91 | + if (vm.stateObject[i].id === id) { | |
92 | + return vm.stateObject[i]; | |
93 | + } | |
94 | + } | |
95 | + return null; | |
96 | + } | |
97 | + | |
79 | 98 | function getStateName(id, state) { |
80 | 99 | var result = ''; |
81 | 100 | var translationId = types.translate.dashboardStatePrefix + id; |
... | ... | @@ -161,9 +180,9 @@ export default function DefaultStateController($scope, $location, $state, $state |
161 | 180 | }, true); |
162 | 181 | } |
163 | 182 | |
164 | - function gotoState(stateId, update) { | |
183 | + function gotoState(stateId, update, openRightLayout) { | |
165 | 184 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { |
166 | - vm.dashboardCtrl.openDashboardState(stateId); | |
185 | + vm.dashboardCtrl.openDashboardState(stateId, openRightLayout); | |
167 | 186 | if (update) { |
168 | 187 | updateLocation(); |
169 | 188 | } | ... | ... |
... | ... | @@ -28,12 +28,13 @@ export default function EntityStateController($scope, $location, $state, $stateP |
28 | 28 | vm.navigatePrevState = navigatePrevState; |
29 | 29 | vm.getStateId = getStateId; |
30 | 30 | vm.getStateParams = getStateParams; |
31 | + vm.getStateParamsByStateId = getStateParamsByStateId; | |
31 | 32 | |
32 | 33 | vm.getStateName = getStateName; |
33 | 34 | |
34 | 35 | vm.selectedStateIndex = -1; |
35 | 36 | |
36 | - function openState(id, params) { | |
37 | + function openState(id, params, openRightLayout) { | |
37 | 38 | if (vm.states && vm.states[id]) { |
38 | 39 | resolveEntity(params).then( |
39 | 40 | function success(entityName) { |
... | ... | @@ -45,13 +46,13 @@ export default function EntityStateController($scope, $location, $state, $stateP |
45 | 46 | //append new state |
46 | 47 | vm.stateObject.push(newState); |
47 | 48 | vm.selectedStateIndex = vm.stateObject.length-1; |
48 | - gotoState(vm.stateObject[vm.stateObject.length-1].id, true); | |
49 | + gotoState(vm.stateObject[vm.stateObject.length-1].id, true, openRightLayout); | |
49 | 50 | } |
50 | 51 | ); |
51 | 52 | } |
52 | 53 | } |
53 | 54 | |
54 | - function updateState(id, params) { | |
55 | + function updateState(id, params, openRightLayout) { | |
55 | 56 | if (vm.states && vm.states[id]) { |
56 | 57 | resolveEntity(params).then( |
57 | 58 | function success(entityName) { |
... | ... | @@ -62,7 +63,7 @@ export default function EntityStateController($scope, $location, $state, $stateP |
62 | 63 | } |
63 | 64 | //replace with new state |
64 | 65 | vm.stateObject[vm.stateObject.length - 1] = newState; |
65 | - gotoState(vm.stateObject[vm.stateObject.length - 1].id, true); | |
66 | + gotoState(vm.stateObject[vm.stateObject.length - 1].id, true, openRightLayout); | |
66 | 67 | } |
67 | 68 | ); |
68 | 69 | } |
... | ... | @@ -84,6 +85,24 @@ export default function EntityStateController($scope, $location, $state, $stateP |
84 | 85 | return vm.stateObject[vm.stateObject.length-1].params; |
85 | 86 | } |
86 | 87 | |
88 | + function getStateParamsByStateId(stateId) { | |
89 | + var stateObj = getStateObjById(stateId); | |
90 | + if (stateObj) { | |
91 | + return stateObj.params; | |
92 | + } else { | |
93 | + return null; | |
94 | + } | |
95 | + } | |
96 | + | |
97 | + function getStateObjById(id) { | |
98 | + for (var i=0; i < vm.stateObject.length; i++) { | |
99 | + if (vm.stateObject[i].id === id) { | |
100 | + return vm.stateObject[i]; | |
101 | + } | |
102 | + } | |
103 | + return null; | |
104 | + } | |
105 | + | |
87 | 106 | function getStateName(index) { |
88 | 107 | var result = ''; |
89 | 108 | if (vm.stateObject[index]) { |
... | ... | @@ -223,9 +242,9 @@ export default function EntityStateController($scope, $location, $state, $stateP |
223 | 242 | }); |
224 | 243 | } |
225 | 244 | |
226 | - function gotoState(stateId, update) { | |
245 | + function gotoState(stateId, update, openRightLayout) { | |
227 | 246 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { |
228 | - vm.dashboardCtrl.openDashboardState(stateId); | |
247 | + vm.dashboardCtrl.openDashboardState(stateId, openRightLayout); | |
229 | 248 | if (update) { |
230 | 249 | updateLocation(); |
231 | 250 | } | ... | ... |
... | ... | @@ -29,15 +29,15 @@ export default function StatesComponent($compile, $templateCache, $controller, s |
29 | 29 | |
30 | 30 | var stateController = scope.dashboardCtrl.dashboardCtx.stateController; |
31 | 31 | |
32 | - stateController.openState = function(id, params) { | |
32 | + stateController.openState = function(id, params, openRightLayout) { | |
33 | 33 | if (scope.statesController) { |
34 | - scope.statesController.openState(id, params); | |
34 | + scope.statesController.openState(id, params, openRightLayout); | |
35 | 35 | } |
36 | 36 | } |
37 | 37 | |
38 | - stateController.updateState = function(id, params) { | |
38 | + stateController.updateState = function(id, params, openRightLayout) { | |
39 | 39 | if (scope.statesController) { |
40 | - scope.statesController.updateState(id, params); | |
40 | + scope.statesController.updateState(id, params, openRightLayout); | |
41 | 41 | } |
42 | 42 | } |
43 | 43 | |
... | ... | @@ -62,6 +62,14 @@ export default function StatesComponent($compile, $templateCache, $controller, s |
62 | 62 | return {}; |
63 | 63 | } |
64 | 64 | } |
65 | + | |
66 | + stateController.getStateParamsByStateId = function(id) { | |
67 | + if (scope.statesController) { | |
68 | + return scope.statesController.getStateParamsByStateId(id); | |
69 | + } else { | |
70 | + return null; | |
71 | + } | |
72 | + } | |
65 | 73 | } |
66 | 74 | |
67 | 75 | scope.$on('$destroy', function callOnDestroyHook() { | ... | ... |