thingsboard-aplcache

Details

diff --git a/ui/src/app/components/widget/action/manage-widget-actions.directive.js b/ui/src/app/components/widget/action/manage-widget-actions.directive.js
index 88a37a8..8110322 100644
--- a/ui/src/app/components/widget/action/manage-widget-actions.directive.js
+++ b/ui/src/app/components/widget/action/manage-widget-actions.directive.js
@@ -244,13 +244,18 @@ function ManageWidgetActionsController($rootScope, $scope, $document, $mdDialog,
             vm.widgetActions[actionSourceId] = targetActions;
         }
         if (prevActionId) {
-            var index = getActionIndex(prevActionId, vm.allActions);
-            if (index > -1) {
-                vm.allActions[index] = action;
+            const indexInTarget = getActionIndex(prevActionId, targetActions);
+            const indexInAllActions = getActionIndex(prevActionId, vm.allActions);
+            if (indexInTarget > -1) {
+                targetActions[indexInTarget] = widgetAction;
+            } else if (indexInAllActions > -1) {
+                const prevActionSourceId = vm.allActions[indexInAllActions].actionSourceId;
+                const index = getActionIndex(prevActionId,vm.widgetActions[prevActionSourceId]);
+                vm.widgetActions[prevActionSourceId].splice(index,1);
+                targetActions.push(widgetAction);
             }
-            index = getActionIndex(prevActionId, targetActions);
-            if (index > -1) {
-                targetActions[index] = widgetAction;
+            if (indexInAllActions > -1) {
+                vm.allActions[indexInAllActions] = action;
             }
         } else {
             vm.allActions.push(action);