Browse Source

Merge pull request #255 from KayoticSully/master

Resolves Issue #239
Jakob Borg 11 năm trước cách đây
mục cha
commit
b3ca96eeba
4 tập tin đã thay đổi với 21 bổ sung7 xóa
  1. 2 0
      .gitignore
  2. 0 0
      auto/gui.files.go
  3. 15 3
      gui/app.js
  4. 4 4
      gui/index.html

+ 2 - 0
.gitignore

@@ -5,3 +5,5 @@ stcli.exe
 *.tar.gz
 *.zip
 *.asc
+Godeps/
+*.sublime*

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
auto/gui.files.go


+ 15 - 3
gui/app.js

@@ -254,13 +254,25 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) {
     };
 
     $scope.editSettings = function () {
+        // Make a working copy
+        $scope.config.workingOptions = angular.copy($scope.config.Options);
+        $scope.config.workingGUI = angular.copy($scope.config.GUI);
         $('#settings').modal({backdrop: 'static', keyboard: true});
     }
 
     $scope.saveSettings = function () {
-        $scope.configInSync = false;
-        $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); });
-        $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}});
+        // Make sure something changed
+        var changed = ! angular.equals($scope.config.Options, $scope.config.workingOptions) ||
+                      ! angular.equals($scope.config.GUI, $scope.config.workingGUI);
+        if(changed){
+            $scope.config.Options = angular.copy($scope.config.workingOptions);
+            $scope.config.GUI = angular.copy($scope.config.workingGUI);
+
+            $scope.configInSync = false;
+            $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); });
+            $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}});
+        }
+        
         $('#settings').modal("hide");
     };
 

+ 4 - 4
gui/index.html

@@ -515,11 +515,11 @@
                 <div class="form-group" ng-repeat="setting in settings">
                   <div ng-if="setting.type == 'text' || setting.type == 'number'">
                     <label for="{{setting.id}}">{{setting.descr}}</label>
-                    <input id="{{setting.id}}" class="form-control" type="{{setting.type}}" ng-model="config.Options[setting.id]"></input>
+                    <input id="{{setting.id}}" class="form-control" type="{{setting.type}}" ng-model="config.workingOptions[setting.id]"></input>
                   </div>
                   <div class="checkbox" ng-if="setting.type == 'bool'">
                     <label>
-                      {{setting.descr}} <input id="{{setting.id}}" type="checkbox" ng-model="config.Options[setting.id]"></input>
+                      {{setting.descr}} <input id="{{setting.id}}" type="checkbox" ng-model="config.workingOptions[setting.id]"></input>
                     </label>
                   </div>
                 </div>
@@ -528,11 +528,11 @@
                 <div class="form-group" ng-repeat="setting in guiSettings">
                   <div ng-if="setting.type == 'text' || setting.type == 'number' || setting.type == 'password'">
                     <label for="{{setting.id}}">{{setting.descr}}</label>
-                    <input id="{{setting.id}}" class="form-control" type="{{setting.type}}" ng-model="config.GUI[setting.id]"></input>
+                    <input id="{{setting.id}}" class="form-control" type="{{setting.type}}" ng-model="config.workingGUI[setting.id]"></input>
                   </div>
                   <div class="checkbox" ng-if="setting.type == 'bool'">
                     <label>
-                      {{setting.descr}} <input id="{{setting.id}}" type="checkbox" ng-model="config.GUI[setting.id]"></input>
+                      {{setting.descr}} <input id="{{setting.id}}" type="checkbox" ng-model="config.workingGUI[setting.id]"></input>
                     </label>
                   </div>
                 </div>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác