|
@@ -2366,11 +2366,15 @@ angular.module('syncthing.core')
|
|
+ '&device=' + encodeURIComponent(deviceID));
|
|
+ '&device=' + encodeURIComponent(deviceID));
|
|
};
|
|
};
|
|
|
|
|
|
- $scope.deviceNameMarkUnaccepted = function (deviceID, folderID) {
|
|
|
|
|
|
+ $scope.deviceNameMarkRemoteState = function (deviceID, folderID) {
|
|
var name = $scope.deviceName($scope.devices[deviceID]);
|
|
var name = $scope.deviceName($scope.devices[deviceID]);
|
|
// Add footnote if sharing was not accepted on the remote device
|
|
// Add footnote if sharing was not accepted on the remote device
|
|
- if (deviceID in $scope.completion && folderID in $scope.completion[deviceID] && $scope.completion[deviceID][folderID].remoteState == 'notSharing') {
|
|
|
|
- name += '<sup>1</sup>';
|
|
|
|
|
|
+ if (deviceID in $scope.completion && folderID in $scope.completion[deviceID]) {
|
|
|
|
+ if ($scope.completion[deviceID][folderID].remoteState == 'notSharing') {
|
|
|
|
+ name += '<sup>1</sup>';
|
|
|
|
+ } else if ($scope.completion[deviceID][folderID].remoteState == 'paused') {
|
|
|
|
+ name += '<sup>2</sup>';
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return name;
|
|
return name;
|
|
};
|
|
};
|
|
@@ -2379,7 +2383,7 @@ angular.module('syncthing.core')
|
|
var names = [];
|
|
var names = [];
|
|
folderCfg.devices.forEach(function (device) {
|
|
folderCfg.devices.forEach(function (device) {
|
|
if (device.deviceID !== $scope.myID) {
|
|
if (device.deviceID !== $scope.myID) {
|
|
- names.push($scope.deviceNameMarkUnaccepted(device.deviceID, folderCfg.id));
|
|
|
|
|
|
+ names.push($scope.deviceNameMarkRemoteState(device.deviceID, folderCfg.id));
|
|
}
|
|
}
|
|
});
|
|
});
|
|
names.sort();
|
|
names.sort();
|
|
@@ -2397,6 +2401,17 @@ angular.module('syncthing.core')
|
|
return false;
|
|
return false;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ $scope.folderHasPausedDevices = function (folderCfg) {
|
|
|
|
+ for (var deviceID in $scope.completion) {
|
|
|
|
+ if (deviceID in $scope.devices
|
|
|
|
+ && folderCfg.id in $scope.completion[deviceID]
|
|
|
|
+ && $scope.completion[deviceID][folderCfg.id].remoteState == 'paused') {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ };
|
|
|
|
+
|
|
$scope.deviceFolders = function (deviceCfg) {
|
|
$scope.deviceFolders = function (deviceCfg) {
|
|
var folders = [];
|
|
var folders = [];
|
|
$scope.folderList().forEach(function (folder) {
|
|
$scope.folderList().forEach(function (folder) {
|
|
@@ -2418,11 +2433,15 @@ angular.module('syncthing.core')
|
|
return label && label.length > 0 ? label : folderID;
|
|
return label && label.length > 0 ? label : folderID;
|
|
};
|
|
};
|
|
|
|
|
|
- $scope.folderLabelMarkUnaccepted = function (folderID, deviceID) {
|
|
|
|
|
|
+ $scope.folderLabelMarkRemoteState = function (folderID, deviceID) {
|
|
var label = $scope.folderLabel(folderID);
|
|
var label = $scope.folderLabel(folderID);
|
|
// Add footnote if sharing was not accepted on the remote device
|
|
// Add footnote if sharing was not accepted on the remote device
|
|
- if (deviceID in $scope.completion && folderID in $scope.completion[deviceID] && $scope.completion[deviceID][folderID].remoteState == 'notSharing') {
|
|
|
|
- label += '<sup>1</sup>';
|
|
|
|
|
|
+ if (deviceID in $scope.completion && folderID in $scope.completion[deviceID]) {
|
|
|
|
+ if ($scope.completion[deviceID][folderID].remoteState == 'notSharing') {
|
|
|
|
+ label += '<sup>1</sup>';
|
|
|
|
+ } else if ($scope.completion[deviceID][folderID].remoteState == 'paused') {
|
|
|
|
+ label += '<sup>2</sup>';
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return label;
|
|
return label;
|
|
};
|
|
};
|
|
@@ -2430,7 +2449,7 @@ angular.module('syncthing.core')
|
|
$scope.sharedFolders = function (deviceCfg) {
|
|
$scope.sharedFolders = function (deviceCfg) {
|
|
var labels = [];
|
|
var labels = [];
|
|
$scope.deviceFolders(deviceCfg).forEach(function (folderID) {
|
|
$scope.deviceFolders(deviceCfg).forEach(function (folderID) {
|
|
- labels.push($scope.folderLabelMarkUnaccepted(folderID, deviceCfg.deviceID));
|
|
|
|
|
|
+ labels.push($scope.folderLabelMarkRemoteState(folderID, deviceCfg.deviceID));
|
|
});
|
|
});
|
|
return labels.join(', ');
|
|
return labels.join(', ');
|
|
};
|
|
};
|
|
@@ -2448,6 +2467,19 @@ angular.module('syncthing.core')
|
|
return false;
|
|
return false;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ $scope.deviceHasPausedFolders = function (deviceCfg) {
|
|
|
|
+ if (!(deviceCfg.deviceID in $scope.completion)) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ for (var folderID in $scope.completion[deviceCfg.deviceID]) {
|
|
|
|
+ if (folderID in $scope.folders
|
|
|
|
+ && $scope.completion[deviceCfg.deviceID][folderID].remoteState == 'paused') {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ };
|
|
|
|
+
|
|
$scope.deleteFolder = function (id) {
|
|
$scope.deleteFolder = function (id) {
|
|
hideFolderModal();
|
|
hideFolderModal();
|
|
if ($scope.currentFolder._editing != "existing") {
|
|
if ($scope.currentFolder._editing != "existing") {
|