소스 검색

Merge pull request #255 from KayoticSully/master

Resolves Issue #239
Jakob Borg 11 년 전
부모
커밋
b3ca96eeba
4개의 변경된 파일21개의 추가작업 그리고 7개의 파일을 삭제
  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*

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 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>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.