thingsboard-aplcache

Details

diff --git a/ui/src/app/dashboard/dashboard.controller.js b/ui/src/app/dashboard/dashboard.controller.js
index 950e73a..61cdf66 100644
--- a/ui/src/app/dashboard/dashboard.controller.js
+++ b/ui/src/app/dashboard/dashboard.controller.js
@@ -994,7 +994,6 @@ export default function DashboardController(types, utils, dashboardUtils, widget
         vm.isEdit = isEdit;
         if (vm.isEdit) {
             vm.prevDashboard = angular.copy(vm.dashboard);
-            vm.prevDashboardState = vm.dashboardCtx.state;
         } else {
             if (vm.widgetEditMode) {
                 if (revert) {
@@ -1006,11 +1005,11 @@ export default function DashboardController(types, utils, dashboardUtils, widget
                     vm.dashboard = vm.prevDashboard;
                     vm.dashboardConfiguration = vm.dashboard.configuration;
                     vm.dashboardCtx.dashboardTimewindow = vm.dashboardConfiguration.timewindow;
-                    openDashboardState(vm.prevDashboardState);
                     entityAliasesUpdated();
                 } else {
                     vm.dashboard.configuration.timewindow = vm.dashboardCtx.dashboardTimewindow;
                 }
+                vm.dashboardCtx.stateController.resetState();
             }
         }
     }
diff --git a/ui/src/app/dashboard/states/default-state-controller.js b/ui/src/app/dashboard/states/default-state-controller.js
index d4e5ba6..129be28 100644
--- a/ui/src/app/dashboard/states/default-state-controller.js
+++ b/ui/src/app/dashboard/states/default-state-controller.js
@@ -23,6 +23,7 @@ export default function DefaultStateController($scope, $location, $state, $state
 
     vm.openState = openState;
     vm.updateState = updateState;
+    vm.resetState = resetState;
     vm.navigatePrevState = navigatePrevState;
     vm.getStateId = getStateId;
     vm.getStateParams = getStateParams;
@@ -70,6 +71,12 @@ export default function DefaultStateController($scope, $location, $state, $state
         }
     }
 
+    function resetState() {
+        var rootStateId = dashboardUtils.getRootStateId(vm.states);
+        vm.stateObject = [ { id: rootStateId, params: {} } ];
+        gotoState(rootStateId, true);
+    }
+
     function navigatePrevState(index) {
         if (index < vm.stateObject.length-1) {
             stopWatchStateObject();
diff --git a/ui/src/app/dashboard/states/entity-state-controller.js b/ui/src/app/dashboard/states/entity-state-controller.js
index 1b295e8..6afeff9 100644
--- a/ui/src/app/dashboard/states/entity-state-controller.js
+++ b/ui/src/app/dashboard/states/entity-state-controller.js
@@ -25,6 +25,7 @@ export default function EntityStateController($scope, $location, $state, $stateP
 
     vm.openState = openState;
     vm.updateState = updateState;
+    vm.resetState = resetState;
     vm.navigatePrevState = navigatePrevState;
     vm.getStateId = getStateId;
     vm.getStateParams = getStateParams;
@@ -77,6 +78,12 @@ export default function EntityStateController($scope, $location, $state, $stateP
         }
     }
 
+    function resetState() {
+        var rootStateId = dashboardUtils.getRootStateId(vm.states);
+        vm.stateObject = [ { id: rootStateId, params: {} } ];
+        gotoState(rootStateId, true);
+    }
+
     function navigatePrevState(index) {
         if (index < vm.stateObject.length-1) {
             stopWatchStateObject();
@@ -192,9 +199,6 @@ export default function EntityStateController($scope, $location, $state, $stateP
         if (!result[0].id) {
             result[0].id = rootStateId;
         }
-        if (result[0].id !== rootStateId) {
-            result = [ { id: rootStateId, params: {} } ];
-        }
         return result;
     }
 
diff --git a/ui/src/app/dashboard/states/states-component.directive.js b/ui/src/app/dashboard/states/states-component.directive.js
index 9af5122..143a694 100644
--- a/ui/src/app/dashboard/states/states-component.directive.js
+++ b/ui/src/app/dashboard/states/states-component.directive.js
@@ -41,6 +41,12 @@ export default function StatesComponent($compile, $templateCache, $controller, s
                 }
             }
 
+            stateController.resetState = function() {
+                if (scope.statesController) {
+                    scope.statesController.resetState();
+                }
+            }
+
             stateController.navigatePrevState = function(index) {
                 if (scope.statesController) {
                     scope.statesController.navigatePrevState(index);