support select task files
This commit is contained in:
parent
75e420622d
commit
320165515c
|
@ -102,6 +102,27 @@
|
||||||
return ariaNgSettingService.getFileListDisplayOrder();
|
return ariaNgSettingService.getFileListDisplayOrder();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.setSelectedFile = function () {
|
||||||
|
if (!$scope.task || !$scope.task.files) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var gid = $scope.task.gid;
|
||||||
|
var selectedFileIndex = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < $scope.task.files.length; i++) {
|
||||||
|
var file = $scope.task.files[i];
|
||||||
|
|
||||||
|
if (file && file.selected) {
|
||||||
|
selectedFileIndex.push(file.index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return aria2TaskService.selectTaskFile(gid, selectedFileIndex, function () {
|
||||||
|
refreshDownloadTask(false);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
$scope.loadTaskOption = function (task) {
|
$scope.loadTaskOption = function (task) {
|
||||||
$rootScope.loadPromise = aria2TaskService.getTaskOptions(task.gid, function (result) {
|
$rootScope.loadPromise = aria2TaskService.getTaskOptions(task.gid, function (result) {
|
||||||
$scope.options = result;
|
$scope.options = result;
|
||||||
|
|
|
@ -70,6 +70,7 @@
|
||||||
var file = task.files[i];
|
var file = task.files[i];
|
||||||
file.fileName = getFileNameFromPath(file.path);
|
file.fileName = getFileNameFromPath(file.path);
|
||||||
file.length = parseInt(file.length);
|
file.length = parseInt(file.length);
|
||||||
|
file.selected = (file.selected == 'true');
|
||||||
file.completedLength = parseInt(file.completedLength);
|
file.completedLength = parseInt(file.completedLength);
|
||||||
file.completePercent = (file.length > 0 ? file.completedLength / file.length * 100 : 0);
|
file.completePercent = (file.length > 0 ? file.completedLength / file.length * 100 : 0);
|
||||||
}
|
}
|
||||||
|
@ -150,6 +151,19 @@
|
||||||
callback: callback
|
callback: callback
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
selectTaskFile: function (gid, selectedFileIndexArr, callback) {
|
||||||
|
var selectedFileIndex = '';
|
||||||
|
|
||||||
|
for (var i = 0; i < selectedFileIndexArr.length; i++) {
|
||||||
|
if (selectedFileIndex.length > 0) {
|
||||||
|
selectedFileIndex += ',';
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedFileIndex += selectedFileIndexArr[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.setTaskOption(gid, 'select-file', selectedFileIndex, callback);
|
||||||
|
},
|
||||||
getBtTaskPeers: function (gid, callback, silent) {
|
getBtTaskPeers: function (gid, callback, silent) {
|
||||||
return aria2RpcService.getPeers({
|
return aria2RpcService.getPeers({
|
||||||
gid: gid,
|
gid: gid,
|
||||||
|
@ -185,7 +199,7 @@
|
||||||
removeTasks: function (tasks, callback) {
|
removeTasks: function (tasks, callback) {
|
||||||
var runningTaskGids = [];
|
var runningTaskGids = [];
|
||||||
var stoppedTaskGids = [];
|
var stoppedTaskGids = [];
|
||||||
|
|
||||||
for (var i = 0; i < tasks.length; i++) {
|
for (var i = 0; i < tasks.length; i++) {
|
||||||
if (tasks[i].status == 'complete' || tasks[i].status == 'error' || tasks[i].status == 'removed') {
|
if (tasks[i].status == 'complete' || tasks[i].status == 'error' || tasks[i].status == 'removed') {
|
||||||
stoppedTaskGids.push(tasks[i].gid);
|
stoppedTaskGids.push(tasks[i].gid);
|
||||||
|
@ -193,13 +207,13 @@
|
||||||
runningTaskGids.push(tasks[i].gid);
|
runningTaskGids.push(tasks[i].gid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var promises = [];
|
var promises = [];
|
||||||
var results = {
|
var results = {
|
||||||
runningResult: null,
|
runningResult: null,
|
||||||
stoppedResult: null
|
stoppedResult: null
|
||||||
};
|
};
|
||||||
|
|
||||||
if (runningTaskGids.length > 0) {
|
if (runningTaskGids.length > 0) {
|
||||||
promises.push(aria2RpcService.forceRemoveMulti({
|
promises.push(aria2RpcService.forceRemoveMulti({
|
||||||
gids: runningTaskGids,
|
gids: runningTaskGids,
|
||||||
|
@ -208,7 +222,7 @@
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stoppedTaskGids.length > 0) {
|
if (stoppedTaskGids.length > 0) {
|
||||||
promises.push(aria2RpcService.removeDownloadResultMulti({
|
promises.push(aria2RpcService.removeDownloadResultMulti({
|
||||||
gids: stoppedTaskGids,
|
gids: stoppedTaskGids,
|
||||||
|
|
|
@ -136,11 +136,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="task-table-body">
|
<div class="task-table-body">
|
||||||
<div class="row" ng-repeat="file in task.files | fileOrderBy: getFileListOrderType()">
|
<div class="row" ng-repeat="file in task.files | fileOrderBy: getFileListOrderType()" data-file-index="{{file.index}}">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<div class="checkbox checkbox-primary">
|
<div class="checkbox checkbox-primary">
|
||||||
<input id="{{'file_' + $index}}" type="checkbox" ng-checked="file.selected == 'true'" disabled="disabled"/>
|
<input id="{{'file_' + file.index}}" type="checkbox" ng-disabled="!task || !task.files || task.files.length < 2 || (task.status != 'waiting' && task.status != 'paused')"
|
||||||
<label for="{{'file_' + $index}}" ng-bind="file.fileName"></label>
|
ng-model="file.selected" ng-change="setSelectedFile()"/>
|
||||||
|
<label for="{{'file_' + file.index}}" ng-bind="file.fileName"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
|
|
Reference in a new issue