all: Add receive only folder type (#5027)
Adds a receive only folder type that does not send changes, and where the user can optionally revert local changes. Also changes some of the icons to make the three folder types distinguishable.
This commit is contained in:
@@ -301,7 +301,9 @@
|
||||
<div class="panel-progress" ng-show="folderStatus(folder) == 'scanning' && scanProgress[folder.id] != undefined" ng-attr-style="width: {{scanPercentage(folder.id) | percent}}"></div>
|
||||
<h4 class="panel-title">
|
||||
<div class="panel-icon hidden-xs">
|
||||
<span ng-class="[folder.type == 'sendonly' ? 'fas fa-fw fa-lock' : 'fas fa-fw fa-folder']"></span>
|
||||
<span ng-if="folder.type == 'sendreceive'" class="fas fa-fw fa-folder"></span>
|
||||
<span ng-if="folder.type == 'sendonly'" class="fas fa-fw fa-upload"></span>
|
||||
<span ng-if="folder.type == 'receiveonly'" class="fas fa-fw fa-download"></span>
|
||||
</div>
|
||||
<div class="panel-status pull-right text-{{folderClass(folder)}}" ng-switch="folderStatus(folder)">
|
||||
<span ng-switch-when="paused"><span class="hidden-xs" translate>Paused</span><span class="visible-xs">◼</span></span>
|
||||
@@ -386,9 +388,10 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="folder.type != 'sendreceive'">
|
||||
<th><span class="fas fa-fw fa-lock"></span> <span translate>Folder Type</span></th>
|
||||
<th><span class="fas fa-fw fa-folder"></span> <span translate>Folder Type</span></th>
|
||||
<td class="text-right">
|
||||
<span ng-if="folder.type == 'sendonly'" translate>Send Only</span>
|
||||
<span ng-if="folder.type == 'receiveonly'" translate>Receive Only</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-if="folder.ignorePerms">
|
||||
@@ -478,6 +481,9 @@
|
||||
<button type="button" class="btn btn-sm btn-danger pull-left" ng-click="override(folder.id)" ng-if="folderStatus(folder) == 'outofsync' && folder.type == 'sendonly'">
|
||||
<span class="fas fa-arrow-circle-up"></span> <span translate>Override Changes</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-sm btn-danger pull-left" ng-click="revert(folder.id)" ng-if="canRevert(folder.id)">
|
||||
<span class="fa fa-arrow-circle-down"></span> <span translate>Revert Local Changes</span>
|
||||
</button>
|
||||
<span class="pull-right">
|
||||
<button ng-if="!folder.paused" type="button" class="btn btn-sm btn-default" ng-click="setFolderPause(folder.id, true)">
|
||||
<span class="fas fa-pause"></span> <span translate>Pause</span>
|
||||
|
||||
@@ -2102,6 +2102,22 @@ angular.module('syncthing.core')
|
||||
$http.post(urlbase + "/db/override?folder=" + encodeURIComponent(folder));
|
||||
};
|
||||
|
||||
$scope.revert = function (folder) {
|
||||
$http.post(urlbase + "/db/revert?folder=" + encodeURIComponent(folder));
|
||||
};
|
||||
|
||||
$scope.canRevert = function (folder) {
|
||||
var f = $scope.model[folder];
|
||||
if (!f) {
|
||||
return false;
|
||||
}
|
||||
return f.receiveOnlyChangedBytes > 0 ||
|
||||
f.receiveOnlyChangedDeletes > 0 ||
|
||||
f.receiveOnlyChangedDirectories > 0 ||
|
||||
f.receiveOnlyChangedFiles > 0 ||
|
||||
f.receiveOnlyChangedSymlinks > 0;
|
||||
};
|
||||
|
||||
$scope.advanced = function () {
|
||||
$scope.advancedConfig = angular.copy($scope.config);
|
||||
$('#advanced').modal('show');
|
||||
|
||||
@@ -162,8 +162,10 @@
|
||||
<select class="form-control" ng-model="currentFolder.type">
|
||||
<option value="sendreceive" translate>Send & Receive</option>
|
||||
<option value="sendonly" translate>Send Only</option>
|
||||
<option value="receiveonly" translate>Receive Only</option>
|
||||
</select>
|
||||
<p ng-if="currentFolder.type == 'sendonly'" translate class="help-block">Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster.</p>
|
||||
<p ng-if="currentFolder.type == 'receiveonly'" translate class="help-block">Files are synchronized from the cluster, but any changes made locally will not be sent to other devices.</p>
|
||||
</div>
|
||||
<div class="col-md-6 form-group">
|
||||
<label translate>File Pull Order</label>
|
||||
|
||||
Reference in New Issue
Block a user