diff --git a/dashboard-ui/autoorganizelog.html b/dashboard-ui/autoorganizelog.html index ce2b094e67..a851d909bd 100644 --- a/dashboard-ui/autoorganizelog.html +++ b/dashboard-ui/autoorganizelog.html @@ -17,6 +17,7 @@ + diff --git a/dashboard-ui/css/images/throbber.gif b/dashboard-ui/css/images/throbber.gif new file mode 100644 index 0000000000..1b5b2fde42 Binary files /dev/null and b/dashboard-ui/css/images/throbber.gif differ diff --git a/dashboard-ui/scripts/autoorganizelog.js b/dashboard-ui/scripts/autoorganizelog.js index 9e826fb082..ecaad558dc 100644 --- a/dashboard-ui/scripts/autoorganizelog.js +++ b/dashboard-ui/scripts/autoorganizelog.js @@ -1,4 +1,4 @@ -define(['jQuery', 'scripts/taskbutton', 'datetime', 'paper-icon-button-light'], function ($, taskButton, datetime) { +define(['jQuery', 'serverNotifications', 'events', 'scripts/taskbutton', 'datetime', 'paper-icon-button-light'], function ($, serverNotifications, events, taskButton, datetime) { var query = { @@ -41,7 +41,7 @@ Dashboard.hideLoadingMsg(); - reloadItems(page); + reloadItems(page, true); }, Dashboard.processErrorResponse); }); @@ -58,7 +58,7 @@ require(['components/fileorganizer/fileorganizer'], function (fileorganizer) { fileorganizer.show(item).then(function () { - reloadItems(page); + reloadItems(page, false); }); }); } @@ -99,16 +99,18 @@ Dashboard.hideLoadingMsg(); - reloadItems(page); + reloadItems(page, true); }, Dashboard.processErrorResponse); }); }); } - function reloadItems(page) { + function reloadItems(page, showSpinner) { - Dashboard.showLoadingMsg(); + if (showSpinner) { + Dashboard.showLoadingMsg(); + } ApiClient.getFileOrganizationResults(query).then(function (result) { @@ -156,47 +158,9 @@ var html = ''; - html += ''; + html += ''; - html += ''; - - html += ''; - - html += ''; - - html += ''; + html += renderItemRow(item); html += ''; @@ -247,13 +211,13 @@ $('.btnNextPage', page).on('click', function () { query.StartIndex += query.Limit; - reloadItems(page); + reloadItems(page, true); }); $('.btnPreviousPage', page).on('click', function () { query.StartIndex -= query.Limit; - reloadItems(page); + reloadItems(page, true); }); if (result.TotalRecordCount) { @@ -263,13 +227,82 @@ } } - function onWebSocketMessage(e, msg) { + function renderItemRow(item) { + + var html = ''; + + html += ''; + + html += ''; + + html += ''; + + html += ''; + + html += ''; + + return html; + } + + function onServerEvent(e, apiClient, data) { var page = $.mobile.activePage; - if ((msg.MessageType == 'ScheduledTaskEnded' && msg.Data.Key == 'AutoOrganize') || msg.MessageType == 'AutoOrganizeUpdate') { + if (data) { - reloadItems(page); + updateItemStatus(page, data); + } else { + + reloadItems(page, false); + } + } + + function updateItemStatus(page, item) { + + var rowId = '#row' + item.Id; + var row = page.querySelector(rowId); + + if (row) { + + row.innerHTML = renderItemRow(item); } } @@ -296,7 +329,7 @@ $('.btnClearLog', page).on('click', function () { ApiClient.clearOrganizationLog().then(function () { - reloadItems(page); + reloadItems(page, true); }, Dashboard.processErrorResponse); }); @@ -306,7 +339,7 @@ var page = this; - reloadItems(page); + reloadItems(page, true); // on here taskButton({ @@ -317,7 +350,7 @@ button: page.querySelector('.btnOrganize') }); - Events.on(ApiClient, 'websocketmessage', onWebSocketMessage); + events.on(serverNotifications, 'AutoOrganizeUpdate', onServerEvent); }).on('pagebeforehide', '#libraryFileOrganizerLogPage', function () { @@ -331,7 +364,7 @@ button: page.querySelector('.btnOrganize') }); - Events.off(ApiClient, 'websocketmessage', onWebSocketMessage); + events.off(serverNotifications, 'AutoOrganizeUpdate', onServerEvent); }); }); \ No newline at end of file
${HeaderDate} ${HeaderSource} ${HeaderDestination}
'; - - var date = datetime.parseISO8601Date(item.Date, true); - html += date.toLocaleDateString(); - - html += ''; - var status = item.Status; - - if (status == 'SkippedExisting') { - html += ''; - html += item.OriginalFileName; - html += ''; - } - else if (status == 'Failure') { - html += ''; - html += item.OriginalFileName; - html += ''; - } else { - html += '
'; - html += item.OriginalFileName; - html += '
'; - } - html += '
'; - html += item.TargetPath || ''; - html += ''; - - if (item.Status != 'Success') { - - html += ''; - html += ''; - } - - html += '
'; + var hide = item.IsInProgress ? '' : ' hide'; + html += ''; + html += ''; + var date = datetime.parseISO8601Date(item.Date, true); + html += date.toLocaleDateString(); + html += ''; + var status = item.Status; + + if (item.IsInProgress) { + html += ''; + html += item.OriginalFileName; + html += ''; + } + else if (status == 'SkippedExisting') { + html += ''; + html += item.OriginalFileName; + html += ''; + } + else if (status == 'Failure') { + html += ''; + html += item.OriginalFileName; + html += ''; + } else { + html += ''; + html += item.OriginalFileName; + html += ''; + } + html += ''; + html += item.TargetPath || ''; + html += ''; + + if (item.Status != 'Success') { + + html += ''; + html += ''; + } + + html += '