diff --git a/src/scripts/controllers/main.js b/src/scripts/controllers/main.js index 5c536a0d..58b40c2c 100644 --- a/src/scripts/controllers/main.js +++ b/src/scripts/controllers/main.js @@ -138,7 +138,18 @@ }; $scope.changeTasksState = function (state) { - var gids = $rootScope.taskContext.getSelectedTaskIds(); + var tasks = $rootScope.taskContext.getSelectedTasks(); + var gids = []; + + var task = null; + for (let index = 0; index < tasks.length; index++) { + task = tasks[index]; + if (state == 'start' && task.status != 'active' && task.status != 'waiting') { + gids.push(task.gid) + }else if (state == 'pause' && task.status != 'paused'){ + gids.push(task.gid); + } + } if (!gids || gids.length < 1) { return; diff --git a/src/scripts/services/aria2RpcService.js b/src/scripts/services/aria2RpcService.js index 960b40c2..f5333e24 100644 --- a/src/scripts/services/aria2RpcService.js +++ b/src/scripts/services/aria2RpcService.js @@ -338,12 +338,11 @@ for (var i = 0; i < context.gids.length; i++) { contexts.push({ - silent: !!context.silent, - gid: context.gids[i] + 'methodName': 'aria2.forceRemove', 'params': [context.gids[i]] }); } - return invokeMulti(this.forceRemove, contexts, context.callback); + return this.multicall({'methods': contexts}); }, pause: function (context, returnContextOnly) { return invoke(buildRequestContext('pause', context, context.gid), !!returnContextOnly); @@ -359,12 +358,11 @@ for (var i = 0; i < context.gids.length; i++) { contexts.push({ - silent: !!context.silent, - gid: context.gids[i] + 'methodName': 'aria2.forcePause', 'params': [context.gids[i]] }); } - return invokeMulti(this.forcePause, contexts, context.callback); + return this.multicall({'methods': contexts}); }, forcePauseAll: function (context, returnContextOnly) { return invoke(buildRequestContext('forcePauseAll', context), !!returnContextOnly); @@ -377,12 +375,11 @@ for (var i = 0; i < context.gids.length; i++) { contexts.push({ - silent: !!context.silent, - gid: context.gids[i] + 'methodName': 'aria2.unpause', 'params': [context.gids[i]] }); } - return invokeMulti(this.unpause, contexts, context.callback); + return this.multicall({'methods': contexts}); }, unpauseAll: function (context, returnContextOnly) { return invoke(buildRequestContext('unpauseAll', context), !!returnContextOnly); @@ -455,12 +452,11 @@ for (var i = 0; i < context.gids.length; i++) { contexts.push({ - silent: !!context.silent, - gid: context.gids[i] + 'methodName': 'aria2.removeDownloadResult', 'params': [context.gids[i]] }); } - return invokeMulti(this.removeDownloadResult, contexts, context.callback); + return this.multicall({'methods': contexts}); }, getVersion: function (context, returnContextOnly) { return invoke(buildRequestContext('getVersion', context), !!returnContextOnly);