From fe08645a9879b4c34dc34e8a3970459ed28fffa9 Mon Sep 17 00:00:00 2001 From: grafixeyehero Date: Tue, 8 Oct 2019 01:03:49 +0300 Subject: [PATCH] taskbutton.js --- src/scripts/taskbutton.js | 99 ++++++++++++++++++++++++++++++--------- 1 file changed, 77 insertions(+), 22 deletions(-) diff --git a/src/scripts/taskbutton.js b/src/scripts/taskbutton.js index d41cf7b5c2..37e4a3c973 100644 --- a/src/scripts/taskbutton.js +++ b/src/scripts/taskbutton.js @@ -1,48 +1,103 @@ -define(["events", "userSettings", "serverNotifications", "connectionManager", "emby-button"], function(events, userSettings, serverNotifications, connectionManager) { +define(["events", "userSettings", "serverNotifications", "connectionManager", "emby-button"], function (events, userSettings, serverNotifications, connectionManager) { "use strict"; - return function(options) { + + return function (options) { function pollTasks() { connectionManager.getApiClient(serverId).getScheduledTasks({ - IsEnabled: !0 - }).then(updateTasks) + IsEnabled: true + }).then(updateTasks); } function updateTasks(tasks) { - var task = tasks.filter(function(t) { - return t.Key == options.taskKey + var task = tasks.filter(function (t) { + return t.Key == options.taskKey; })[0]; + if (options.panel && (task ? options.panel.classList.remove("hide") : options.panel.classList.add("hide")), task) { - "Idle" == task.State ? button.removeAttribute("disabled") : button.setAttribute("disabled", "disabled"), button.setAttribute("data-taskid", task.Id); + if ("Idle" == task.State) { + button.removeAttribute("disabled"); + } else { + button.setAttribute("disabled", "disabled"); + } + + button.setAttribute("data-taskid", task.Id); var progress = (task.CurrentProgressPercentage || 0).toFixed(1); + if (options.progressElem && (options.progressElem.value = progress, "Running" == task.State ? options.progressElem.classList.remove("hide") : options.progressElem.classList.add("hide")), options.lastResultElem) { var lastResult = task.LastExecutionResult ? task.LastExecutionResult.Status : ""; - "Failed" == lastResult ? options.lastResultElem.html('(' + Globalize.translate("LabelFailed") + ")") : "Cancelled" == lastResult ? options.lastResultElem.html('(' + Globalize.translate("LabelCancelled") + ")") : "Aborted" == lastResult ? options.lastResultElem.html('' + Globalize.translate("LabelAbortedByServerShutdown") + "") : options.lastResultElem.html(lastResult) + + if ("Failed" == lastResult) { + options.lastResultElem.html('(' + Globalize.translate("LabelFailed") + ")"); + } else { + if ("Cancelled" == lastResult) { + options.lastResultElem.html('(' + Globalize.translate("LabelCancelled") + ")"); + } else { + if ("Aborted" == lastResult) { + options.lastResultElem.html('' + Globalize.translate("LabelAbortedByServerShutdown") + ""); + } else { + options.lastResultElem.html(lastResult); + } + } + } } } } function onScheduledTaskMessageConfirmed(id) { - connectionManager.getApiClient(serverId).startScheduledTask(id).then(pollTasks) + connectionManager.getApiClient(serverId).startScheduledTask(id).then(pollTasks); } function onButtonClick() { - onScheduledTaskMessageConfirmed(this.getAttribute("data-taskid")) + onScheduledTaskMessageConfirmed(this.getAttribute("data-taskid")); } function onScheduledTasksUpdate(e, apiClient, info) { - apiClient.serverId() === serverId && updateTasks(info) + if (apiClient.serverId() === serverId) { + updateTasks(info); + } } function onPollIntervalFired() { - connectionManager.getApiClient(serverId).isMessageChannelOpen() || pollTasks() + if (!connectionManager.getApiClient(serverId).isMessageChannelOpen()) { + pollTasks(); + } } - var pollInterval, button = options.button, - serverId = ApiClient.serverId(); - options.panel && options.panel.classList.add("hide"), "off" == options.mode ? (button.removeEventListener("click", onButtonClick), events.off(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate), function() { - connectionManager.getApiClient(serverId).sendMessage("ScheduledTasksInfoStop"), pollInterval && clearInterval(pollInterval) - }()) : (button.addEventListener("click", onButtonClick), pollTasks(), function() { - var apiClient = connectionManager.getApiClient(serverId); - pollInterval && clearInterval(pollInterval), apiClient.sendMessage("ScheduledTasksInfoStart", "1000,1000"), pollInterval = setInterval(onPollIntervalFired, 1e4) - }(), events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate)) - } -}); \ No newline at end of file + + var pollInterval; + var button = options.button; + var serverId = ApiClient.serverId(); + + if (options.panel) { + options.panel.classList.add("hide"); + } + + if ("off" == options.mode) { + button.removeEventListener("click", onButtonClick); + events.off(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate); + + (function () { + connectionManager.getApiClient(serverId).sendMessage("ScheduledTasksInfoStop"); + + if (pollInterval) { + clearInterval(pollInterval); + } + })(); + } else { + button.addEventListener("click", onButtonClick); + pollTasks(); + + (function () { + var apiClient = connectionManager.getApiClient(serverId); + + if (pollInterval) { + clearInterval(pollInterval); + } + + apiClient.sendMessage("ScheduledTasksInfoStart", "1000,1000"); + pollInterval = setInterval(onPollIntervalFired, 1e4); + })(); + + events.on(serverNotifications, "ScheduledTasksInfo", onScheduledTasksUpdate); + } + }; +});