UI: Improve dashboard state management.
This commit is contained in:
parent
3ebd99ac9e
commit
4054d3de6e
@ -369,7 +369,7 @@ export default function DashboardController(types, dashboardUtils, widgetService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function openDashboardState(state) {
|
function openDashboardState(state, openRightLayout) {
|
||||||
var layoutsData = dashboardUtils.getStateLayoutsData(vm.dashboard, state);
|
var layoutsData = dashboardUtils.getStateLayoutsData(vm.dashboard, state);
|
||||||
if (layoutsData) {
|
if (layoutsData) {
|
||||||
vm.dashboardCtx.state = state;
|
vm.dashboardCtx.state = state;
|
||||||
@ -387,7 +387,7 @@ export default function DashboardController(types, dashboardUtils, widgetService
|
|||||||
layoutVisibilityChanged = !vm.isMobile;
|
layoutVisibilityChanged = !vm.isMobile;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vm.isRightLayoutOpened = false;
|
vm.isRightLayoutOpened = openRightLayout ? true : false;
|
||||||
updateLayouts(layoutVisibilityChanged);
|
updateLayouts(layoutVisibilityChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,12 +26,13 @@ export default function DefaultStateController($scope, $location, $state, $state
|
|||||||
vm.navigatePrevState = navigatePrevState;
|
vm.navigatePrevState = navigatePrevState;
|
||||||
vm.getStateId = getStateId;
|
vm.getStateId = getStateId;
|
||||||
vm.getStateParams = getStateParams;
|
vm.getStateParams = getStateParams;
|
||||||
|
vm.getStateParamsByStateId = getStateParamsByStateId;
|
||||||
|
|
||||||
vm.getStateName = getStateName;
|
vm.getStateName = getStateName;
|
||||||
|
|
||||||
vm.displayStateSelection = displayStateSelection;
|
vm.displayStateSelection = displayStateSelection;
|
||||||
|
|
||||||
function openState(id, params) {
|
function openState(id, params, openRightLayout) {
|
||||||
if (vm.states && vm.states[id]) {
|
if (vm.states && vm.states[id]) {
|
||||||
if (!params) {
|
if (!params) {
|
||||||
params = {};
|
params = {};
|
||||||
@ -42,11 +43,11 @@ export default function DefaultStateController($scope, $location, $state, $state
|
|||||||
}
|
}
|
||||||
//append new state
|
//append new state
|
||||||
vm.stateObject[0] = newState;
|
vm.stateObject[0] = newState;
|
||||||
gotoState(vm.stateObject[0].id, true);
|
gotoState(vm.stateObject[0].id, true, openRightLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateState(id, params) {
|
function updateState(id, params, openRightLayout) {
|
||||||
if (vm.states && vm.states[id]) {
|
if (vm.states && vm.states[id]) {
|
||||||
if (!params) {
|
if (!params) {
|
||||||
params = {};
|
params = {};
|
||||||
@ -57,7 +58,7 @@ export default function DefaultStateController($scope, $location, $state, $state
|
|||||||
}
|
}
|
||||||
//replace with new state
|
//replace with new state
|
||||||
vm.stateObject[0] = newState;
|
vm.stateObject[0] = newState;
|
||||||
gotoState(vm.stateObject[0].id, true);
|
gotoState(vm.stateObject[0].id, true, openRightLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,6 +77,24 @@ export default function DefaultStateController($scope, $location, $state, $state
|
|||||||
return vm.stateObject[vm.stateObject.length-1].params;
|
return vm.stateObject[vm.stateObject.length-1].params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getStateParamsByStateId(stateId) {
|
||||||
|
var stateObj = getStateObjById(stateId);
|
||||||
|
if (stateObj) {
|
||||||
|
return stateObj.params;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getStateObjById(id) {
|
||||||
|
for (var i=0; i < vm.stateObject.length; i++) {
|
||||||
|
if (vm.stateObject[i].id === id) {
|
||||||
|
return vm.stateObject[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
function getStateName(id, state) {
|
function getStateName(id, state) {
|
||||||
var result = '';
|
var result = '';
|
||||||
var translationId = types.translate.dashboardStatePrefix + id;
|
var translationId = types.translate.dashboardStatePrefix + id;
|
||||||
@ -161,9 +180,9 @@ export default function DefaultStateController($scope, $location, $state, $state
|
|||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function gotoState(stateId, update) {
|
function gotoState(stateId, update, openRightLayout) {
|
||||||
if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
|
if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
|
||||||
vm.dashboardCtrl.openDashboardState(stateId);
|
vm.dashboardCtrl.openDashboardState(stateId, openRightLayout);
|
||||||
if (update) {
|
if (update) {
|
||||||
updateLocation();
|
updateLocation();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,12 +28,13 @@ export default function EntityStateController($scope, $location, $state, $stateP
|
|||||||
vm.navigatePrevState = navigatePrevState;
|
vm.navigatePrevState = navigatePrevState;
|
||||||
vm.getStateId = getStateId;
|
vm.getStateId = getStateId;
|
||||||
vm.getStateParams = getStateParams;
|
vm.getStateParams = getStateParams;
|
||||||
|
vm.getStateParamsByStateId = getStateParamsByStateId;
|
||||||
|
|
||||||
vm.getStateName = getStateName;
|
vm.getStateName = getStateName;
|
||||||
|
|
||||||
vm.selectedStateIndex = -1;
|
vm.selectedStateIndex = -1;
|
||||||
|
|
||||||
function openState(id, params) {
|
function openState(id, params, openRightLayout) {
|
||||||
if (vm.states && vm.states[id]) {
|
if (vm.states && vm.states[id]) {
|
||||||
resolveEntity(params).then(
|
resolveEntity(params).then(
|
||||||
function success(entityName) {
|
function success(entityName) {
|
||||||
@ -45,13 +46,13 @@ export default function EntityStateController($scope, $location, $state, $stateP
|
|||||||
//append new state
|
//append new state
|
||||||
vm.stateObject.push(newState);
|
vm.stateObject.push(newState);
|
||||||
vm.selectedStateIndex = vm.stateObject.length-1;
|
vm.selectedStateIndex = vm.stateObject.length-1;
|
||||||
gotoState(vm.stateObject[vm.stateObject.length-1].id, true);
|
gotoState(vm.stateObject[vm.stateObject.length-1].id, true, openRightLayout);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateState(id, params) {
|
function updateState(id, params, openRightLayout) {
|
||||||
if (vm.states && vm.states[id]) {
|
if (vm.states && vm.states[id]) {
|
||||||
resolveEntity(params).then(
|
resolveEntity(params).then(
|
||||||
function success(entityName) {
|
function success(entityName) {
|
||||||
@ -62,7 +63,7 @@ export default function EntityStateController($scope, $location, $state, $stateP
|
|||||||
}
|
}
|
||||||
//replace with new state
|
//replace with new state
|
||||||
vm.stateObject[vm.stateObject.length - 1] = newState;
|
vm.stateObject[vm.stateObject.length - 1] = newState;
|
||||||
gotoState(vm.stateObject[vm.stateObject.length - 1].id, true);
|
gotoState(vm.stateObject[vm.stateObject.length - 1].id, true, openRightLayout);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -84,6 +85,24 @@ export default function EntityStateController($scope, $location, $state, $stateP
|
|||||||
return vm.stateObject[vm.stateObject.length-1].params;
|
return vm.stateObject[vm.stateObject.length-1].params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getStateParamsByStateId(stateId) {
|
||||||
|
var stateObj = getStateObjById(stateId);
|
||||||
|
if (stateObj) {
|
||||||
|
return stateObj.params;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getStateObjById(id) {
|
||||||
|
for (var i=0; i < vm.stateObject.length; i++) {
|
||||||
|
if (vm.stateObject[i].id === id) {
|
||||||
|
return vm.stateObject[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
function getStateName(index) {
|
function getStateName(index) {
|
||||||
var result = '';
|
var result = '';
|
||||||
if (vm.stateObject[index]) {
|
if (vm.stateObject[index]) {
|
||||||
@ -223,9 +242,9 @@ export default function EntityStateController($scope, $location, $state, $stateP
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function gotoState(stateId, update) {
|
function gotoState(stateId, update, openRightLayout) {
|
||||||
if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
|
if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
|
||||||
vm.dashboardCtrl.openDashboardState(stateId);
|
vm.dashboardCtrl.openDashboardState(stateId, openRightLayout);
|
||||||
if (update) {
|
if (update) {
|
||||||
updateLocation();
|
updateLocation();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,15 +29,15 @@ export default function StatesComponent($compile, $templateCache, $controller, s
|
|||||||
|
|
||||||
var stateController = scope.dashboardCtrl.dashboardCtx.stateController;
|
var stateController = scope.dashboardCtrl.dashboardCtx.stateController;
|
||||||
|
|
||||||
stateController.openState = function(id, params) {
|
stateController.openState = function(id, params, openRightLayout) {
|
||||||
if (scope.statesController) {
|
if (scope.statesController) {
|
||||||
scope.statesController.openState(id, params);
|
scope.statesController.openState(id, params, openRightLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stateController.updateState = function(id, params) {
|
stateController.updateState = function(id, params, openRightLayout) {
|
||||||
if (scope.statesController) {
|
if (scope.statesController) {
|
||||||
scope.statesController.updateState(id, params);
|
scope.statesController.updateState(id, params, openRightLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,6 +62,14 @@ export default function StatesComponent($compile, $templateCache, $controller, s
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stateController.getStateParamsByStateId = function(id) {
|
||||||
|
if (scope.statesController) {
|
||||||
|
return scope.statesController.getStateParamsByStateId(id);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
scope.$on('$destroy', function callOnDestroyHook() {
|
scope.$on('$destroy', function callOnDestroyHook() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user