From 2ef2aa3cf5bd59bbbbe6c6ba642625b45423e9e4 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 9 Dec 2017 22:05:15 +0800 Subject: [PATCH] adding task via command api supports settings options --- src/scripts/controllers/command.js | 22 +++++++++++++++++---- src/scripts/services/aria2SettingService.js | 5 +++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/scripts/controllers/command.js b/src/scripts/controllers/command.js index 420a2a9..4fd898f 100644 --- a/src/scripts/controllers/command.js +++ b/src/scripts/controllers/command.js @@ -1,10 +1,10 @@ (function () { 'use strict'; - angular.module('ariaNg').controller('CommandController', ['$rootScope', '$window', '$location', '$routeParams', 'base64', 'ariaNgDefaultOptions', 'ariaNgCommonService', 'ariaNgSettingService', 'aria2TaskService', 'ariaNgLogService', function ($rootScope, $window, $location, $routeParams, base64, ariaNgDefaultOptions, ariaNgCommonService, ariaNgSettingService, aria2TaskService, ariaNgLogService) { + angular.module('ariaNg').controller('CommandController', ['$rootScope', '$window', '$location', '$routeParams', 'base64', 'ariaNgDefaultOptions', 'ariaNgCommonService', 'ariaNgSettingService', 'aria2SettingService', 'aria2TaskService', 'ariaNgLogService', function ($rootScope, $window, $location, $routeParams, base64, ariaNgDefaultOptions, ariaNgCommonService, ariaNgSettingService, aria2SettingService, aria2TaskService, ariaNgLogService) { var path = $location.path(); - var doNewTaskCommand = function (url) { + var doNewTaskCommand = function (url, params) { try { url = base64.urldecode(url); } catch (ex) { @@ -12,9 +12,23 @@ return false; } + var options = {}; + + if (params) { + for (var key in params) { + if (!params.hasOwnProperty(key)) { + continue; + } + + if (aria2SettingService.isOptionKeyValid(key)) { + options[key] = params[key]; + } + } + } + $rootScope.loadPromise = aria2TaskService.newUriTask({ urls: [url], - options: {} + options: options }, false, function (response) { if (!response.success) { return false; @@ -81,7 +95,7 @@ var doCommand = function (path, params) { if (path.indexOf('/new') === 0) { - return doNewTaskCommand(params.url); + return doNewTaskCommand(params.url, params); } else if (path.indexOf('/settings/rpc/set') === 0) { return doSetRpcCommand(params.protocol, params.host, params.port, params.interface, params.secret); } else { diff --git a/src/scripts/services/aria2SettingService.js b/src/scripts/services/aria2SettingService.js index 20cefe3..dff1ba2 100644 --- a/src/scripts/services/aria2SettingService.js +++ b/src/scripts/services/aria2SettingService.js @@ -17,6 +17,11 @@ }; return { + isOptionKeyValid: function (key) { + var option = aria2AllOptions[key]; + + return !!option; + }, getAvailableGlobalOptionsKeys: function (type) { if (type === 'basic') { return aria2GlobalAvailableOptions.basicOptions;