1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

3.0.5231.40980

This commit is contained in:
Luke Pulverenti 2014-04-28 23:56:20 -04:00
parent ee5eefb01e
commit 8a5cd4b491
13 changed files with 68 additions and 42 deletions

View file

@ -856,7 +856,7 @@ progress {
.activeSession { .activeSession {
display: inline-block; display: inline-block;
position: relative; position: relative;
margin: 5px; margin: 4px;
width: 275px; width: 275px;
height: 154.6875px; height: 154.6875px;
} }
@ -934,13 +934,18 @@ progress {
z-index: 1000; z-index: 1000;
} }
.activeDevicesCollapsible .ui-collapsible-content {
padding: .25em!important;
}
.activeSession:not(.playingSession) .sessionNowPlayingContent { .activeSession:not(.playingSession) .sessionNowPlayingContent {
display: none; display: none;
} }
.activeSession:not(.playingSession) .sessionNowPlayingInnerContent { .activeSession:not(.playingSession) .sessionNowPlayingInnerContent {
background-color: #f0f0f0; background-color: #fff;
color: #000; color: #000;
border: 1px solid #ddd;
} }
.activeSession:not(.playingSession) .sessionUserInfo, .activeSession:not(.playingSession) .sessionNowPlayingInfo { .activeSession:not(.playingSession) .sessionUserInfo, .activeSession:not(.playingSession) .sessionNowPlayingInfo {

View file

@ -60,7 +60,7 @@
</div> </div>
</div> </div>
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;"> <div class="activeDevicesCollapsible" data-role="collapsible" data-collapsed="false" data-content-theme="false" style="margin-top: 2em;">
<h3>${HeaderActiveDevices}</h3> <h3>${HeaderActiveDevices}</h3>
<div class="activeDevices"> <div class="activeDevices">
</div> </div>

View file

@ -150,7 +150,7 @@
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">
<li> <li>
<label for="txtInfoFriendlyName">Friendly name</label> <label for="txtInfoFriendlyName">Friendly name</label>
<input type="text" id="txtInfoFriendlyName" data-mini="true" /> <input type="text" id="txtInfoFriendlyName" data-mini="true" required="required" />
</li> </li>
<li> <li>
<label for="txtInfoManufacturer">Manufacturer</label> <label for="txtInfoManufacturer">Manufacturer</label>

View file

@ -20,17 +20,17 @@
<div class="tabNowPlaying tabContent"> <div class="tabNowPlaying tabContent">
<div data-role="controlgroup" data-type="horizontal"> <div data-role="controlgroup" data-type="horizontal">
<button data-icon="previous-track" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnPreviousTrack btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button> <button data-icon="previous-track" data-inline="true" data-iconpos="notext" title="${ButtonPreviousTrack}" class="btnPreviousTrack btnPlayStateCommand" data-command="GoHome">${ButtonPreviousTrack}</button>
<button data-icon="pause" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnPause btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button> <button data-icon="pause" data-inline="true" data-iconpos="notext" title="${ButtonPause}" class="btnPause btnPlayStateCommand" data-command="GoHome">${ButtonPause}</button>
<button data-icon="play" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnPlay btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button> <button data-icon="play" data-inline="true" data-iconpos="notext" title="${ButtonPlay}" class="btnPlay btnPlayStateCommand" data-command="GoHome">${ButtonPlay}</button>
<button data-icon="stop" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnStop btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button> <button data-icon="stop" data-inline="true" data-iconpos="notext" title="${ButtonStop}" class="btnStop btnPlayStateCommand" data-command="GoHome">${ButtonStop}</button>
<button data-icon="next-track" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnNextTrack btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button> <button data-icon="next-track" data-inline="true" data-iconpos="notext" title="${ButtonNextTrack}" class="btnNextTrack btnPlayStateCommand" data-command="GoToSearch">${ButtonNextTrack}</button>
</div> </div>
<div data-role="controlgroup" data-type="horizontal"> <div data-role="controlgroup" data-type="horizontal">
<button data-icon="audiocd" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnAudioTracks btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button> <button data-icon="audiocd" data-inline="true" data-iconpos="notext" title="${ButtonAudioTracks}" class="btnAudioTracks btnPlayStateCommand" data-command="GoToSearch">${ButtonAudioTracks}</button>
<button data-icon="subtitles" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnSubtitles btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button> <button data-icon="subtitles" data-inline="true" data-iconpos="notext" title="${ButtonSubtitles}" class="btnSubtitles btnPlayStateCommand" data-command="GoToSearch">${ButtonSubtitles}</button>
<button data-icon="video" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnChapters btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button> <button data-icon="video" data-inline="true" data-iconpos="notext" title="${ButtonScenes}" class="btnChapters btnPlayStateCommand" data-command="GoToSearch">${ButtonScenes}</button>
<button data-icon="expand" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnToggleFullscreen btnPlayStateCommand" data-command="ToggleFullscreen">${ButtonSearch}</button> <button data-icon="expand" data-inline="true" data-iconpos="notext" title="${ButtonFullscreen}" class="btnToggleFullscreen btnPlayStateCommand" data-command="ToggleFullscreen">${ButtonFullscreen}</button>
</div> </div>
</div> </div>

View file

@ -587,7 +587,7 @@
this.timer = setInterval(this.incrementMediaTimeHandler, this.timerStep); this.timer = setInterval(this.incrementMediaTimeHandler, this.timerStep);
}; };
var castPlayer = new CastPlayer(); //var castPlayer = new CastPlayer();
function getCodecLimits() { function getCodecLimits() {
@ -1477,16 +1477,16 @@
}; };
} }
MediaController.registerPlayer(new chromecastPlayer()); //MediaController.registerPlayer(new chromecastPlayer());
$(MediaController).on('playerchange', function () { //$(MediaController).on('playerchange', function () {
if (MediaController.getPlayerInfo().name == PlayerName) { // if (MediaController.getPlayerInfo().name == PlayerName) {
if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) { // if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) {
castPlayer.launchApp(); // castPlayer.launchApp();
} // }
} // }
}); //});
})(window, window.chrome, console); })(window, window.chrome, console);

