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 @@
${HeaderDate} | ${HeaderSource} | ${HeaderDestination} | 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 += '|
---|---|---|---|
'; - - var date = datetime.parseISO8601Date(item.Date, true); - html += date.toLocaleDateString(); - - html += ' | '; - - 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 += ''; - html += item.TargetPath || ''; - html += ' | '; - - html += ''; - - if (item.Status != 'Success') { - - html += ''; - html += ''; - } - - html += ' | '; + html += renderItemRow(item); html += ''; + var hide = item.IsInProgress ? '' : ' hide'; + html += ' | '; + + html += ' '; + html += ''; + var date = datetime.parseISO8601Date(item.Date, true); + html += date.toLocaleDateString(); + html += ' | '; + + 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 += ''; + html += item.TargetPath || ''; + html += ' | '; + + html += ''; + + if (item.Status != 'Success') { + + 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