diff options
author | tomasz1986 <twilczynski@naver.com> | 2023-08-31 17:11:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-31 17:11:03 +0200 |
commit | 95b3c26da724aff5b9aae88daf0783d866e95fda (patch) | |
tree | 99f877ea3b26a2532b8d01fb3989a3c67a595463 | |
parent | 3e5f0b1d0eb0cd28c0932910f373ce22cdd5d22f (diff) |
gui: Prevent modifications when saving changes (fixes #9019) (#9063)
-rw-r--r-- | gui/default/assets/lang/lang-en.json | 2 | ||||
-rw-r--r-- | gui/default/index.html | 1 | ||||
-rw-r--r-- | gui/default/syncthing/core/savingChangesDialogView.html | 8 | ||||
-rwxr-xr-x | gui/default/syncthing/core/syncthingController.js | 6 |
4 files changed, 16 insertions, 1 deletions
diff --git a/gui/default/assets/lang/lang-en.json b/gui/default/assets/lang/lang-en.json index 1c0b99fd41..4e3bba0ded 100644 --- a/gui/default/assets/lang/lang-en.json +++ b/gui/default/assets/lang/lang-en.json @@ -325,6 +325,7 @@ "Revert": "Revert", "Revert Local Changes": "Revert Local Changes", "Save": "Save", + "Saving changes": "Saving changes", "Scan Time Remaining": "Scan Time Remaining", "Scanning": "Scanning", "See external versioning help for supported templated command line parameters.": "See external versioning help for supported templated command line parameters.", @@ -391,6 +392,7 @@ "Syncthing is listening on the following network addresses for connection attempts from other devices:": "Syncthing is listening on the following network addresses for connection attempts from other devices:", "Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.": "Syncthing is not listening for connection attempts from other devices on any address. Only outgoing connections from this device may work.", "Syncthing is restarting.": "Syncthing is restarting.", + "Syncthing is saving changes.": "Syncthing is saving changes.", "Syncthing is upgrading.": "Syncthing is upgrading.", "Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.": "Syncthing now supports automatically reporting crashes to the developers. This feature is enabled by default.", "Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…": "Syncthing seems to be down, or there is a problem with your Internet connection. Retrying…", diff --git a/gui/default/index.html b/gui/default/index.html index c3bf309e6a..dff6ee5e45 100644 --- a/gui/default/index.html +++ b/gui/default/index.html @@ -978,6 +978,7 @@ <ng-include src="'syncthing/core/restartingDialogView.html'"></ng-include> <ng-include src="'syncthing/core/upgradingDialogView.html'"></ng-include> <ng-include src="'syncthing/core/shutdownDialogView.html'"></ng-include> + <ng-include src="'syncthing/core/savingChangesDialogView.html'"></ng-include> <ng-include src="'syncthing/device/idqrModalView.html'"></ng-include> <ng-include src="'syncthing/device/editDeviceModalView.html'"></ng-include> <ng-include src="'syncthing/device/globalChangesModalView.html'"></ng-include> diff --git a/gui/default/syncthing/core/savingChangesDialogView.html b/gui/default/syncthing/core/savingChangesDialogView.html new file mode 100644 index 0000000000..81b0b49d15 --- /dev/null +++ b/gui/default/syncthing/core/savingChangesDialogView.html @@ -0,0 +1,8 @@ +<modal id="savingChanges" status="info" icon="fas fa-hourglass-half" heading="{{'Saving changes' | translate}}" large="no" closeable="no"> + <div class="modal-body"> + <p> + <span translate>Syncthing is saving changes.</span> + <span translate>Please wait</span>... + </p> + </div> +</modal> diff --git a/gui/default/syncthing/core/syncthingController.js b/gui/default/syncthing/core/syncthingController.js index 6e93b507cf..975cb46385 100755 --- a/gui/default/syncthing/core/syncthingController.js +++ b/gui/default/syncthing/core/syncthingController.js @@ -1513,13 +1513,17 @@ angular.module('syncthing.core') }; $scope.saveConfig = function () { + $('#savingChanges').modal(); var cfg = JSON.stringify($scope.config); var opts = { headers: { 'Content-Type': 'application/json' } }; - return $http.put(urlbase + '/config', cfg, opts).finally(refreshConfig).catch($scope.emitHTTPError); + return $http.put(urlbase + '/config', cfg, opts).finally(function () { + refreshConfig(); + $('#savingChanges').modal("hide"); + }).catch($scope.emitHTTPError); }; $scope.urVersions = function () { |