Commit 4054d3de6e8c1da18d672abb9c0cf5eedb7c27d2

Authored by Igor Kulikov
1 parent 3ebd99ac

UI: Improve dashboard state management.

... ... @@ -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() {
... ...