View file

@ -16,7 +16,7 @@
html += '<a class="desktopHomeLink" href="index.html"><img src="css/images/mblogoicon.png" /></a>'; html += '<a class="desktopHomeLink" href="index.html"><img src="css/images/mblogoicon.png" /></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>'; html += '<a class="viewMenuRemoteControlButton" href="nowplaying.html" data-role="button" data-icon="play" data-inline="true" data-iconpos="notext" title="Now Playing" style="display:none;">Remote Control</a>';
if (user.Configuration.IsAdministrator) { 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 += '<a class="editorMenuLink" href="edititemmetadata.html" data-role="button" data-icon="edit" data-inline="true" data-iconpos="notext" title="Metadata Manager">Metadata Manager</a>';

View file

@ -10,8 +10,7 @@
IncludeItemTypes: "Movie", IncludeItemTypes: "Movie",
Recursive: true, Recursive: true,
Fields: "PrimaryImageAspectRatio", Fields: "PrimaryImageAspectRatio",
StartIndex: 0, StartIndex: 0
CollapseBoxSetItems: true
}; };
function reloadItems(page) { function reloadItems(page) {

View file

@ -388,7 +388,7 @@
player.getPlayerState().done(function (state) { player.getPlayerState().done(function (state) {
if (state.itemName) { if (state.NowPlayingItem) {
player.beginPlayerUpdates(); player.beginPlayerUpdates();
} }

View file

@ -89,9 +89,9 @@
$('.btnToggleFullscreen', page).buttonEnabled(item && item.MediaType == 'Video' && supportedCommands.indexOf('ToggleFullscreen') != -1); $('.btnToggleFullscreen', page).buttonEnabled(item && item.MediaType == 'Video' && supportedCommands.indexOf('ToggleFullscreen') != -1);
$('.btnAudioTracks', page).buttonEnabled(item != null); $('.btnAudioTracks', page).buttonEnabled(false);
$('.btnSubtitles', page).buttonEnabled(item != null); $('.btnSubtitles', page).buttonEnabled(false);
$('.btnChapters', page).buttonEnabled(item != null); $('.btnChapters', page).buttonEnabled(false);
$('.btnStop', page).buttonEnabled(item != null); $('.btnStop', page).buttonEnabled(item != null);
$('.btnNextTrack', page).buttonEnabled(item != null); $('.btnNextTrack', page).buttonEnabled(item != null);
@ -142,7 +142,7 @@
player.getPlayerState().done(function (state) { player.getPlayerState().done(function (state) {
if (state.itemName) { if (state.NowPlayingItem) {
player.beginPlayerUpdates(); player.beginPlayerUpdates();
} }
@ -168,6 +168,13 @@
bindEvents(page); bindEvents(page);
}).on('pageshow', "#nowPlayingPage", function () {
var page = this;
$('.radioTabButton', page).checked(false).checkboxradio('refresh');
$('.radioTabButton:first', page).checked(true).checkboxradio('refresh').trigger('change');
$(function () { $(function () {
$(MediaController).on('playerchange.nowplayingpage', function () { $(MediaController).on('playerchange.nowplayingpage', function () {
@ -179,13 +186,6 @@
}); });
}).on('pageshow', "#nowPlayingPage", function () {
var page = this;
$('.radioTabButton', page).checked(false).checkboxradio('refresh');
$('.radioTabButton:first', page).checked(true).checkboxradio('refresh').trigger('change');
}).on('pagehide', "#nowPlayingPage", function () { }).on('pagehide', "#nowPlayingPage", function () {
releaseCurrentPlayer(); releaseCurrentPlayer();

View file

@ -167,16 +167,20 @@
return deferred.promise(); return deferred.promise();
}; };
function subscribeToPlayerUpdates() { self.subscribeToPlayerUpdates = function () {
self.isUpdating = true;
if (ApiClient.isWebSocketOpen()) { if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("SessionsStart", "100,700"); ApiClient.sendWebSocketMessage("SessionsStart", "100,900");
}
} }
};
function unsubscribeFromPlayerUpdates() { function unsubscribeFromPlayerUpdates() {
self.false = true;
if (ApiClient.isWebSocketOpen()) { if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("SessionsStop"); ApiClient.sendWebSocketMessage("SessionsStop");
@ -190,7 +194,7 @@
playerListenerCount = 0; playerListenerCount = 0;
subscribeToPlayerUpdates(); self.subscribeToPlayerUpdates();
} }
playerListenerCount++; playerListenerCount++;
@ -259,6 +263,14 @@
$(player).trigger(name, [getPlayerState(session)]); $(player).trigger(name, [getPlayerState(session)]);
} }
function onWebSocketConnectionChange() {
// Reconnect
if (player.isUpdating) {
player.subscribeToPlayerUpdates();
}
}
function onWebSocketMessageReceived(e, msg) { function onWebSocketMessageReceived(e, msg) {
if (msg.MessageType === "Sessions") { if (msg.MessageType === "Sessions") {
@ -291,6 +303,6 @@
} }
} }
$(ApiClient).on("websocketmessage", onWebSocketMessageReceived); $(ApiClient).on("websocketmessage", onWebSocketMessageReceived).on("websocketopen", onWebSocketConnectionChange);
})(window, document, jQuery); })(window, document, jQuery);

View file

@ -33,6 +33,8 @@
$('#chkDisplayMissingEpisodes', page).checked(user.Configuration.DisplayMissingEpisodes || false).checkboxradio("refresh"); $('#chkDisplayMissingEpisodes', page).checked(user.Configuration.DisplayMissingEpisodes || false).checkboxradio("refresh");
$('#chkDisplayUnairedEpisodes', page).checked(user.Configuration.DisplayUnairedEpisodes || false).checkboxradio("refresh"); $('#chkDisplayUnairedEpisodes', page).checked(user.Configuration.DisplayUnairedEpisodes || false).checkboxradio("refresh");
$('#chkGroupMoviesIntoCollections', page).checked(user.Configuration.GroupMoviesIntoBoxSets || false).checkboxradio("refresh");
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
} }
@ -58,6 +60,7 @@
user.Configuration.UseForcedSubtitlesOnly = $('#chkForcedSubtitlesOnly', page).checked(); user.Configuration.UseForcedSubtitlesOnly = $('#chkForcedSubtitlesOnly', page).checked();
user.Configuration.DisplayMissingEpisodes = $('#chkDisplayMissingEpisodes', page).checked(); user.Configuration.DisplayMissingEpisodes = $('#chkDisplayMissingEpisodes', page).checked();
user.Configuration.DisplayUnairedEpisodes = $('#chkDisplayUnairedEpisodes', page).checked(); user.Configuration.DisplayUnairedEpisodes = $('#chkDisplayUnairedEpisodes', page).checked();
user.Configuration.GroupMoviesIntoBoxSets = $('#chkGroupMoviesIntoCollections', page).checked();
ApiClient.updateUser(user).done(function () { ApiClient.updateUser(user).done(function () {
onSaveComplete(page); onSaveComplete(page);

View file

@ -182,6 +182,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
self.sendWebSocketMessage = function (name, data) { self.sendWebSocketMessage = function (name, data) {
console.log('Sending web socket message: ' + name);
var msg = { MessageType: name }; var msg = { MessageType: name };
if (data) { if (data) {

View file

@ -25,6 +25,11 @@
<input type="checkbox" id="chkDisplayUnairedEpisodes" data-mini="true" /> <input type="checkbox" id="chkDisplayUnairedEpisodes" data-mini="true" />
<label for="chkDisplayUnairedEpisodes">${LabelUnairedMissingEpisodesWithinSeasons}</label> <label for="chkDisplayUnairedEpisodes">${LabelUnairedMissingEpisodesWithinSeasons}</label>
</div> </div>
<div>
<input type="checkbox" id="chkGroupMoviesIntoCollections" data-mini="true" />
<label for="chkGroupMoviesIntoCollections">${LabelGroupMoviesIntoCollections}</label>
<div class="fieldDescription">${LabelGroupMoviesIntoCollectionsHelp}</div>
</div>
<br /> <br />
<h2>${HeaderVideoPlaybackSettings}</h2> <h2>${HeaderVideoPlaybackSettings}</h2>
<ul data-role="listview" class="ulForm"> <ul data-role="listview" class="ulForm">