Browse Source

gui: Preserve folder-device info on folder edit (fixes #6706) (#6707)

Simon Frei 5 years ago
parent
commit
79bf1f1056
1 changed files with 10 additions and 2 deletions
  1. 10 2
      gui/default/syncthing/core/syncthingController.js

+ 10 - 2
gui/default/syncthing/core/syncthingController.js

@@ -59,6 +59,7 @@ angular.module('syncthing.core')
         } catch (exception) { }
 
         $scope.folderDefaults = {
+            devices: [],
             sharedDevices: {},
             selectedDevices: {},
             unrelatedDevices: {},
@@ -1833,15 +1834,22 @@ angular.module('syncthing.core')
         $scope.saveFolder = function () {
             $('#editFolder').modal('hide');
             var folderCfg = angular.copy($scope.currentFolder);
-            folderCfg.devices = [];
             folderCfg.selectedDevices[$scope.myID] = true;
+            var newDevices = [];
+            folderCfg.devices.forEach(function (dev) {
+                if (folderCfg.selectedDevices[dev.deviceID] === true) {
+                    newDevices.push(dev);
+                    delete folderCfg.selectedDevices[dev.deviceID];
+                };
+            });
             for (var deviceID in folderCfg.selectedDevices) {
                 if (folderCfg.selectedDevices[deviceID] === true) {
-                    folderCfg.devices.push({
+                    newDevices.push({
                         deviceID: deviceID
                     });
                 }
             }
+            folderCfg.devices = newDevices;
             delete folderCfg.sharedDevices;
             delete folderCfg.selectedDevices;
             delete folderCfg.unrelatedDevices;