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,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 | var layoutsData = dashboardUtils.getStateLayoutsData(vm.dashboard, state); | 373 | var layoutsData = dashboardUtils.getStateLayoutsData(vm.dashboard, state); |
374 | if (layoutsData) { | 374 | if (layoutsData) { |
375 | vm.dashboardCtx.state = state; | 375 | vm.dashboardCtx.state = state; |
@@ -387,7 +387,7 @@ export default function DashboardController(types, dashboardUtils, widgetService | @@ -387,7 +387,7 @@ export default function DashboardController(types, dashboardUtils, widgetService | ||
387 | layoutVisibilityChanged = !vm.isMobile; | 387 | layoutVisibilityChanged = !vm.isMobile; |
388 | } | 388 | } |
389 | } | 389 | } |
390 | - vm.isRightLayoutOpened = false; | 390 | + vm.isRightLayoutOpened = openRightLayout ? true : false; |
391 | updateLayouts(layoutVisibilityChanged); | 391 | updateLayouts(layoutVisibilityChanged); |
392 | } | 392 | } |
393 | 393 |
@@ -26,12 +26,13 @@ export default function DefaultStateController($scope, $location, $state, $state | @@ -26,12 +26,13 @@ export default function DefaultStateController($scope, $location, $state, $state | ||
26 | vm.navigatePrevState = navigatePrevState; | 26 | vm.navigatePrevState = navigatePrevState; |
27 | vm.getStateId = getStateId; | 27 | vm.getStateId = getStateId; |
28 | vm.getStateParams = getStateParams; | 28 | vm.getStateParams = getStateParams; |
29 | + vm.getStateParamsByStateId = getStateParamsByStateId; | ||
29 | 30 | ||
30 | vm.getStateName = getStateName; | 31 | vm.getStateName = getStateName; |
31 | 32 | ||
32 | vm.displayStateSelection = displayStateSelection; | 33 | vm.displayStateSelection = displayStateSelection; |
33 | 34 | ||
34 | - function openState(id, params) { | 35 | + function openState(id, params, openRightLayout) { |
35 | if (vm.states && vm.states[id]) { | 36 | if (vm.states && vm.states[id]) { |
36 | if (!params) { | 37 | if (!params) { |
37 | params = {}; | 38 | params = {}; |
@@ -42,11 +43,11 @@ export default function DefaultStateController($scope, $location, $state, $state | @@ -42,11 +43,11 @@ export default function DefaultStateController($scope, $location, $state, $state | ||
42 | } | 43 | } |
43 | //append new state | 44 | //append new state |
44 | vm.stateObject[0] = newState; | 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 | if (vm.states && vm.states[id]) { | 51 | if (vm.states && vm.states[id]) { |
51 | if (!params) { | 52 | if (!params) { |
52 | params = {}; | 53 | params = {}; |
@@ -57,7 +58,7 @@ export default function DefaultStateController($scope, $location, $state, $state | @@ -57,7 +58,7 @@ export default function DefaultStateController($scope, $location, $state, $state | ||
57 | } | 58 | } |
58 | //replace with new state | 59 | //replace with new state |
59 | vm.stateObject[0] = newState; | 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,6 +77,24 @@ export default function DefaultStateController($scope, $location, $state, $state | ||
76 | return vm.stateObject[vm.stateObject.length-1].params; | 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 | function getStateName(id, state) { | 98 | function getStateName(id, state) { |
80 | var result = ''; | 99 | var result = ''; |
81 | var translationId = types.translate.dashboardStatePrefix + id; | 100 | var translationId = types.translate.dashboardStatePrefix + id; |
@@ -161,9 +180,9 @@ export default function DefaultStateController($scope, $location, $state, $state | @@ -161,9 +180,9 @@ export default function DefaultStateController($scope, $location, $state, $state | ||
161 | }, true); | 180 | }, true); |
162 | } | 181 | } |
163 | 182 | ||
164 | - function gotoState(stateId, update) { | 183 | + function gotoState(stateId, update, openRightLayout) { |
165 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { | 184 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { |
166 | - vm.dashboardCtrl.openDashboardState(stateId); | 185 | + vm.dashboardCtrl.openDashboardState(stateId, openRightLayout); |
167 | if (update) { | 186 | if (update) { |
168 | updateLocation(); | 187 | updateLocation(); |
169 | } | 188 | } |
@@ -28,12 +28,13 @@ export default function EntityStateController($scope, $location, $state, $stateP | @@ -28,12 +28,13 @@ export default function EntityStateController($scope, $location, $state, $stateP | ||
28 | vm.navigatePrevState = navigatePrevState; | 28 | vm.navigatePrevState = navigatePrevState; |
29 | vm.getStateId = getStateId; | 29 | vm.getStateId = getStateId; |
30 | vm.getStateParams = getStateParams; | 30 | vm.getStateParams = getStateParams; |
31 | + vm.getStateParamsByStateId = getStateParamsByStateId; | ||
31 | 32 | ||
32 | vm.getStateName = getStateName; | 33 | vm.getStateName = getStateName; |
33 | 34 | ||
34 | vm.selectedStateIndex = -1; | 35 | vm.selectedStateIndex = -1; |
35 | 36 | ||
36 | - function openState(id, params) { | 37 | + function openState(id, params, openRightLayout) { |
37 | if (vm.states && vm.states[id]) { | 38 | if (vm.states && vm.states[id]) { |
38 | resolveEntity(params).then( | 39 | resolveEntity(params).then( |
39 | function success(entityName) { | 40 | function success(entityName) { |
@@ -45,13 +46,13 @@ export default function EntityStateController($scope, $location, $state, $stateP | @@ -45,13 +46,13 @@ export default function EntityStateController($scope, $location, $state, $stateP | ||
45 | //append new state | 46 | //append new state |
46 | vm.stateObject.push(newState); | 47 | vm.stateObject.push(newState); |
47 | vm.selectedStateIndex = vm.stateObject.length-1; | 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 | if (vm.states && vm.states[id]) { | 56 | if (vm.states && vm.states[id]) { |
56 | resolveEntity(params).then( | 57 | resolveEntity(params).then( |
57 | function success(entityName) { | 58 | function success(entityName) { |
@@ -62,7 +63,7 @@ export default function EntityStateController($scope, $location, $state, $stateP | @@ -62,7 +63,7 @@ export default function EntityStateController($scope, $location, $state, $stateP | ||
62 | } | 63 | } |
63 | //replace with new state | 64 | //replace with new state |
64 | vm.stateObject[vm.stateObject.length - 1] = newState; | 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,6 +85,24 @@ export default function EntityStateController($scope, $location, $state, $stateP | ||
84 | return vm.stateObject[vm.stateObject.length-1].params; | 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 | function getStateName(index) { | 106 | function getStateName(index) { |
88 | var result = ''; | 107 | var result = ''; |
89 | if (vm.stateObject[index]) { | 108 | if (vm.stateObject[index]) { |
@@ -223,9 +242,9 @@ export default function EntityStateController($scope, $location, $state, $stateP | @@ -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 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { | 246 | if (vm.dashboardCtrl.dashboardCtx.state != stateId) { |
228 | - vm.dashboardCtrl.openDashboardState(stateId); | 247 | + vm.dashboardCtrl.openDashboardState(stateId, openRightLayout); |
229 | if (update) { | 248 | if (update) { |
230 | updateLocation(); | 249 | updateLocation(); |
231 | } | 250 | } |
@@ -29,15 +29,15 @@ export default function StatesComponent($compile, $templateCache, $controller, s | @@ -29,15 +29,15 @@ export default function StatesComponent($compile, $templateCache, $controller, s | ||
29 | 29 | ||
30 | var stateController = scope.dashboardCtrl.dashboardCtx.stateController; | 30 | var stateController = scope.dashboardCtrl.dashboardCtx.stateController; |
31 | 31 | ||
32 | - stateController.openState = function(id, params) { | 32 | + stateController.openState = function(id, params, openRightLayout) { |
33 | if (scope.statesController) { | 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 | if (scope.statesController) { | 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,6 +62,14 @@ export default function StatesComponent($compile, $templateCache, $controller, s | ||
62 | return {}; | 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 | scope.$on('$destroy', function callOnDestroyHook() { | 75 | scope.$on('$destroy', function callOnDestroyHook() { |