mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
updated mono build
This commit is contained in:
parent
f7b3f46413
commit
c93de38f39
15 changed files with 150 additions and 162 deletions
|
@ -128,7 +128,7 @@
|
|||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("SessionsStart", "0,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "0,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "0,1000");
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -257,15 +257,10 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
if (nowPlayingItem) {
|
||||
var nowPlayingName = DashboardPage.getNowPlayingName(connection);
|
||||
|
||||
var nowPlayingName = DashboardPage.getNowPlayingName(connection);
|
||||
|
||||
html += '<div class="sessionNowPlayingInfo" data-imgsrc="' + nowPlayingName.image + '">';
|
||||
html += nowPlayingName.html;
|
||||
} else {
|
||||
html += '<div class="sessionNowPlayingInfo">';
|
||||
}
|
||||
html += '<div class="sessionNowPlayingInfo" data-imgsrc="' + nowPlayingName.image + '">';
|
||||
html += nowPlayingName.html;
|
||||
html += '</div>';
|
||||
|
||||
if (nowPlayingItem && nowPlayingItem.RunTimeTicks) {
|
||||
|
|
|
@ -782,51 +782,39 @@
|
|||
|
||||
cssClass = options.centerText ? "posterItemText posterItemTextCentered" : "posterItemText";
|
||||
|
||||
var lines = [];
|
||||
|
||||
if (options.showParentTitle) {
|
||||
|
||||
html += "<div class='" + cssClass + "'>";
|
||||
html += item.EpisodeTitle ? item.Name : (item.SeriesName || item.Album || item.AlbumArtist || item.GameSystem || " ");
|
||||
html += "</div>";
|
||||
lines.push(item.EpisodeTitle ? item.Name : (item.SeriesName || item.Album || item.AlbumArtist || item.GameSystem || ""));
|
||||
}
|
||||
|
||||
if (options.showTitle || forceName) {
|
||||
|
||||
html += "<div class='" + cssClass + " posterItemName'>";
|
||||
html += name;
|
||||
html += "</div>";
|
||||
lines.push(name);
|
||||
}
|
||||
|
||||
if (options.showItemCounts) {
|
||||
|
||||
var itemCountHtml = LibraryBrowser.getItemCountsHtml(options, item);
|
||||
|
||||
if (item.Type == "Person" && !itemCountHtml) {
|
||||
itemCountHtml = " ";
|
||||
}
|
||||
|
||||
if (itemCountHtml) {
|
||||
html += "<div class='" + cssClass + "'>";
|
||||
html += itemCountHtml;
|
||||
html += "</div>";
|
||||
}
|
||||
lines.push(itemCountHtml);
|
||||
}
|
||||
|
||||
if (options.showPremiereDate && item.PremiereDate) {
|
||||
|
||||
try {
|
||||
|
||||
//var date = parseISO8601Date(item.PremiereDate, { toLocal: true });
|
||||
|
||||
html += "<div class='posterItemText'>";
|
||||
html += LibraryBrowser.getPremiereDateText(item);
|
||||
html += "</div>";
|
||||
lines.push(LibraryBrowser.getPremiereDateText(item));
|
||||
|
||||
} catch (err) {
|
||||
lines.push('');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
html += LibraryBrowser.getPosterItemTextLines(lines, cssClass, !options.overlayText);
|
||||
|
||||
if (options.overlayText) {
|
||||
|
||||
if (progressHtml) {
|
||||
|
@ -847,6 +835,35 @@
|
|||
return html;
|
||||
},
|
||||
|
||||
getPosterItemTextLines: function (lines, cssClass, forceLines) {
|
||||
|
||||
var html = '';
|
||||
|
||||
var valid = 0;
|
||||
var i, length;
|
||||
|
||||
for (i = 0, length = lines.length; i < length; i++) {
|
||||
|
||||
var text = lines[i];
|
||||
|
||||
if (text) {
|
||||
html += "<div class='" + cssClass + "'>";
|
||||
html += text;
|
||||
html += "</div>";
|
||||
valid++;
|
||||
}
|
||||
}
|
||||
|
||||
if (forceLines) {
|
||||
while (valid < length) {
|
||||
html += "<div class='" + cssClass + "'> </div>";
|
||||
valid++;
|
||||
}
|
||||
}
|
||||
|
||||
return html;
|
||||
},
|
||||
|
||||
isYesterday: function (date1) {
|
||||
|
||||
var today = new Date();
|
||||
|
|
|
@ -18,16 +18,12 @@
|
|||
|
||||
var html = '<div class="viewMenuBar ui-bar-b">';
|
||||
|
||||
html += '<button type="button" data-icon="bars" data-iconpos="notext" data-inline="true" title="Menu" class="libraryMenuButton" onclick="LibraryMenu.showLibraryMenu();">Menu</button>';
|
||||
html += '<button type="button" data-icon="bars" data-iconpos="notext" data-inline="true" title="Menu" class="libraryMenuButton" onclick="LibraryMenu.showLibraryMenu();" data-corners="false">Menu</button>';
|
||||
|
||||
html += '<a class="desktopHomeLink" href="index.html"><img src="css/images/mblogoicon.png" /><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a>';
|
||||
html += '<a class="desktopHomeLink" href="index.html"><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a>';
|
||||
|
||||
html += '<a class="viewMenuRemoteControlButton" href="nowplaying.html" data-role="button" data-icon="play" data-inline="true" data-iconpos="notext" title="Now Playing">Remote Control</a>';
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
html += '<a class="editorMenuLink" href="edititemmetadata.html" data-role="button" data-icon="edit" data-inline="true" data-iconpos="notext" title="Metadata Manager">Metadata Manager</a>';
|
||||
}
|
||||
|
||||
html += '<div class="viewMenuSecondary">';
|
||||
|
||||
html += '<button id="btnCast" class="btnCast btnDefaultCast" type="button" data-role="none"></button>';
|
||||
|
@ -59,14 +55,11 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
html += '<div class="desktopLibraryMenu">';
|
||||
html += '</div>';
|
||||
|
||||
var $page = $(page);
|
||||
|
||||
$page.prepend(html);
|
||||
|
||||
$('.viewMenuBar,.desktopLibraryMenu', page).trigger('create');
|
||||
$('.viewMenuBar', page).trigger('create');
|
||||
|
||||
$page.trigger('headercreated');
|
||||
}
|
||||
|
@ -76,7 +69,7 @@
|
|||
return LibraryBrowser.getHref(item);
|
||||
}
|
||||
|
||||
function getViewsHtml(userId, counts, items, liveTvInfo) {
|
||||
function getViewsHtml(user, counts, items, liveTvInfo) {
|
||||
|
||||
var html = '';
|
||||
|
||||
|
@ -89,7 +82,7 @@
|
|||
}).join('');
|
||||
|
||||
var showChannels = counts.ChannelCount;
|
||||
var showLiveTv = liveTvInfo.EnabledUsers.indexOf(userId) != -1;
|
||||
var showLiveTv = liveTvInfo.EnabledUsers.indexOf(user.Id) != -1;
|
||||
|
||||
if (showChannels || showLiveTv) {
|
||||
html += '<div class="libraryMenuDivider"></div>';
|
||||
|
@ -103,6 +96,11 @@
|
|||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder tvshowsViewMenu" data-itemid="livetv" href="livetvsuggested.html">Live TV</a>';
|
||||
}
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
html += '<div class="libraryMenuDivider"></div>';
|
||||
html += '<a class="viewMenuLink viewMenuTextLink lnkMediaFolder tvshowsViewMenu" data-itemid="editor" href="edititemmetadata.html">Metadata Manager</a>';
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
|
@ -110,21 +108,24 @@
|
|||
|
||||
ensurePromises();
|
||||
|
||||
$.when(itemCountsPromise, itemsPromise, liveTvInfoPromise).done(function (response1, response2, response3) {
|
||||
var userPromise = Dashboard.getCurrentUser();
|
||||
|
||||
$.when(itemCountsPromise, itemsPromise, liveTvInfoPromise, userPromise).done(function (response1, response2, response3, response4) {
|
||||
|
||||
var counts = response1[0];
|
||||
var items = response2[0].Items;
|
||||
var liveTvInfo = response3[0];
|
||||
var user = response4[0];
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
|
||||
var panel = getLibraryMenu(page, counts, items, liveTvInfo);
|
||||
var panel = getLibraryMenu(page, user, counts, items, liveTvInfo);
|
||||
|
||||
$(panel).panel('toggle');
|
||||
});
|
||||
}
|
||||
|
||||
function getLibraryMenu(page, counts, items, liveTvInfo) {
|
||||
function getLibraryMenu(page, user, counts, items, liveTvInfo) {
|
||||
|
||||
var panel = $('#libraryPanel', page);
|
||||
|
||||
|
@ -137,7 +138,7 @@
|
|||
html += '<p class="libraryPanelHeader"><a href="index.html" class="imageLink"><img src="css/images/mblogoicon.png" /><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a></p>';
|
||||
|
||||
html += '<div style="margin: 0 -1em;">';
|
||||
html += getViewsHtml(Dashboard.getCurrentUserId(), counts, items, liveTvInfo);
|
||||
html += getViewsHtml(user, counts, items, liveTvInfo);
|
||||
html += '</div>';
|
||||
|
||||
html += '</div>';
|
||||
|
@ -247,20 +248,7 @@
|
|||
|
||||
renderHeader(page, user);
|
||||
|
||||
ensurePromises();
|
||||
|
||||
$.when(itemCountsPromise, itemsPromise, liveTvInfoPromise).done(function (response1, response2, response3) {
|
||||
|
||||
var counts = response1[0];
|
||||
var items = response2[0].Items;
|
||||
var liveTvInfo = response3[0];
|
||||
|
||||
var html = getViewsHtml(user.Id, counts, items, liveTvInfo);
|
||||
$('.desktopLibraryMenu', page).html(html);
|
||||
|
||||
updateLibraryNavLinks(page);
|
||||
|
||||
});
|
||||
updateLibraryNavLinks(page);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -241,13 +241,13 @@
|
|||
pollTasks(page);
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
|
||||
$(ApiClient).on("websocketmessage", onWebSocketMessage).on('websocketopen', function () {
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -411,13 +411,13 @@ $(document).on('pageshow', ".mediaLibraryPage", MediaLibraryPage.onPageShow);
|
|||
pollTasks(page);
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
|
||||
$(ApiClient).on("websocketmessage", onWebSocketMessage).on('websocketopen', function () {
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
var lastPlayerState;
|
||||
var isPositionSliderActive;
|
||||
|
||||
function showAudioMenu(page, item) {
|
||||
function showAudioMenu(page, item, currentIndex) {
|
||||
|
||||
var streams = (item.MediaStreams || []).filter(function (i) {
|
||||
|
||||
|
@ -17,7 +17,13 @@
|
|||
|
||||
html += streams.map(function (s) {
|
||||
|
||||
var streamHtml = '<li><a data-index="' + s.Index + '" href="#" style="font-size:15px;" class="lnkTrackOption"><h3>';
|
||||
var streamHtml = '<li><a data-index="' + s.Index + '" href="#" class="lnkTrackOption">';
|
||||
|
||||
streamHtml += '<h3>';
|
||||
|
||||
if (s.Index == currentIndex) {
|
||||
streamHtml += '<img src="css/images/checkmarkgreen.png" style="width:18px;border-radius:3px;margin-right:.5em;vertical-align:top;" />';
|
||||
}
|
||||
|
||||
streamHtml += (s.Codec || '').toUpperCase();
|
||||
|
||||
|
@ -53,13 +59,15 @@
|
|||
|
||||
html += '</ul>';
|
||||
|
||||
$('.trackList', elem).html(html).listview('refresh').trigger('create');
|
||||
$('.trackList', elem).html(html).trigger('create');
|
||||
|
||||
elem.popup('open');
|
||||
}
|
||||
|
||||
function showSubtitleMenu(page, item) {
|
||||
function showSubtitleMenu(page, item, currentIndex) {
|
||||
|
||||
var currentStreamImage = '<img src="css/images/checkmarkgreen.png" style="width:18px;border-radius:3px;margin-right:.5em;vertical-align:top;" />';
|
||||
|
||||
var streams = (item.MediaStreams || []).filter(function (i) {
|
||||
|
||||
return i.Type == 'Subtitle';
|
||||
|
@ -67,13 +75,26 @@
|
|||
|
||||
var elem = $('#popupSubtitleTrackMenu', page);
|
||||
|
||||
var html = '<li data-role="list-divider">Select Subtitles</li>';
|
||||
var html = '<ul data-role="listview" data-inset="true" style="min-width: 210px;"><li data-role="list-divider">Select Subtitles</li>';
|
||||
|
||||
html += '<li><a href="#" style="font-size:15px;" data-index="-1" class="lnkTrackOption"><h3>Off</h3></a></li>';
|
||||
html += '<li><a href="#" data-index="-1" class="lnkTrackOption"><h3>';
|
||||
|
||||
if (currentIndex == null) {
|
||||
html += currentStreamImage;
|
||||
}
|
||||
|
||||
html += 'Off';
|
||||
html += '</h3></a></li>';
|
||||
|
||||
html += streams.map(function (s) {
|
||||
|
||||
var streamHtml = '<li><a data-index="' + s.Index + '" href="#" style="font-size:15px;" class="lnkTrackOption"><h3>';
|
||||
var streamHtml = '<li><a data-index="' + s.Index + '" href="#" class="lnkTrackOption">';
|
||||
|
||||
streamHtml += '<h3>';
|
||||
|
||||
if (s.Index == currentIndex) {
|
||||
streamHtml += currentStreamImage;
|
||||
}
|
||||
|
||||
streamHtml += (s.Language || 'Unknown language');
|
||||
|
||||
|
@ -97,7 +118,9 @@
|
|||
|
||||
}).join('');
|
||||
|
||||
$('.trackList', elem).html(html).listview('refresh').trigger('create');
|
||||
html += '</ul>';
|
||||
|
||||
$('.trackList', elem).html(html).trigger('create');
|
||||
|
||||
elem.popup('open');
|
||||
}
|
||||
|
@ -150,15 +173,19 @@
|
|||
|
||||
$('.btnAudioTracks', page).on('click', function () {
|
||||
|
||||
if (currentPlayer && lastPlayerState) {
|
||||
showAudioMenu(page, lastPlayerState.NowPlayingItem);
|
||||
if (currentPlayer && lastPlayerState && lastPlayerState.PlayState) {
|
||||
|
||||
var currentIndex = lastPlayerState.PlayState.AudioStreamIndex;
|
||||
showAudioMenu(page, lastPlayerState.NowPlayingItem, currentIndex);
|
||||
}
|
||||
});
|
||||
|
||||
$('.btnSubtitles', page).on('click', function () {
|
||||
|
||||
if (currentPlayer && lastPlayerState) {
|
||||
showSubtitleMenu(page, lastPlayerState.NowPlayingItem);
|
||||
if (currentPlayer && lastPlayerState && lastPlayerState.PlayState) {
|
||||
|
||||
var currentIndex = lastPlayerState.PlayState.SubtitleStreamIndex;
|
||||
showSubtitleMenu(page, lastPlayerState.NowPlayingItem, currentIndex);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -1,25 +1,12 @@
|
|||
(function ($, document, window) {
|
||||
|
||||
function reloadList(page, updateInterval) {
|
||||
|
||||
if (updateInterval) {
|
||||
stopInterval();
|
||||
}
|
||||
function reloadList(page) {
|
||||
|
||||
ApiClient.getScheduledTasks({isHidden: false}).done(function (tasks) {
|
||||
|
||||
if (updateInterval) {
|
||||
populateList(page, tasks);
|
||||
} else {
|
||||
updateTasks(page, tasks);
|
||||
}
|
||||
populateList(page, tasks);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
if (updateInterval) {
|
||||
startInterval();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -173,13 +160,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
function onWebSocketConnectionChange() {
|
||||
reloadList($.mobile.activePage, true);
|
||||
function onWebSocketConnectionOpen() {
|
||||
|
||||
startInterval();
|
||||
reloadList($.mobile.activePage);
|
||||
}
|
||||
|
||||
function startInterval() {
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1500,1500");
|
||||
ApiClient.sendWebSocketMessage("ScheduledTasksInfoStart", "1000,1000");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -195,9 +184,10 @@
|
|||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
reloadList(page, true);
|
||||
startInterval();
|
||||
reloadList(page);
|
||||
|
||||
$(ApiClient).on("websocketmessage", onWebSocketMessage).on("websocketopen", onWebSocketConnectionChange);
|
||||
$(ApiClient).on("websocketmessage", onWebSocketMessage).on("websocketopen", onWebSocketConnectionOpen);
|
||||
|
||||
$('#divScheduledTasks', page).on('click', '.btnStartTask', function () {
|
||||
|
||||
|
@ -224,7 +214,7 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
$(ApiClient).off("websocketmessage", onWebSocketMessage).off("websocketopen", onWebSocketConnectionChange).off("websocketerror", onWebSocketConnectionChange).off("websocketclose", onWebSocketConnectionChange);
|
||||
$(ApiClient).off("websocketmessage", onWebSocketMessage).off("websocketopen", onWebSocketConnectionOpen);
|
||||
stopInterval();
|
||||
|
||||
$('#divScheduledTasks', page).off('click', '.btnStartTask').off('click', '.btnStopTask');
|
||||
|
|
|
@ -221,7 +221,7 @@ var Dashboard = {
|
|||
if (!Dashboard.installRefreshInterval) {
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("SystemInfoStart", "0,350");
|
||||
ApiClient.sendWebSocketMessage("SystemInfoStart", "0,500");
|
||||
}
|
||||
Dashboard.installRefreshInterval = 1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue