define(['datetime', 'jQuery', 'dom', 'humanedate', 'cardStyle', 'listViewStyle'], function (datetime, $, dom) { 'use strict'; function renderNoHealthAlertsMessage(page) { var html = '
';
html += '
";
}
if (clientLowered.indexOf('ios') != -1) {
return "
";
}
if (clientLowered == "mb-classic") {
return "
";
}
if (clientLowered == "roku") {
return "
";
}
if (clientLowered == "windows phone") {
return "
";
}
if (clientLowered == "dlna") {
return "
";
}
if (clientLowered == "kodi" || clientLowered == "xbmc") {
return "
";
}
if (clientLowered == "chromecast") {
return "
";
}
return null;
},
getNowPlayingImageUrl: function (item) {
if (item && item.BackdropImageTag) {
return ApiClient.getScaledImageUrl(item.BackdropItemId, {
type: "Backdrop",
width: 275,
tag: item.BackdropImageTag
});
}
if (item && item.ThumbImageTag) {
return ApiClient.getScaledImageUrl(item.ThumbItemId, {
type: "Thumb",
width: 275,
tag: item.ThumbImageTag
});
}
if (item && item.PrimaryImageTag) {
return ApiClient.getScaledImageUrl(item.PrimaryImageItemId, {
type: "Primary",
width: 275,
tag: item.PrimaryImageTag
});
}
return null;
},
systemUpdateTaskKey: "SystemUpdateTask",
renderRunningTasks: function (page, tasks) {
var html = '';
tasks = tasks.filter(function (t) {
return t.State != 'Idle' && !t.IsHidden;
});
if (tasks.filter(function (t) {
return t.Key == DashboardPage.systemUpdateTaskKey;
}).length) {
$('#btnUpdateApplication', page).buttonEnabled(false);
} else {
$('#btnUpdateApplication', page).buttonEnabled(true);
}
if (!tasks.length) {
$('#runningTasksCollapsible', page).hide();
} else {
$('#runningTasksCollapsible', page).show();
}
for (var i = 0, length = tasks.length; i < length; i++) {
var task = tasks[i];
html += '';
html += task.Name + "
";
if (task.State == "Running") {
var progress = (task.CurrentProgressPercentage || 0).toFixed(1);
html += '';
html += "" + progress + "%";
html += '';
}
else if (task.State == "Cancelling") {
html += '' + Globalize.translate('LabelStopping') + '';
}
html += '
' + Globalize.translate('NewVersionOfSomethingAvailable').replace('{0}', update.name) + '
'; html += ''; } elem.html(html); }); }, installPluginUpdate: function (button) { $(button).buttonEnabled(false); var name = button.getAttribute('data-name'); var guid = button.getAttribute('data-guid'); var version = button.getAttribute('data-version'); var classification = button.getAttribute('data-classification'); Dashboard.showLoadingMsg(); ApiClient.installPlugin(name, guid, classification, version).then(function () { Dashboard.hideLoadingMsg(); }); }, updateApplication: function () { var page = $.mobile.activePage; $('#btnUpdateApplication', page).buttonEnabled(false); Dashboard.showLoadingMsg(); ApiClient.getScheduledTasks().then(function (tasks) { var task = tasks.filter(function (t) { return t.Key == DashboardPage.systemUpdateTaskKey; })[0]; ApiClient.startScheduledTask(task.Id).then(function () { DashboardPage.pollForInfo(page); Dashboard.hideLoadingMsg(); }); }); }, stopTask: function (id) { var page = $.mobile.activePage; ApiClient.stopScheduledTask(id).then(function () { DashboardPage.pollForInfo(page); }); }, restart: function () { require(['confirm'], function (confirm) { confirm({ title: Globalize.translate('HeaderRestart'), text: Globalize.translate('MessageConfirmRestart'), confirmText: Globalize.translate('ButtonRestart'), primary: 'cancel' }).then(function () { $('#btnRestartServer').buttonEnabled(false); $('#btnShutdown').buttonEnabled(false); Dashboard.restartServer(); }); }); }, shutdown: function () { require(['confirm'], function (confirm) { confirm({ title: Globalize.translate('HeaderShutdown'), text: Globalize.translate('MessageConfirmShutdown'), confirmText: Globalize.translate('ButtonShutdown'), primary: 'cancel' }).then(function () { $('#btnRestartServer').buttonEnabled(false); $('#btnShutdown').buttonEnabled(false); ApiClient.shutdownServer(); }); }); } }; $(document).on('pageinit', "#dashboardPage", DashboardPage.onPageInit).on('pageshow', "#dashboardPage", DashboardPage.onPageShow).on('pagebeforehide', "#dashboardPage", DashboardPage.onPageHide); (function ($, document, window) { function getEntryHtml(entry) { var html = ''; html += '