diff --git a/appinfo/routes.php b/appinfo/routes.php index c6a5ec2..aa334e8 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -4,6 +4,7 @@ return [ 'routes' => [ ['name' => 'Main#Index', 'url' => '/', 'verb' => 'GET'], ['name' => 'Main#Upload', 'url' => '/upload', 'verb' => 'POST'], + ['name' => 'Main#getCounters', 'url' => '/counters', 'verb' => 'GET'], ['name' => 'main#Download', 'url' => '/new', 'verb' => 'POST'], ['name' => 'Aria2#Action', 'url' => '/aria2/{path}', 'verb' => 'POST'], ['name' => 'Aria2#getStatus', 'url' => '/status/{path}', 'verb' => 'POST'], diff --git a/lib/Controller/MainController.php b/lib/Controller/MainController.php index 066926c..b4dc240 100644 --- a/lib/Controller/MainController.php +++ b/lib/Controller/MainController.php @@ -5,17 +5,17 @@ namespace OCA\NCDownloader\Controller; use OCA\NCDownloader\Tools\Aria2; use OCA\NCDownloader\Tools\Counters; use OCA\NCDownloader\Tools\DbHelper; +use OCA\NCDownloader\Tools\folderScan; use OCA\NCDownloader\Tools\Helper; use OCA\NCDownloader\Tools\Settings; use OCA\NCDownloader\Tools\Youtube; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\TemplateResponse; -use OCP\IL10N; //use OCP\Files\IRootFolder; +use OCP\IL10N; use OCP\IRequest; use OC_Util; -use OCA\NCDownloader\Tools\folderScan; class MainController extends Controller { @@ -196,7 +196,7 @@ class MainController extends Controller return new JSONResponse($resp); } - /** + /** * @NoAdminRequired * @NoCSRFRequired */ @@ -205,5 +205,14 @@ class MainController extends Controller $resp = folderScan::create()->scan(); return new JSONResponse($resp); } + /** + * @NoAdminRequired + * @NoCSRFRequired + */ + public function getCounters(): JSONResponse + { + $counter = $this->counters->getCounters(); + return new JSONResponse(['counter' => $counter]); + } } diff --git a/src/actions/buttonActions.js b/src/actions/buttonActions.js index fd9c50b..3a34812 100644 --- a/src/actions/buttonActions.js +++ b/src/actions/buttonActions.js @@ -11,6 +11,9 @@ const buttonHandler = (event, type) => { let url = element.getAttribute("path"); let row, data = {}; let removeRow = true; + if (element.getAttribute("id") == "download-action-button"){ + helper.getCounters(); + } if (row = element.closest('.table-row-search')) { if (element.className == 'icon-clipboard') { const clippy = new Clipboard(element, row.dataset.link); diff --git a/src/lib/contentTable.ts b/src/lib/contentTable.ts index 95f1594..c33b476 100644 --- a/src/lib/contentTable.ts +++ b/src/lib/contentTable.ts @@ -51,7 +51,7 @@ class contentTable { div.appendChild(document.createTextNode(helper.t('No items'))); this.table.appendChild(div); } - createHeading(prefix = "table-heading"):HTMLElement { + createHeading(prefix = "table-heading"): HTMLElement { let thead = document.createElement("section"); thead.classList.add(this.headingClass); let headRow = document.createElement("header"); @@ -134,16 +134,17 @@ class contentTable { } - createActionButton(name: string, path: string, data: string):HTMLElement { + createActionButton(name: string, path: string, data: string): HTMLElement { let button = document.createElement("button"); button.classList.add("icon-" + name); button.setAttribute("path", path); - button.setAttribute("data", data); + button.setAttribute("data", data || "nodata"); if (name == 'refresh') { name = helper.t('Redownload'); } button.setAttribute("data-tippy-content", helper.ucfirst(name)); button.setAttribute("title", helper.ucfirst(name)); + button.setAttribute("id", name + "-action-button"); return button; } diff --git a/src/utils/helper.js b/src/utils/helper.js index 2f06596..c73b888 100644 --- a/src/utils/helper.js +++ b/src/utils/helper.js @@ -139,6 +139,13 @@ const helper = { counter.innerHTML = '