diff --git a/lib/Controller/Aria2Controller.php b/lib/Controller/Aria2Controller.php index 5bf16a1..2aef8cd 100644 --- a/lib/Controller/Aria2Controller.php +++ b/lib/Controller/Aria2Controller.php @@ -28,7 +28,6 @@ class Aria2Controller extends Controller private $rootFolder; private $downloadDir; private $urlGenerator; - public function __construct($appName, IRequest $request, $UserId, IL10N $IL10N, IRootFolder $rootFolder, Aria2 $aria2) { parent::__construct($appName, $request); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index cd04afc..91baeb6 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -43,6 +43,7 @@ class Admin implements ISettings ]; $parameters = [ 'settings' => $settings, + 'options' => Helper::getAdminOptions($settings), ]; return new TemplateResponse('ncdownloader', 'settings/Admin', $parameters, ''); } diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php index 1ff13ed..9236c19 100644 --- a/lib/Settings/Personal.php +++ b/lib/Settings/Personal.php @@ -39,6 +39,7 @@ class Personal implements ISettings */ public function getForm() { + $path = '/apps/ncdownloader/personal/save'; $parameters = [ "settings" => [ "ncd_downloader_dir" => Helper::getDownloadDir(), @@ -46,11 +47,27 @@ class Personal implements ISettings "ncd_seed_ratio" => $this->settings->get("ncd_seed_ratio"), 'ncd_seed_time_unit' => $this->settings->get("ncd_seed_time_unit"), 'ncd_seed_time' => $this->settings->get("ncd_seed_time"), - "path" => '/apps/ncdownloader/personal/save', + "path" => $path, "disallow_aria2_settings" => Helper::getAdminSettings("disallow_aria2_settings"), "is_admin" => \OC_User::isAdminUser($this->uid), "aria2_version" => Helper::getAria2Version(), "ytdl_version" => Helper::getYtdlVersion(), + ], + "options" => [ + [ + "label" => "Downloads Folder ", + "id" => "ncd_downloader_dir", + "value" => Helper::getDownloadDir(), + "placeholder" => Helper::getDownloadDir() ?? "/downloads", + "path" => $path, + ], + [ + "label" => "Torrents Folder", + "id" => "ncd_torrents_dir", + "value" => $this->settings->get("ncd_torrents_dir"), + "placeholder" => $this->settings->get("ncd_torrents_dir") ?? "/torrents", + "path" => $path, + ] ] ]; diff --git a/lib/Tools/Helper.php b/lib/Tools/Helper.php index 06fda5c..10d0b5a 100644 --- a/lib/Tools/Helper.php +++ b/lib/Tools/Helper.php @@ -550,4 +550,46 @@ class Helper $ytdl = self::query(Ytdl::class); return $ytdl->version(); } + + public static function getAdminOptions($data) + { + $options = [ + [ + "label" => "Aria2 RPC Host", + "id" => "ncd_aria2_rpc_host", + "value" => $data['ncd_aria2_rpc_host'] ?? "", + "placeholder" => $data['ncd_aria2_rpc_host'] ?? "127.0.0.1", + "path" => $data['path'], + ], + [ + "label" => "Aria2 RPC Port", + "id" => "ncd_aria2_rpc_port", + "value" => $data['ncd_aria2_rpc_port'] ?? "", + "placeholder" => $data['ncd_aria2_rpc_port'] ?? 6800, + "path" => $data['path'], + ], + [ + "label" => "Aria2 RPC Token", + "id" => "ncd_aria2_rpc_token", + "value" => $data['ncd_aria2_rpc_token'] ?? "", + "placeholder" => $data['ncd_aria2_rpc_token'] ?? "ncdownloader123", + "path" => $data['path'], + ], + [ + "label" => "Youtube-dl binary", + "id" => "ncd_yt_binary", + "value" => $data['ncd_yt_binary'] ?? "", + "placeholder" => $data['ncd_yt_binary'] ?? "/usr/bin/youtube-dl", + "path" => $data['path'], + ], + [ + "label" => "Aria2c binary", + "id" => "ncd_aria2_binary", + "value" => $data['ncd_aria2_binary'] ?? "", + "placeholder" => $data['ncd_aria2_binary'] ?? "/usr/bin/aria2c", + "path" => $data['path'], + ] + ]; + return $options; + } } diff --git a/src/adminSettings.vue b/src/adminSettings.vue index cf52dbe..f8b0bc3 100644 --- a/src/adminSettings.vue +++ b/src/adminSettings.vue @@ -1,31 +1,15 @@ @@ -95,50 +79,11 @@ export default { try { let data = this.$el.parentElement.getAttribute("data-settings"); data = JSON.parse(data); + let options = this.$el.parentElement.getAttribute("data-options"); + options = JSON.parse(options); this.settings = data; this.pStatus = helper.str2Boolean(data["disallow_aria2_settings"]); - let path = "/apps/ncdownloader/admin/save"; - this.options = [ - { - label: "Aria2 RPC Host", - id: "ncd_aria2_rpc_host", - value: data.ncd_aria2_rpc_host, - placeholder: "127.0.0.1", - path: path, - }, - { - label: "Aria2 RPC Port", - id: "ncd_aria2_rpc_port", - value: data.ncd_aria2_rpc_port, - placeholder: "6800", - path: path, - }, - { - label: "Aria2 RPC Token", - id: "ncd_aria2_rpc_token", - value: data.ncd_aria2_rpc_token, - placeholder: data.ncd_aria2_rpc_token - ? data.ncd_aria2_rpc_token - : "ncdownloader123", - path: path, - }, - { - label: "Youtube-dl binary", - id: "ncd_yt_binary", - value: data.ncd_yt_binary, - placeholder: data.ncd_yt_binary - ? data.ncd_yt_binary - : "/usr/local/bin/youtube-dl", - path: path, - }, - { - label: "Aria2c binary", - id: "ncd_aria2_binary", - value: data.ncd_aria2_binary, - placeholder: "/usr/local/bin/aria2c", - path: path, - }, - ]; + this.options = options; } catch (e) { helper.error(e); } diff --git a/src/personalSettings.vue b/src/personalSettings.vue index ec607a1..cd56780 100644 --- a/src/personalSettings.vue +++ b/src/personalSettings.vue @@ -98,27 +98,13 @@ export default { try { let data = this.$el.parentElement.getAttribute("data-settings"); data = JSON.parse(data); - let path = "/apps/ncdownloader/personal/save"; + let options = this.$el.parentElement.getAttribute("data-options"); + options = JSON.parse(options); this.disallowAria2Settings = helper.str2Boolean(data["disallow_aria2_settings"]); this.isAdmin = data["is_admin"]; this.aria2Version = data["aria2_version"]; this.ytdVersion = data["ytdl_version"]; - this.options = [ - { - label: "Downloads Folder ", - id: "ncd_downloader_dir", - value: data.ncd_downloader_dir, - placeholder: data.ncd_downloader_dir ? data.ncd_downloader_dir : "/downloads", - path: path, - }, - { - label: "Torrents Folder", - id: "ncd_torrents_dir", - value: data.ncd_torrents_dir, - placeholder: data.ncd_torrents_dir ? data.ncd_torrents_dir : "/torrents", - path: path, - }, - ]; + this.options = options } catch (e) { helper.error(e); } @@ -126,7 +112,6 @@ export default { };