display pending installations on dashboard home

This commit is contained in:
LukePulverenti 2013-03-20 17:17:47 -04:00
parent eabbce54ff
commit d47cb9a41c
2 changed files with 43 additions and 9 deletions

View file

@ -24,12 +24,17 @@
<p id="newVersionNumber"></p>
<button id="btnUpdateApplication" type="button" data-icon="download" data-theme="b" onclick="DashboardPage.updateApplication();">Update Now</button>
</div>
<div id="pPluginUpdates"></div>
</div>
</div>
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" style="margin-top: 2em; display: none;" id="collapsiblePluginUpdates">
<h3>Plugin Information</h3>
<div id="pPluginUpdates"></div>
<div id="collapsiblePendingInstallations" data-role="collapsible" data-content-theme="c" data-collapsed="false" style="margin-top: 2em; display: none;">
<h3>Pending Installations</h3>
<p>The following components have been installed or updated:</p>
<div id="pendingInstallations">
</div>
<p>Please restart the server to finish applying updates.</p>
<button type="button" data-icon="refresh" data-theme="b" onclick="Dashboard.restartServer();">Restart Now</button>
</div>
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" style="margin-top: 2em;">

View file

@ -293,6 +293,7 @@
DashboardPage.renderApplicationUpdateInfo(dashboardInfo);
DashboardPage.renderPluginUpdateInfo(dashboardInfo);
DashboardPage.renderPendingInstallations(dashboardInfo.SystemInfo);
},
renderApplicationUpdateInfo: function (dashboardInfo) {
@ -330,17 +331,43 @@
});
} else {
if (dashboardInfo.SystemInfo.HasPendingRestart) {
$('#pUpToDate', page).hide();
} else {
$('#pUpToDate', page).show();
}
$('#pUpdateNow', page).hide();
}
},
renderPendingInstallations: function (systemInfo) {
var page = $.mobile.activePage;
if (systemInfo.CompletedInstallations.length) {
$('#collapsiblePendingInstallations', page).show();
} else {
$('#collapsiblePendingInstallations', page).hide();
return;
}
var html = '';
for (var i = 0, length = systemInfo.CompletedInstallations.length; i < length; i++) {
var update = systemInfo.CompletedInstallations[i];
html += '<div><strong>' + update.Name + '</strong> (' + update.Version + ')</div>';
}
$('#pendingInstallations', page).html(html);
},
renderPluginUpdateInfo: function (dashboardInfo) {
// Only check once every 10 mins
@ -354,12 +381,14 @@
ApiClient.getAvailablePluginUpdates().done(function (updates) {
var elem = $('#pPluginUpdates', page);
if (updates.length) {
$('#collapsiblePluginUpdates', page).show();
elem.show();
} else {
$('#collapsiblePluginUpdates', page).hide();
elem.hide();
return;
}
@ -374,8 +403,8 @@
html += '<button type="button" data-icon="download" data-theme="b" onclick="DashboardPage.installPluginUpdate(this);" data-name="' + update.name + '" data-version="' + update.versionStr + '" data-classification="' + update.classification + '">Update Now</button>';
}
$('#pPluginUpdates', page).html(html).trigger('create');
elem.html(html).trigger('create');
}).fail(function () {
Dashboard.showFooterNotification({ html: '<img src="css/images/notifications/error.png" class="notificationIcon" />There was an error connecting to the remote Media Browser repository.', id: "MB3ConnectionError" });