mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
updated live tv endpoints
This commit is contained in:
parent
7e5011f03d
commit
8d17f5f79e
18 changed files with 80 additions and 100 deletions
|
@ -29,28 +29,24 @@
|
|||
border-spacing: 0;
|
||||
border-top: 1px solid #444;
|
||||
border-bottom: 1px solid #444;
|
||||
padding: 3px 5px;
|
||||
padding: 5px 5px;
|
||||
}
|
||||
|
||||
.detailTable th {
|
||||
border-spacing: 0;
|
||||
border-bottom: 1px solid #444;
|
||||
padding: 5px;
|
||||
font-weight: normal;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.detailTable tr:hover {
|
||||
background: #555;
|
||||
}
|
||||
|
||||
.userDataCell {
|
||||
width: 130px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.tabletColumn {
|
||||
.tabletColumn, .desktopColumn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -66,8 +62,14 @@
|
|||
opacity: .6;
|
||||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
@media all and (min-width: 600px) {
|
||||
.tabletColumn {
|
||||
display: table-cell;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1100px) {
|
||||
.desktopColumn {
|
||||
display: table-cell;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,9 @@
|
|||
z-index: 1000;
|
||||
top: 0;
|
||||
border-bottom: 1px solid #111;
|
||||
font-size: 13px;
|
||||
}
|
||||
.viewMenuLink {
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.viewSummary {
|
||||
|
@ -812,7 +814,7 @@ a.itemTag:hover {
|
|||
width: 27px;
|
||||
z-index: 1000;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
font-size: 14px;
|
||||
display: none;
|
||||
line-height: 1;
|
||||
}
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
}
|
||||
|
||||
.posterItemStoreText {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-weight: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
|
|
@ -93,11 +93,12 @@
|
|||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.searchHintSecondaryText {
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
color: #555;
|
||||
margin-top: 3px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
body {
|
||||
overflow-y: scroll!important;
|
||||
font-size: 14px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.textlink {
|
||||
|
@ -45,19 +45,19 @@ body {
|
|||
|
||||
* {
|
||||
font-family: 'Open Sans', Arial, Helvetica, sans-serif;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.ui-header .ui-btn-inner, .ui-footer .ui-btn-inner, .ui-mini .ui-btn-inner {
|
||||
font-size: 13.5px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ui-li-desc {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: 'Open Sans', Arial, Helvetica, sans-serif;
|
||||
font-weight: 200;
|
||||
font-size: 22pt;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.toolsSidebar h1 {
|
||||
|
@ -70,9 +70,7 @@ h1 {
|
|||
}
|
||||
|
||||
h2 {
|
||||
font-family: 'Open Sans', Arial, Helvetica, sans-serif;
|
||||
font-weight: 400;
|
||||
font-size: 20pt;
|
||||
}
|
||||
|
||||
h1 a {
|
||||
|
@ -88,16 +86,6 @@ h1 a:hover {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
h1 {
|
||||
font-size: 28pt;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 22pt;
|
||||
}
|
||||
}
|
||||
|
||||
pre, textarea.pre {
|
||||
display: block;
|
||||
padding: 8.5px;
|
||||
|
@ -233,6 +221,7 @@ form, .readOnlyContent {
|
|||
.fieldDescription {
|
||||
font-size: 12px;
|
||||
padding-left: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.warningFieldDescription {
|
||||
|
@ -455,7 +444,6 @@ form, .readOnlyContent {
|
|||
.directoryPickerHeadline {
|
||||
border: 1px solid #f7c942;
|
||||
color: #222;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
background: #fff9df;
|
||||
background-image: -webkit-gradient(linear,left top,left bottom,from(#fffadf),to(#fff3a5));
|
||||
background-image: -webkit-linear-gradient(#fffadf,#fff3a5);
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
background: #333;
|
||||
padding: 10px 7px 5px;
|
||||
margin: 3px 0;
|
||||
text-shadow: none;
|
||||
font-weight: normal!important;
|
||||
display: block;
|
||||
position: relative;
|
||||
|
@ -196,10 +195,6 @@
|
|||
.posterTileItem {
|
||||
width: 30.5%;
|
||||
}
|
||||
|
||||
.tileItem .itemProgress {
|
||||
font-size: 17px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1000px) {
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<div id="divMediaLibrary">
|
||||
<p class="editing_default">This is the <strong>default media library</strong> that will be shared with all users unless individual libraries are created.</p>
|
||||
<p>
|
||||
<button type="button" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">Add media collection</button>
|
||||
<button type="button" data-mini="true" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">Add media collection</button>
|
||||
</p>
|
||||
<div id="divVirtualFolders"></div>
|
||||
</div>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
<div class="detailSectionHeader" style="margin-top: 0;">
|
||||
Programs
|
||||
</div>
|
||||
<div class="detailSectionContent" style="padding: 0 1em;">
|
||||
<div class="detailSectionContent" style="padding: 1em;">
|
||||
|
||||
<div id="programList"></div>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,28 @@
|
|||
<a href="livetvtimers.html">Timers</a>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div id="items" class="itemsContainer"></div>
|
||||
<div class="itemsContainer">
|
||||
|
||||
<br />
|
||||
<div class="detailTableContainer">
|
||||
<table id="table-column-toggle" class="detailTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="desktopColumn"></th>
|
||||
<th>Name</th>
|
||||
<th class="desktopColumn">Channel</th>
|
||||
<th>Date</th>
|
||||
<th>Start</th>
|
||||
<th class="tabletColumn">End</th>
|
||||
<th class="tabletColumn">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -12,9 +12,7 @@
|
|||
<a href="livetvtimers.html" class="ui-btn-active">Timers</a>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<p style="text-align: right; max-width: 1100px; margin: 1em auto 1.5em;">
|
||||
<a data-role="button" href="livetvtimer.html" data-icon="plus" data-inline="true" data-mini="true">New Timer</a>
|
||||
</p>
|
||||
<br />
|
||||
<div id="items" class="itemsContainer"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<table class="ehsContent">
|
||||
<tr>
|
||||
<td>
|
||||
<h1 class="listHeader firstListHeader">Latest Unwatched Movies</h1>
|
||||
<h1 class="listHeader firstListHeader">Latest Movies</h1>
|
||||
|
||||
<div id="recentlyAddedItems">
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
|||
</div>
|
||||
|
||||
<div id="trailerSection" style="display: none;">
|
||||
<h1 class="listHeader firstListHeader">Latest Unwatched Trailers</h1>
|
||||
<h1 class="listHeader firstListHeader">Latest Trailers</h1>
|
||||
|
||||
<div id="trailerItems">
|
||||
</div>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
</div>
|
||||
|
||||
<div id="topPlayed" style="display: none;">
|
||||
<h1 class="listHeader">Most Frequently Played</h1>
|
||||
<h1 class="listHeader">Frequently Played</h1>
|
||||
|
||||
<div id="topPlayedSongs">
|
||||
</div>
|
||||
|
|
|
@ -392,8 +392,8 @@
|
|||
}
|
||||
|
||||
html += LibraryBrowser.getSongHeaderCellHtml('Runtime', 'tabletColumn', options.enableColumnSorting, 'Runtime,AlbumArtist,Album,SortName', options.sortBy, options.sortOrder);
|
||||
html += LibraryBrowser.getSongHeaderCellHtml('Play Count', 'tabletColumn', options.enableColumnSorting, 'PlayCount,AlbumArtist,Album,SortName', options.sortBy, options.sortOrder);
|
||||
html += LibraryBrowser.getSongHeaderCellHtml('', 'tabletColumn userDataCell', options.enableColumnSorting);
|
||||
html += LibraryBrowser.getSongHeaderCellHtml('Plays', 'desktopColumn', options.enableColumnSorting, 'PlayCount,AlbumArtist,Album,SortName', options.sortBy, options.sortOrder);
|
||||
html += LibraryBrowser.getSongHeaderCellHtml('', 'desktopColumn userDataCell', options.enableColumnSorting);
|
||||
|
||||
html += '</tr>';
|
||||
|
||||
|
@ -426,10 +426,10 @@
|
|||
|
||||
if (item.AlbumArtist) {
|
||||
|
||||
html += '<td><a href="itembynamedetails.html?context=music&musicartist=' + ApiClient.encodeName(item.AlbumArtist) + '">' + item.AlbumArtist + '</a></td>';
|
||||
html += '<td class="tabletColumn"><a href="itembynamedetails.html?context=music&musicartist=' + ApiClient.encodeName(item.AlbumArtist) + '">' + item.AlbumArtist + '</a></td>';
|
||||
|
||||
} else {
|
||||
html += '<td></td>';
|
||||
html += '<td class="tabletColumn"></td>';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -450,9 +450,9 @@
|
|||
|
||||
html += '<td class="tabletColumn">' + time + '</td>';
|
||||
|
||||
html += '<td class="tabletColumn">' + (item.UserData ? item.UserData.PlayCount : 0) + '</td>';
|
||||
html += '<td class="desktopColumn">' + (item.UserData ? item.UserData.PlayCount : 0) + '</td>';
|
||||
|
||||
html += '<td class="tabletColumn userDataCell">' + LibraryBrowser.getUserDataIconsHtml(item) + '</td>';
|
||||
html += '<td class="desktopColumn userDataCell">' + LibraryBrowser.getUserDataIconsHtml(item) + '</td>';
|
||||
|
||||
html += '</tr>';
|
||||
}
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
(function ($, document, apiClient) {
|
||||
|
||||
function playRecording(page, id) {
|
||||
|
||||
}
|
||||
|
||||
function deleteRecording(page, id) {
|
||||
|
||||
Dashboard.confirm("Are you sure you wish to delete this recording?", "Confirm Recording Deletion", function (result) {
|
||||
|
@ -27,36 +23,21 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
var cssClass = "detailTable";
|
||||
|
||||
html += '<div class="detailTableContainer"><table class="' + cssClass + '">';
|
||||
|
||||
html += '<tr>';
|
||||
|
||||
html += '<th> </th>';
|
||||
html += '<th>Name</th>';
|
||||
html += '<th>Channel</th>';
|
||||
html += '<th>Date</th>';
|
||||
html += '<th>Start</th>';
|
||||
html += '<th>End</th>';
|
||||
html += '<th>Status</th>';
|
||||
|
||||
html += '</tr>';
|
||||
|
||||
for (var i = 0, length = recordings.length; i < length; i++) {
|
||||
|
||||
var recording = recordings[i];
|
||||
|
||||
html += '<tr>';
|
||||
|
||||
html += '<td>';
|
||||
html += '<button data-recordingid="' + recording.Id + '" class="btnPlayRecording" type="button" data-icon="play" data-inline="true" data-mini="true" data-iconpos="notext">Play</button>';
|
||||
html += '<td class="desktopColumn">';
|
||||
html += '<button data-recordingid="' + recording.Id + '" class="btnDeleteRecording" type="button" data-icon="delete" data-inline="true" data-mini="true" data-iconpos="notext">Delete</button>';
|
||||
html += '</td>';
|
||||
|
||||
html += '<td>' + (recording.Name || '') + '</td>';
|
||||
|
||||
html += '<td>';
|
||||
html += '<a href="livetvrecording.html?id=' + recording.Id + '">' + recording.Name + '</a>';
|
||||
html += '</td>';
|
||||
|
||||
html += '<td class="desktopColumn">';
|
||||
if (recording.ChannelId) {
|
||||
html += '<a href="livetvchannel.html?id=' + recording.ChannelId + '">' + recording.ChannelName + '</a>';
|
||||
}
|
||||
|
@ -76,23 +57,14 @@
|
|||
|
||||
html += '<td>' + LiveTvHelpers.getDisplayTime(recording.StartDate) + '</td>';
|
||||
|
||||
html += '<td>' + LiveTvHelpers.getDisplayTime(recording.EndDate) + '</td>';
|
||||
html += '<td class="tabletColumn">' + LiveTvHelpers.getDisplayTime(recording.EndDate) + '</td>';
|
||||
|
||||
html += '<td>' + (recording.Status || '') + '</td>';
|
||||
html += '<td class="tabletColumn">' + (recording.Status || '') + '</td>';
|
||||
|
||||
html += '</tr>';
|
||||
}
|
||||
|
||||
html += '</table></div>';
|
||||
|
||||
var elem = $('#items', page).html(html).trigger('create');
|
||||
|
||||
$('.btnPlayRecording', elem).on('click', function () {
|
||||
|
||||
var recordingId = this.getAttribute('data-recordingid');
|
||||
|
||||
playRecording(page, recordingId);
|
||||
});
|
||||
var elem = $('#table-column-toggle tbody', page).html(html).trigger('create');
|
||||
|
||||
$('.btnDeleteRecording', elem).on('click', function () {
|
||||
|
||||
|
|
|
@ -33,14 +33,14 @@
|
|||
|
||||
html += '<tr>';
|
||||
|
||||
html += '<th> </th>';
|
||||
html += '<th class="tabletColumn"> </th>';
|
||||
html += '<th>Name</th>';
|
||||
html += '<th>Channel</th>';
|
||||
html += '<th class="desktopColumn">Channel</th>';
|
||||
html += '<th>Date</th>';
|
||||
html += '<th>Start</th>';
|
||||
html += '<th>End</th>';
|
||||
html += '<th>Status</th>';
|
||||
html += '<th>Recurring</th>';
|
||||
html += '<th class="tabletColumn">End</th>';
|
||||
html += '<th class="tabletColumn">Status</th>';
|
||||
html += '<th class="desktopColumn">Recurring</th>';
|
||||
|
||||
html += '</tr>';
|
||||
|
||||
|
@ -50,13 +50,15 @@
|
|||
|
||||
html += '<tr>';
|
||||
|
||||
html += '<td>';
|
||||
html += '<td class="tabletColumn">';
|
||||
html += '<button data-timerid="' + timer.Id + '" class="btnDeleteTimer" type="button" data-icon="delete" data-inline="true" data-mini="true" data-iconpos="notext">Delete</button>';
|
||||
html += '</td>';
|
||||
|
||||
html += '<td>' + (timer.Name || '') + '</td>';
|
||||
|
||||
html += '<td>';
|
||||
html += '<a href="livetvtimer.html?id=' + timer.Id + '">' + timer.Name + '</a>';
|
||||
html += '</td>';
|
||||
|
||||
html += '<td class="desktopColumn">';
|
||||
if (timer.ChannelId) {
|
||||
html += '<a href="livetvchannel.html?id=' + timer.ChannelId + '">' + timer.ChannelName + '</a>';
|
||||
}
|
||||
|
@ -76,11 +78,11 @@
|
|||
|
||||
html += '<td>' + LiveTvHelpers.getDisplayTime(timer.StartDate) + '</td>';
|
||||
|
||||
html += '<td>' + LiveTvHelpers.getDisplayTime(timer.EndDate) + '</td>';
|
||||
html += '<td class="tabletColumn">' + LiveTvHelpers.getDisplayTime(timer.EndDate) + '</td>';
|
||||
|
||||
html += '<td>' + (timer.Status || '') + '</td>';
|
||||
html += '<td class="tabletColumn">' + (timer.Status || '') + '</td>';
|
||||
|
||||
html += '<td>';
|
||||
html += '<td class="desktopColumn">';
|
||||
|
||||
if (timer.IsRecurring) {
|
||||
html += ' ';
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
getVirtualFolderHtml: function (virtualFolder, isCollapsed, index) {
|
||||
|
||||
isCollapsed = isCollapsed ? "true" : "false";
|
||||
var html = '<div class="collapsibleVirtualFolder" data-role="collapsible" data-collapsed="' + isCollapsed + '" data-content-theme="c">';
|
||||
var html = '<div class="collapsibleVirtualFolder" data-mini="true" data-role="collapsible" data-collapsed="' + isCollapsed + '" data-content-theme="c">';
|
||||
|
||||
html += '<h3>' + virtualFolder.Name + '</h3>';
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<table class="ehsContent">
|
||||
<tr>
|
||||
<td>
|
||||
<h1 class="listHeader firstListHeader">Latest Unwatched Episodes</h1>
|
||||
<h1 class="listHeader firstListHeader">Latest Episodes</h1>
|
||||
|
||||
<div id="recentlyAddedItems">
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<div id="divMediaLibrary">
|
||||
<p class="editing_default">This is the <strong>default media library</strong> that will be shared with all users unless individual libraries are created.</p>
|
||||
<p>
|
||||
<button type="button" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">Add media collection</button>
|
||||
<button type="button" data-mini="true" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">Add media collection</button>
|
||||
</p>
|
||||
<div id="divVirtualFolders"></div>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue