diff --git a/src/actions/updatePage.js b/src/actions/updatePage.js index 21d0c30..eda88fc 100644 --- a/src/actions/updatePage.js +++ b/src/actions/updatePage.js @@ -1,38 +1,32 @@ import helper from '../utils/helper' import eventHandler from '../lib/eventHandler'; -const basePath = "/apps/ncdownloader/status/"; -const tableContainer = ".table"; export default { run: function () { - const clickHandler = (event, type) => { + const clickHandler = (event) => { + event.stopPropagation(); event.preventDefault(); + let element = event.target; helper.hideDownload(); - let container = document.querySelector(tableContainer); - let currentType = container.getAttribute("type"); - let path = basePath + type; - let name = type + "-downloads"; + let currentType = helper.getContentTableType(); + let path = element.getAttribute("path"); + let name = element.getAttribute("id"); //avoid repeated click if (currentType === name && helper.isPolling()) { return; } - container.setAttribute("type", name); - container.className = "table " + name; + helper.setContentTableType(name); let delay; - if (!['active', 'youtube-dl'].includes(type)) { + if (!['active-downloads', 'youtube-dl-downloads'].includes(name)) { delay = 15000; } - if (type === "youtube-dl") { + if (name === "youtube-dl-downloads") { helper.pollingYoutube(); } else { helper.polling(delay, path); } }; - eventHandler.add("click", ".waiting-downloads a", event => clickHandler(event, 'waiting')); - eventHandler.add("click", ".complete-downloads a", event => clickHandler(event, 'complete')); - eventHandler.add("click", ".active-downloads a", event => clickHandler(event, 'active')); - eventHandler.add("click", ".fail-downloads a", event => clickHandler(event, 'fail')); - eventHandler.add("click", ".youtube-dl-downloads a", event => clickHandler(event, 'youtube-dl')); + eventHandler.add("click", ".download-queue a", event => clickHandler(event)); eventHandler.add("click", "#ncdownloader-table-wrapper", ".download-file-folder", function (event) { event.stopPropagation(); event.preventDefault(); diff --git a/src/utils/helper.js b/src/utils/helper.js index 5361490..f343a21 100644 --- a/src/utils/helper.js +++ b/src/utils/helper.js @@ -267,6 +267,15 @@ const helper = { }, redirect(url) { window.location.href = url; + }, + getContentTableType() { + let container = document.getElementById("ncdownloader-table-wrapper"); + return container.getAttribute("type"); + }, + setContentTableType(name) { + let container = document.getElementById("ncdownloader-table-wrapper"); + container.setAttribute("type", name); + container.className = "table " + name; } } diff --git a/templates/Navigation.php b/templates/Navigation.php index 643b931..e23ef4d 100644 --- a/templates/Navigation.php +++ b/templates/Navigation.php @@ -1,5 +1,12 @@ "active", "label" => "Active Downloads", "id" => "active-downloads", "path" => "/apps/ncdownloader/status/active"], + ["name" => "waiting", "label" => "Waiting Downloads", "id" => "waiting-downloads", "path" => "/apps/ncdownloader/status/waiting"], + ["name" => "fail", "label" => "Failed Downloads", "id" => "failed-downloads", "path" => "/apps/ncdownloader/status/fail"], + ["name" => "complete", "label" => "Complete Downloads", "id" => "complete-downloads", "path" => "/apps/ncdownloader/status/complete"], + ["name" => "youtube-dl", "label" => "Youtube-dl Downloads", "id" => "youtube-dl-downloads", "path" => "/apps/ncdownloader/youtube/get"], +]; ?>