From 3257cb1e28c4be8d7436ae4a7358fe3f445e783a Mon Sep 17 00:00:00 2001 From: Richard Wei <54336863+WaysonWei@users.noreply.github.com> Date: Tue, 10 Aug 2021 16:44:33 +1200 Subject: [PATCH] fix(app):fix additional not save warning EE-799 (#5161) * fix(app):fix additional not save warning EE-799 * fix additional warning when user leave page * fix additional warning when user leave page in buildImageController.js * fix docker build controller additional warning message * fix changes required from reviews * - refactored ondestroy hook function to align it closer to (below) oninit - removed duplicated hook func duplication in configurationController Co-authored-by: zees-dev --- app/docker/views/configs/create/createConfigController.js | 4 ++++ app/docker/views/images/build/buildImageController.js | 4 ++++ .../createEdgeJobView/createEdgeJobViewController.js | 4 ++++ app/edge/views/edge-jobs/edgeJob/edgeJobController.js | 4 ++++ .../createEdgeStackView/createEdgeStackViewController.js | 4 ++++ .../editEdgeStackView/editEdgeStackViewController.js | 4 ++++ .../configurations/create/createConfigurationController.js | 4 ++++ .../views/configurations/edit/configurationController.js | 1 + app/kubernetes/views/deploy/deployController.js | 4 ++++ .../createCustomTemplateViewController.js | 4 ++++ .../editCustomTemplateViewController.js | 4 ++++ app/portainer/views/stacks/create/createStackController.js | 4 ++++ app/portainer/views/stacks/edit/stackController.js | 4 ++++ 13 files changed, 49 insertions(+) diff --git a/app/docker/views/configs/create/createConfigController.js b/app/docker/views/configs/create/createConfigController.js index 0d764fe34..7921bf5ac 100644 --- a/app/docker/views/configs/create/createConfigController.js +++ b/app/docker/views/configs/create/createConfigController.js @@ -62,6 +62,10 @@ class CreateConfigController { } } + $onDestroy() { + this.state.isEditorDirty = false; + } + async uiCanExit() { if (this.formValues.displayCodeEditor && this.formValues.ConfigContent && this.state.isEditorDirty) { return this.ModalService.confirmWebEditorDiscard(); diff --git a/app/docker/views/images/build/buildImageController.js b/app/docker/views/images/build/buildImageController.js index 8974f915b..1c3afec45 100644 --- a/app/docker/views/images/build/buildImageController.js +++ b/app/docker/views/images/build/buildImageController.js @@ -23,6 +23,10 @@ function BuildImageController($scope, $async, $window, ModalService, BuildServic } }; + $scope.$on('$destroy', function () { + $scope.state.isEditorDirty = false; + }); + $scope.addImageName = function () { $scope.formValues.ImageNames.push({ Name: '' }); }; diff --git a/app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js b/app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js index d510cd585..3244e8d09 100644 --- a/app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js +++ b/app/edge/views/edge-jobs/createEdgeJobView/createEdgeJobViewController.js @@ -77,4 +77,8 @@ export class CreateEdgeJobViewController { } }; } + + $onDestroy() { + this.state.isEditorDirty = false; + } } diff --git a/app/edge/views/edge-jobs/edgeJob/edgeJobController.js b/app/edge/views/edge-jobs/edgeJob/edgeJobController.js index 845710f67..f88e9576d 100644 --- a/app/edge/views/edge-jobs/edgeJob/edgeJobController.js +++ b/app/edge/views/edge-jobs/edgeJob/edgeJobController.js @@ -170,4 +170,8 @@ export class EdgeJobController { } }; } + + $onDestroy() { + this.state.isEditorDirty = false; + } } diff --git a/app/edge/views/edge-stacks/createEdgeStackView/createEdgeStackViewController.js b/app/edge/views/edge-stacks/createEdgeStackView/createEdgeStackViewController.js index aaf10b64b..bccfeddac 100644 --- a/app/edge/views/edge-stacks/createEdgeStackView/createEdgeStackViewController.js +++ b/app/edge/views/edge-stacks/createEdgeStackView/createEdgeStackViewController.js @@ -71,6 +71,10 @@ export class CreateEdgeStackViewController { }; } + $onDestroy() { + this.state.isEditorDirty = false; + } + createStack() { return this.$async(this.createStackAsync); } diff --git a/app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js b/app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js index 02d6e3f66..db2c9fa46 100644 --- a/app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js +++ b/app/edge/views/edge-stacks/editEdgeStackView/editEdgeStackViewController.js @@ -53,6 +53,10 @@ export class EditEdgeStackViewController { }; } + $onDestroy() { + this.state.isEditorDirty = false; + } + async uiCanExit() { if (this.formValues.StackFileContent !== this.oldFileContent && this.state.isEditorDirty) { return this.ModalService.confirmWebEditorDiscard(); diff --git a/app/kubernetes/views/configurations/create/createConfigurationController.js b/app/kubernetes/views/configurations/create/createConfigurationController.js index 909a462d6..d2e4f9d4d 100644 --- a/app/kubernetes/views/configurations/create/createConfigurationController.js +++ b/app/kubernetes/views/configurations/create/createConfigurationController.js @@ -114,6 +114,10 @@ class KubernetesCreateConfigurationController { $onInit() { return this.$async(this.onInit); } + + $onDestroy() { + this.state.isEditorDirty = false; + } } export default KubernetesCreateConfigurationController; diff --git a/app/kubernetes/views/configurations/edit/configurationController.js b/app/kubernetes/views/configurations/edit/configurationController.js index 0bf9f2366..cc71d9b8e 100644 --- a/app/kubernetes/views/configurations/edit/configurationController.js +++ b/app/kubernetes/views/configurations/edit/configurationController.js @@ -289,6 +289,7 @@ class KubernetesConfigurationController { if (this.state.currentName !== this.$state.$current.name) { this.LocalStorage.storeActiveTab('configuration', 0); } + this.state.isEditorDirty = false; } } diff --git a/app/kubernetes/views/deploy/deployController.js b/app/kubernetes/views/deploy/deployController.js index 5fbd0341a..21d754b82 100644 --- a/app/kubernetes/views/deploy/deployController.js +++ b/app/kubernetes/views/deploy/deployController.js @@ -148,6 +148,10 @@ class KubernetesDeployController { $onInit() { return this.$async(this.onInit); } + + $onDestroy() { + this.state.isEditorDirty = false; + } } export default KubernetesDeployController; diff --git a/app/portainer/views/custom-templates/create-custom-template-view/createCustomTemplateViewController.js b/app/portainer/views/custom-templates/create-custom-template-view/createCustomTemplateViewController.js index f64778957..2f0b0debf 100644 --- a/app/portainer/views/custom-templates/create-custom-template-view/createCustomTemplateViewController.js +++ b/app/portainer/views/custom-templates/create-custom-template-view/createCustomTemplateViewController.js @@ -189,6 +189,10 @@ class CreateCustomTemplateViewController { }; } + $onDestroy() { + this.state.isEditorDirty = false; + } + async uiCanExit() { if (this.state.Method === 'editor' && this.formValues.FileContent && this.state.isEditorDirty) { return this.ModalService.confirmWebEditorDiscard(); diff --git a/app/portainer/views/custom-templates/edit-custom-template-view/editCustomTemplateViewController.js b/app/portainer/views/custom-templates/edit-custom-template-view/editCustomTemplateViewController.js index 941d1870b..cb6d4abdc 100644 --- a/app/portainer/views/custom-templates/edit-custom-template-view/editCustomTemplateViewController.js +++ b/app/portainer/views/custom-templates/edit-custom-template-view/editCustomTemplateViewController.js @@ -123,6 +123,10 @@ class EditCustomTemplateViewController { } }; } + + $onDestroy() { + this.state.isEditorDirty = false; + } } export default EditCustomTemplateViewController; diff --git a/app/portainer/views/stacks/create/createStackController.js b/app/portainer/views/stacks/create/createStackController.js index e393df30f..2b42600b2 100644 --- a/app/portainer/views/stacks/create/createStackController.js +++ b/app/portainer/views/stacks/create/createStackController.js @@ -53,6 +53,10 @@ angular } }; + $scope.$on('$destroy', function() { + $scope.state.isEditorDirty = false; + }) + $scope.onChangeFormValues = onChangeFormValues; $scope.addEnvironmentVariable = function () { diff --git a/app/portainer/views/stacks/edit/stackController.js b/app/portainer/views/stacks/edit/stackController.js index dbc347c43..4c9289fed 100644 --- a/app/portainer/views/stacks/edit/stackController.js +++ b/app/portainer/views/stacks/edit/stackController.js @@ -70,6 +70,10 @@ angular.module('portainer.app').controller('StackController', [ } }; + $scope.$on('$destroy', function() { + $scope.state.isEditorDirty = false; + }) + $scope.handleEnvVarChange = handleEnvVarChange; function handleEnvVarChange(value) { $scope.formValues.Env = value;