mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
added a live tv status page
This commit is contained in:
parent
9db90f464a
commit
0cadf2308a
36 changed files with 152 additions and 225 deletions
|
@ -172,11 +172,15 @@
|
||||||
|
|
||||||
.labelPageSize {
|
.labelPageSize {
|
||||||
margin-left: 1em!important;
|
margin-left: 1em!important;
|
||||||
|
display: inline !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pageSizeContainer {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (max-width: 650px) {
|
@media all and (max-width: 650px) {
|
||||||
.labelPageSize, .selectPageSize {
|
.pageSizeContainer {
|
||||||
display: none!important;
|
display: none!important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,18 +8,17 @@
|
||||||
|
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
|
<a href="livetvstatus.html" data-role="button">Status</a>
|
||||||
|
<a href="#" data-role="button" class="ui-btn-active">Settings</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<form class="liveTvSettingsForm" style="display: none;">
|
<form class="liveTvSettingsForm" style="display: none;">
|
||||||
|
|
||||||
<div style="margin-top: 2.5em;">
|
|
||||||
<p>Active service: <span id="activeServiceName"></span></p>
|
|
||||||
<p>Status: <span id="activeServiceStatus"></span></p>
|
|
||||||
<p>Version: <span id="activeServiceVersion"></span></p>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<label for="selectActiveService">Change active service: </label>
|
<label for="selectActiveService">Active service: </label>
|
||||||
<select id="selectActiveService" data-mini="true">
|
<select id="selectActiveService" data-mini="true">
|
||||||
</select>
|
</select>
|
||||||
<div class="fieldDescription">Multiple tv plugins can be installed but only one can be active at a time.</div>
|
<div class="fieldDescription">Multiple tv plugins can be installed but only one can be active at a time.</div>
|
||||||
|
|
40
dashboard-ui/livetvstatus.html
Normal file
40
dashboard-ui/livetvstatus.html
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Live TV</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="liveTvStatusPage" data-role="page" class="page type-interior liveTvSettingsPage">
|
||||||
|
|
||||||
|
<div data-role="content">
|
||||||
|
<div class="content-primary">
|
||||||
|
|
||||||
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
|
<a href="#" data-role="button" class="ui-btn-active">Status</a>
|
||||||
|
<a href="livetvsettings.html" data-role="button">Settings</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="readOnlyContent" style="margin-top: 2em;">
|
||||||
|
|
||||||
|
<div class="liveTvStatusContent" style="display: none;">
|
||||||
|
|
||||||
|
<div style="margin-top: 2.5em;">
|
||||||
|
<p>Service: <span id="activeServiceName"></span></p>
|
||||||
|
<p>Status: <span id="activeServiceStatus"></span></p>
|
||||||
|
<p>Version: <span id="activeServiceVersion"></span></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="noLiveTvServices" style="display: none;">
|
||||||
|
|
||||||
|
<p>A Live TV service provider plugin is required in order to continue.</p>
|
||||||
|
|
||||||
|
<p>Please <a href="plugincatalog.html">install</a> one of our available plugins, such as ServerWmc.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,9 +1,13 @@
|
||||||
var DashboardPage = {
|
var DashboardPage = {
|
||||||
|
|
||||||
|
newsStartIndex: 0,
|
||||||
|
|
||||||
onPageShow: function () {
|
onPageShow: function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
|
DashboardPage.newsStartIndex = 0;
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
Dashboard.showLoadingMsg();
|
||||||
DashboardPage.pollForInfo(page);
|
DashboardPage.pollForInfo(page);
|
||||||
DashboardPage.startInterval();
|
DashboardPage.startInterval();
|
||||||
|
@ -27,11 +31,12 @@
|
||||||
|
|
||||||
reloadNews: function (page) {
|
reloadNews: function (page) {
|
||||||
|
|
||||||
ApiClient.getProductNews({
|
var query = {
|
||||||
|
StartIndex: DashboardPage.newsStartIndex,
|
||||||
|
Limit: 5
|
||||||
|
};
|
||||||
|
|
||||||
limit: 6
|
ApiClient.getProductNews(query).done(function (result) {
|
||||||
|
|
||||||
}).done(function (result) {
|
|
||||||
|
|
||||||
var html = result.Items.map(function (item) {
|
var html = result.Items.map(function (item) {
|
||||||
|
|
||||||
|
@ -49,7 +54,24 @@
|
||||||
return itemHtml;
|
return itemHtml;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.latestNewsItems', page).html(html.join(''));
|
var pagingHtml = '';
|
||||||
|
pagingHtml += '<div>';
|
||||||
|
pagingHtml += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false, [], false);
|
||||||
|
pagingHtml += '</div>';
|
||||||
|
|
||||||
|
html = html.join('') + pagingHtml;
|
||||||
|
|
||||||
|
var elem = $('.latestNewsItems', page).html(html).trigger('create');
|
||||||
|
|
||||||
|
$('.btnNextPage', elem).on('click', function () {
|
||||||
|
DashboardPage.newsStartIndex += query.Limit;
|
||||||
|
DashboardPage.reloadNews(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.btnPreviousPage', elem).on('click', function () {
|
||||||
|
DashboardPage.newsStartIndex -= query.Limit;
|
||||||
|
DashboardPage.reloadNews(page);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -92,11 +92,6 @@
|
||||||
|
|
||||||
$('.availableImagesList', page).html(html).trigger('create');
|
$('.availableImagesList', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
browsableImageStartIndex = (parseInt(this.value) - 1) * browsableImagePageSize;
|
|
||||||
reloadBrowsableImages(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
browsableImageStartIndex += browsableImagePageSize;
|
browsableImageStartIndex += browsableImagePageSize;
|
||||||
reloadBrowsableImages(page);
|
reloadBrowsableImages(page);
|
||||||
|
@ -228,20 +223,6 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
var pageCount = Math.ceil(totalRecordCount / limit);
|
|
||||||
var pageNumber = (startIndex / limit) + 1;
|
|
||||||
|
|
||||||
var dropdownHtml = '<select class="selectPage" data-enhance="false" data-role="none">';
|
|
||||||
for (var i = 1; i <= pageCount; i++) {
|
|
||||||
|
|
||||||
if (i == pageNumber) {
|
|
||||||
dropdownHtml += '<option value="' + i + '" selected="selected">' + i + '</option>';
|
|
||||||
} else {
|
|
||||||
dropdownHtml += '<option value="' + i + '">' + i + '</option>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dropdownHtml += '</select>';
|
|
||||||
|
|
||||||
var recordsEnd = Math.min(startIndex + limit, totalRecordCount);
|
var recordsEnd = Math.min(startIndex + limit, totalRecordCount);
|
||||||
|
|
||||||
// 20 is the minimum page size
|
// 20 is the minimum page size
|
||||||
|
@ -254,16 +235,14 @@
|
||||||
var startAtDisplay = totalRecordCount ? startIndex + 1 : 0;
|
var startAtDisplay = totalRecordCount ? startIndex + 1 : 0;
|
||||||
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
|
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
|
||||||
|
|
||||||
if (showControls) {
|
|
||||||
html += ', page ' + dropdownHtml + ' of ' + pageCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '</span>';
|
html += '</span>';
|
||||||
|
|
||||||
if (showControls) {
|
if (showControls) {
|
||||||
|
html += '<div data-role="controlgroup" data-type="horizontal" style="display:inline-block;">';
|
||||||
html += '<button data-icon="arrow-l" data-iconpos="notext" data-inline="true" data-mini="true" class="btnPreviousPage" ' + (startIndex ? '' : 'disabled') + '>Previous Page</button>';
|
html += '<button data-icon="arrow-l" data-iconpos="notext" data-inline="true" data-mini="true" class="btnPreviousPage" ' + (startIndex ? '' : 'disabled') + '>Previous Page</button>';
|
||||||
|
|
||||||
html += '<button data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-mini="true" class="btnNextPage" ' + (startIndex + limit > totalRecordCount ? 'disabled' : '') + '>Next Page</button>';
|
html += '<button data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-mini="true" class="btnNextPage" ' + (startIndex + limit > totalRecordCount ? 'disabled' : '') + '>Next Page</button>';
|
||||||
|
html += '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -46,11 +46,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -41,11 +41,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -44,11 +44,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -36,11 +36,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -488,12 +488,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
loadItems(page, query);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
|
|
||||||
query.StartIndex = query.StartIndex + query.Limit;
|
query.StartIndex = query.StartIndex + query.Limit;
|
||||||
|
|
|
@ -49,11 +49,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -1434,20 +1434,6 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
var pageCount = Math.ceil(totalRecordCount / query.Limit);
|
|
||||||
var pageNumber = (query.StartIndex / query.Limit) + 1;
|
|
||||||
|
|
||||||
var dropdownHtml = '<select class="selectPage" data-enhance="false" data-role="none">';
|
|
||||||
for (var i = 1; i <= pageCount; i++) {
|
|
||||||
|
|
||||||
if (i == pageNumber) {
|
|
||||||
dropdownHtml += '<option value="' + i + '" selected="selected">' + i + '</option>';
|
|
||||||
} else {
|
|
||||||
dropdownHtml += '<option value="' + i + '">' + i + '</option>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dropdownHtml += '</select>';
|
|
||||||
|
|
||||||
var recordsEnd = Math.min(query.StartIndex + query.Limit, totalRecordCount);
|
var recordsEnd = Math.min(query.StartIndex + query.Limit, totalRecordCount);
|
||||||
|
|
||||||
// 20 is the minimum page size
|
// 20 is the minimum page size
|
||||||
|
@ -1460,10 +1446,6 @@
|
||||||
var startAtDisplay = totalRecordCount ? query.StartIndex + 1 : 0;
|
var startAtDisplay = totalRecordCount ? query.StartIndex + 1 : 0;
|
||||||
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
|
html += startAtDisplay + '-' + recordsEnd + ' of ' + totalRecordCount;
|
||||||
|
|
||||||
if (showControls) {
|
|
||||||
//html += ', page ' + dropdownHtml + ' of ' + pageCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '</span>';
|
html += '</span>';
|
||||||
|
|
||||||
if (showControls) {
|
if (showControls) {
|
||||||
|
@ -1471,7 +1453,7 @@
|
||||||
html += '<div data-role="controlgroup" data-type="horizontal" style="display:inline-block;">';
|
html += '<div data-role="controlgroup" data-type="horizontal" style="display:inline-block;">';
|
||||||
html += '<button data-icon="arrow-l" data-iconpos="notext" data-inline="true" data-mini="true" class="btnPreviousPage" ' + (query.StartIndex ? '' : 'disabled') + '>Previous Page</button>';
|
html += '<button data-icon="arrow-l" data-iconpos="notext" data-inline="true" data-mini="true" class="btnPreviousPage" ' + (query.StartIndex ? '' : 'disabled') + '>Previous Page</button>';
|
||||||
|
|
||||||
html += '<button data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-mini="true" class="btnNextPage" ' + (query.StartIndex + query.Limit > totalRecordCount ? 'disabled' : '') + '>Next Page</button>';
|
html += '<button data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-mini="true" class="btnNextPage" ' + (query.StartIndex + query.Limit >= totalRecordCount ? 'disabled' : '') + '>Next Page</button>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
if (showLimit !== false) {
|
if (showLimit !== false) {
|
||||||
|
@ -1497,7 +1479,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add styles to defeat jquery mobile
|
// Add styles to defeat jquery mobile
|
||||||
html += '<label style="display:inline;font-size:inherit;" class="labelPageSize" for="' + id + '">Limit: </label><select class="selectPageSize" id="' + id + '" data-enhance="false" data-role="none">' + options + '</select>';
|
html += '<div class="pageSizeContainer"><label style="font-size:inherit;" class="labelPageSize" for="' + id + '">Limit: </label><select class="selectPageSize" id="' + id + '" data-inline="true" data-mini="true">' + options + '</select></div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -295,11 +295,6 @@
|
||||||
$('.listBottomPaging', page).empty();
|
$('.listBottomPaging', page).empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -25,11 +25,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -70,11 +70,6 @@
|
||||||
var channelPagingHtml = LibraryBrowser.getPagingHtml(channelQuery, channelsResult.TotalRecordCount, false, [10, 20, 30, 50, 100]);
|
var channelPagingHtml = LibraryBrowser.getPagingHtml(channelQuery, channelsResult.TotalRecordCount, false, [10, 20, 30, 50, 100]);
|
||||||
$('.channelPaging', page).html(channelPagingHtml).trigger('create');
|
$('.channelPaging', page).html(channelPagingHtml).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
channelQuery.StartIndex = (parseInt(this.value) - 1) * channelQuery.Limit;
|
|
||||||
reloadChannels(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
channelQuery.StartIndex += channelQuery.Limit;
|
channelQuery.StartIndex += channelQuery.Limit;
|
||||||
reloadChannels(page);
|
reloadChannels(page);
|
||||||
|
|
|
@ -37,11 +37,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -20,37 +20,6 @@
|
||||||
|
|
||||||
$('#selectActiveService', page).html(serviceOptions).selectmenu('refresh');
|
$('#selectActiveService', page).html(serviceOptions).selectmenu('refresh');
|
||||||
|
|
||||||
var service = liveTvInfo.Services.filter(function (s) {
|
|
||||||
return s.Name == liveTvInfo.ActiveServiceName;
|
|
||||||
|
|
||||||
})[0] || {};
|
|
||||||
|
|
||||||
if (service.HomePageUrl) {
|
|
||||||
$('#activeServiceName', page).html('<a href="' + service.HomePageUrl + '" target="_blank">' + liveTvInfo.ActiveServiceName + '</a>').trigger('create');
|
|
||||||
} else {
|
|
||||||
$('#activeServiceName', page).html(liveTvInfo.ActiveServiceName);
|
|
||||||
}
|
|
||||||
|
|
||||||
var versionHtml = service.Version || 'Unknown';
|
|
||||||
|
|
||||||
if (service.HasUpdateAvailable) {
|
|
||||||
versionHtml += ' <span style="color:green; margin-left: .25em;">(Update available)</span>';
|
|
||||||
} else {
|
|
||||||
versionHtml += '<img src="css/images/checkmarkgreen.png" style="height: 17px; margin-left: 10px; margin-right: 0; position: relative; top: 4px;" /> Up to date!';
|
|
||||||
}
|
|
||||||
$('#activeServiceVersion', page).html(versionHtml);
|
|
||||||
|
|
||||||
var status = liveTvInfo.Status;
|
|
||||||
|
|
||||||
if (status != 'Ok') {
|
|
||||||
|
|
||||||
if (liveTvInfo.StatusMessage) {
|
|
||||||
status += ' (' + liveTvInfo.StatusMessage + ')';
|
|
||||||
}
|
|
||||||
status = '<span style="color:red;">' + status + '</span>';
|
|
||||||
}
|
|
||||||
$('#activeServiceStatus', page).html(status);
|
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
68
dashboard-ui/scripts/livetvstatus.js
Normal file
68
dashboard-ui/scripts/livetvstatus.js
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
(function ($, document, window) {
|
||||||
|
|
||||||
|
function loadPage(page, liveTvInfo) {
|
||||||
|
|
||||||
|
if (liveTvInfo.IsEnabled) {
|
||||||
|
|
||||||
|
$('.liveTvStatusContent', page).show();
|
||||||
|
$('.noLiveTvServices', page).hide();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$('.liveTvStatusContent', page).hide();
|
||||||
|
$('.noLiveTvServices', page).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
var service = liveTvInfo.Services.filter(function (s) {
|
||||||
|
return s.Name == liveTvInfo.ActiveServiceName;
|
||||||
|
|
||||||
|
})[0] || {};
|
||||||
|
|
||||||
|
var serviceUrl = service.HomePageUrl || '#';
|
||||||
|
|
||||||
|
$('#activeServiceName', page).html('<a href="' + serviceUrl + '" target="_blank">' + liveTvInfo.ActiveServiceName + '</a>').trigger('create');
|
||||||
|
|
||||||
|
var versionHtml = service.Version || 'Unknown';
|
||||||
|
|
||||||
|
if (service.HasUpdateAvailable) {
|
||||||
|
versionHtml += ' <a style="margin-left: .25em;" href="' + serviceUrl + '" target="_blank">(Update available)</a>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
versionHtml += '<img src="css/images/checkmarkgreen.png" style="height: 17px; margin-left: 10px; margin-right: 0; position: relative; top: 4px;" /> Up to date!';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#activeServiceVersion', page).html(versionHtml);
|
||||||
|
|
||||||
|
var status = liveTvInfo.Status;
|
||||||
|
|
||||||
|
if (liveTvInfo.Status == 'Ok') {
|
||||||
|
|
||||||
|
status = '<span style="color:green;">' + status + '</span>';
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (liveTvInfo.StatusMessage) {
|
||||||
|
status += ' (' + liveTvInfo.StatusMessage + ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
status = '<span style="color:red;">' + status + '</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#activeServiceStatus', page).html(status);
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).on('pageshow', "#liveTvStatusPage", function () {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
ApiClient.getLiveTvInfo().done(function (liveTvInfo) {
|
||||||
|
|
||||||
|
loadPage(page, liveTvInfo);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
})(jQuery, document, window);
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -44,11 +44,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -68,11 +68,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -59,11 +59,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -41,11 +41,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -42,11 +42,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -755,7 +755,7 @@ var Dashboard = {
|
||||||
selected: page.hasClass("pluginConfigurationPage")
|
selected: page.hasClass("pluginConfigurationPage")
|
||||||
}, {
|
}, {
|
||||||
name: "Live TV",
|
name: "Live TV",
|
||||||
href: "livetvsettings.html",
|
href: "livetvstatus.html",
|
||||||
selected: page.hasClass("liveTvSettingsPage")
|
selected: page.hasClass("liveTvSettingsPage")
|
||||||
}, {
|
}, {
|
||||||
name: "Users",
|
name: "Users",
|
||||||
|
|
|
@ -62,11 +62,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -45,11 +45,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -44,11 +44,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -72,11 +72,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
|
@ -45,11 +45,6 @@
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create');
|
$('#items', page).html(html).trigger('create');
|
||||||
|
|
||||||
$('.selectPage', page).on('change', function () {
|
|
||||||
query.StartIndex = (parseInt(this.value) - 1) * query.Limit;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue