Audrius Butkevicius пре 11 година
родитељ
комит
b084b4faaf
5 измењених фајлова са 76 додато и 0 уклоњено
  1. 0 0
      auto/gui.files.go
  2. 1 0
      cmd/syncthing/gui.go
  3. 36 0
      gui/app.js
  4. 29 0
      gui/index.html
  5. 10 0
      gui/lang/lang-en.json

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
auto/gui.files.go


+ 1 - 0
cmd/syncthing/gui.go

@@ -479,6 +479,7 @@ func restPostIgnores(m *model.Model, w http.ResponseWriter, r *http.Request) {
 	var data map[string][]string
 	err := json.NewDecoder(r.Body).Decode(&data)
 	r.Body.Close()
+
 	if err != nil {
 		http.Error(w, err.Error(), 500)
 		return

+ 36 - 0
gui/app.js

@@ -888,6 +888,42 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
         $scope.saveConfig();
     };
 
+    $scope.editIgnores = function () {
+        if (!$scope.editingExisting) {
+            return;
+        }
+
+        $('#editIgnoresButton').attr('disabled', 'disabled');
+        $http.get(urlbase + '/ignores?repo=' + encodeURIComponent($scope.currentRepo.ID))
+            .success(function (data) {
+                $('#editRepo').modal('hide');
+                var textArea = $('#editIgnores textarea');
+
+                textArea.val(data.ignore.join('\n'));
+
+                $('#editIgnores').modal()
+                    .on('hidden.bs.modal', function () {
+                        $('#editRepo').modal();
+                    })
+                    .on('shown.bs.modal', function () {
+                        textArea.focus();
+                    });
+            })
+            .then(function () {
+                $('#editIgnoresButton').removeAttr('disabled');
+            });
+    };
+
+    $scope.saveIgnores = function () {
+        if (!$scope.editingExisting) {
+            return;
+        }
+
+        $http.post(urlbase + '/ignores?repo=' + encodeURIComponent($scope.currentRepo.ID), {
+            ignore: $('#editIgnores textarea').val().split('\n')
+        });
+    };
+
     $scope.setAPIKey = function (cfg) {
         cfg.APIKey = randomString(30, 32);
     };

+ 29 - 0
gui/index.html

@@ -522,6 +522,35 @@
           <button type="button" class="btn btn-primary btn-sm" ng-click="saveRepo()" ng-disabled="repoEditor.$invalid"><span class="glyphicon glyphicon-ok"></span>&emsp;<span translate>Save</span></button>
           <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span>&emsp;<span translate>Close</span></button>
           <button ng-if="editingExisting" type="button" class="btn btn-danger pull-left btn-sm" ng-click="deleteRepo()"><span class="glyphicon glyphicon-minus"></span>&emsp;<span translate>Delete</span></button>
+          <button id="editIgnoresButton" ng-if="editingExisting" type="button" class="btn btn-default pull-left btn-sm" ng-click="editIgnores()"><span class="glyphicon glyphicon-pencil"></span>&emsp;<span translate>Edit ignored files and directories</span></button>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <!-- Ignores editor modal -->
+
+  <div id="editIgnores" class="modal fade" tabindex="-1">
+    <div class="modal-dialog modal-lg">
+      <div class="modal-content">
+        <div class="modal-header">
+          <h4 translate class="modal-title">Ignored files and directories</h4>
+        </div>
+        <div class="modal-body">
+          <p translate>Supported patterns:</p>
+          <ul>
+            <li><code>*</code> - <span translate>Single-level wildcard (matches anything within a single directory)</span>
+            <li><code>**</code> - <span translate>Multi-level wildcard (matches anything within all directories at any depth)</span>
+            <li><code>!</code> - <span translate>Inversion of the given condition, which excludes the given pattern from any previous matches</span>
+            <li><code>#include</code> - <span translate>Including ignores from another file</span>
+            <li><code>//</code> - <span translate>Comment</span>
+          </ul>
+          <textarea class="form-control" rows="15"></textarea>
+        </div>
+        <div class="modal-footer">
+          <div class="pull-left"><span translate >Ignore file location</span>:<code>{{ currentRepo.Directory }}/.stignore</code></div>
+          <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal" ng-click="saveIgnores()"><span class="glyphicon glyphicon-ok"></span>&emsp;<span translate>Save</span></button>
+          <button type="button" class="btn btn-default btn-sm" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span>&emsp;<span translate>Close</span></button>
         </div>
       </div>
     </div>

+ 10 - 0
gui/lang/lang-en.json

@@ -11,6 +11,7 @@
    "Bugs": "Bugs",
    "CPU Utilization": "CPU Utilization",
    "Close": "Close",
+   "Comment": "Comment",
    "Connection Error": "Connection Error",
    "Copyright © 2014 Jakob Borg and the following Contributors:": "Copyright © 2014 Jakob Borg and the following Contributors:",
    "Delete": "Delete",
@@ -20,6 +21,7 @@
    "Edit": "Edit",
    "Edit Node": "Edit Node",
    "Edit Repository": "Edit Repository",
+   "Edit ignored files and directories": "Edit ignored files and directories",
    "Enable UPnP": "Enable UPnP",
    "Enter comma separated \"ip:port\" addresses or \"dynamic\" to perform automatic discovery of the address.": "Enter comma separated \"ip:port\" addresses or \"dynamic\" to perform automatic discovery of the address.",
    "Error": "Error",
@@ -37,7 +39,11 @@
    "Global Repository": "Global Repository",
    "Idle": "Idle",
    "Ignore Permissions": "Ignore Permissions",
+   "Ignore file location": "Ignore file location",
+   "Ignored files and directories": "Ignored files and directories",
+   "Including ignores from another file": "Including ignores from another file",
    "Incoming Rate Limit (KiB/s)": "Incoming Rate Limit (KiB/s)",
+   "Inversion of the given condition, which excludes the given pattern from any previous matches": "Inversion of the given condition, which excludes the given pattern from any previous matches",
    "Keep Versions": "Keep Versions",
    "Last seen": "Last seen",
    "Latest Release": "Latest Release",
@@ -48,6 +54,7 @@
    "Max File Change Rate (KiB/s)": "Max File Change Rate (KiB/s)",
    "Max Outstanding Requests": "Max Outstanding Requests",
    "Maximum Age": "Maximum Age",
+   "Multi-level wildcard (matches anything within all directories at any depth)": "Multi-level wildcard (matches anything within all directories at any depth)",
    "Never": "Never",
    "No": "No",
    "No File Versioning": "No File Versioning",
@@ -90,11 +97,13 @@
    "Shown instead of Node ID in the cluster status. Will be updated to the name the node advertises if left empty.": "Shown instead of Node ID in the cluster status. Will be updated to the name the node advertises if left empty.",
    "Shutdown": "Shutdown",
    "Simple File Versioning": "Simple File Versioning",
+   "Single-level wildcard (matches anything within a single directory)": "Single-level wildcard (matches anything within a single directory)",
    "Source Code": "Source Code",
    "Staggered File Versioning": "Staggered File Versioning",
    "Start Browser": "Start Browser",
    "Stopped": "Stopped",
    "Support / Forum": "Support / Forum",
+   "Supported patterns:": "Supported patterns:",
    "Sync Protocol Listen Addresses": "Sync Protocol Listen Addresses",
    "Synchronization": "Synchronization",
    "Syncing": "Syncing",
@@ -116,6 +125,7 @@
    "The number of old versions to keep, per file.": "The number of old versions to keep, per file.",
    "The number of versions must be a number and cannot be blank.": "The number of versions must be a number and cannot be blank.",
    "The repository ID cannot be blank.": "The repository ID cannot be blank.",
+   "The repository ID must be a short identifier (64 characters or less) consisting of letters, numbers and the dot (.), dash (-) and underscode (_) characters only.": "The repository ID must be a short identifier (64 characters or less) consisting of letters, numbers and the dot (.), dash (-) and underscode (_) characters only.",
    "The repository ID must be a short identifier (64 characters or less) consisting of letters, numbers and the the dot (.), dash (-) and underscode (_) characters only.": "The repository ID must be a short identifier (64 characters or less) consisting of letters, numbers and the the dot (.), dash (-) and underscode (_) characters only.",
    "The repository ID must be unique.": "The repository ID must be unique.",
    "The repository path cannot be blank.": "The repository path cannot be blank.",

Неке датотеке нису приказане због велике количине промена