var ScheduledTasksPage = { onPageShow: function () { Dashboard.showLoadingMsg(); ScheduledTasksPage.reloadList(true); $(document).on("websocketmessage", ScheduledTasksPage.onWebSocketMessage).on("websocketopen", ScheduledTasksPage.onWebSocketConnectionChange).on("websocketerror", ScheduledTasksPage.onWebSocketConnectionChange).on("websocketclose", ScheduledTasksPage.onWebSocketConnectionChange); }, onPageHide: function () { $(document).off("websocketmessage", ScheduledTasksPage.onWebSocketMessage).off("websocketopen", ScheduledTasksPage.onWebSocketConnectionChange).off("websocketerror", ScheduledTasksPage.onWebSocketConnectionChange).off("websocketclose", ScheduledTasksPage.onWebSocketConnectionChange); ScheduledTasksPage.stopInterval(); }, startInterval: function () { if (Dashboard.isWebSocketOpen()) { Dashboard.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500"); } }, stopInterval: function () { if (Dashboard.isWebSocketOpen()) { Dashboard.sendWebSocketMessage("ScheduledTasksInfoStop"); } }, onWebSocketMessage: function (e, msg) { if (msg.MessageType == "ScheduledTasksInfo") { ScheduledTasksPage.populateList(msg.Data); } }, onWebSocketConnectionChange: function() { ScheduledTasksPage.reloadList(true); }, reloadList: function (updateInterval) { if (updateInterval) { ScheduledTasksPage.stopInterval(); } ApiClient.getScheduledTasks().done(function (tasks) { ScheduledTasksPage.populateList(tasks); Dashboard.hideLoadingMsg(); if (updateInterval) { ScheduledTasksPage.startInterval(); } }); }, populateList: function (tasks) { tasks = tasks.sort(function (a, b) { a = a.Category + " " + a.Name; b = b.Category + " " + b.Name; if (a == b) { return 0; } if (a < b) { return -1; } return 1; }); var page = $($.mobile.activePage); var html = ""; var currentCategory; for (var i = 0, length = tasks.length; i < length; i++) { var task = tasks[i]; if (task.Category != currentCategory) { currentCategory = task.Category; html += "
" + text + "
"; } html += "Start"; } else if (task.State == "Running") { var progress = task.CurrentProgress || { PercentComplete: 0 }; progress = Math.round(progress.PercentComplete); html += ''; html += "" + progress + "%"; html += '
'; html += "Stop"; } else { html += "Stopping
"; html += " "; } html += ""; html += "