thingsboard-memoizeit

Details

diff --git a/ui/src/app/dashboard/dashboard.controller.js b/ui/src/app/dashboard/dashboard.controller.js
index ecf072d..31892a6 100644
--- a/ui/src/app/dashboard/dashboard.controller.js
+++ b/ui/src/app/dashboard/dashboard.controller.js
@@ -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);
         if (layoutsData) {
             vm.dashboardCtx.state = state;
@@ -387,7 +387,7 @@ export default function DashboardController(types, dashboardUtils, widgetService
                     layoutVisibilityChanged = !vm.isMobile;
                 }
             }
-            vm.isRightLayoutOpened = false;
+            vm.isRightLayoutOpened = openRightLayout ? true : false;
             updateLayouts(layoutVisibilityChanged);
         }
 
diff --git a/ui/src/app/dashboard/states/default-state-controller.js b/ui/src/app/dashboard/states/default-state-controller.js
index 782f59e..76ea9b8 100644
--- a/ui/src/app/dashboard/states/default-state-controller.js
+++ b/ui/src/app/dashboard/states/default-state-controller.js
@@ -26,12 +26,13 @@ export default function DefaultStateController($scope, $location, $state, $state
     vm.navigatePrevState = navigatePrevState;
     vm.getStateId = getStateId;
     vm.getStateParams = getStateParams;
+    vm.getStateParamsByStateId = getStateParamsByStateId;
 
     vm.getStateName = getStateName;
 
     vm.displayStateSelection = displayStateSelection;
 
-    function openState(id, params) {
+    function openState(id, params, openRightLayout) {
         if (vm.states && vm.states[id]) {
             if (!params) {
                 params = {};
@@ -42,11 +43,11 @@ export default function DefaultStateController($scope, $location, $state, $state
             }
             //append new state
             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 (!params) {
                 params = {};
@@ -57,7 +58,7 @@ export default function DefaultStateController($scope, $location, $state, $state
             }
             //replace with new state
             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;
     }
 
+    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) {
         var result = '';
         var translationId = types.translate.dashboardStatePrefix + id;
@@ -161,9 +180,9 @@ export default function DefaultStateController($scope, $location, $state, $state
         }, true);
     }
 
-    function gotoState(stateId, update) {
+    function gotoState(stateId, update, openRightLayout) {
         if (vm.dashboardCtrl.dashboardCtx.state != stateId) {
-            vm.dashboardCtrl.openDashboardState(stateId);
+            vm.dashboardCtrl.openDashboardState(stateId, openRightLayout);
             if (update) {
                 updateLocation();
             }
diff --git a/ui/src/app/dashboard/states/entity-state-controller.js b/ui/src/app/dashboard/states/entity-state-controller.js
index 8ee9285..51cf67d 100644
--- a/ui/src/app/dashboard/states/entity-state-controller.js
+++ b/ui/src/app/dashboard/states/entity-state-controller.js
@@ -28,12 +28,13 @@ export default function EntityStateController($scope, $location, $state, $stateP
     vm.navigatePrevState = navigatePrevState;
     vm.getStateId = getStateId;
     vm.getStateParams = getStateParams;
+    vm.getStateParamsByStateId = getStateParamsByStateId;
 
     vm.getStateName = getStateName;
 
     vm.selectedStateIndex = -1;
 
-    function openState(id, params) {
+    function openState(id, params, openRightLayout) {
         if (vm.states && vm.states[id]) {
             resolveEntity(params).then(
                 function success(entityName) {
@@ -45,13 +46,13 @@ export default function EntityStateController($scope, $location, $state, $stateP
                     //append new state
                     vm.stateObject.push(newState);
                     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]) {
             resolveEntity(params).then(
                 function success(entityName) {
@@ -62,7 +63,7 @@ export default function EntityStateController($scope, $location, $state, $stateP
                     }
                     //replace with new state
                     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;
     }
 
+    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) {
         var result = '';
         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) {
-            vm.dashboardCtrl.openDashboardState(stateId);
+            vm.dashboardCtrl.openDashboardState(stateId, openRightLayout);
             if (update) {
                 updateLocation();
             }
diff --git a/ui/src/app/dashboard/states/states-component.directive.js b/ui/src/app/dashboard/states/states-component.directive.js
index fb5e77c..538c3e9 100644
--- a/ui/src/app/dashboard/states/states-component.directive.js
+++ b/ui/src/app/dashboard/states/states-component.directive.js
@@ -29,15 +29,15 @@ export default function StatesComponent($compile, $templateCache, $controller, s
 
             var stateController = scope.dashboardCtrl.dashboardCtx.stateController;
 
-            stateController.openState = function(id, params) {
+            stateController.openState = function(id, params, openRightLayout) {
                 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) {
-                    scope.statesController.updateState(id, params);
+                    scope.statesController.updateState(id, params, openRightLayout);
                 }
             }
 
@@ -62,6 +62,14 @@ export default function StatesComponent($compile, $templateCache, $controller, s
                     return {};
                 }
             }
+
+            stateController.getStateParamsByStateId = function(id) {
+                if (scope.statesController) {
+                    return scope.statesController.getStateParamsByStateId(id);
+                } else {
+                    return null;
+                }
+            }
         }
 
         scope.$on('$destroy', function callOnDestroyHook() {