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

View File

@ -60,7 +60,7 @@
</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>
<div class="activeDevices">
</div>

View File

@ -150,7 +150,7 @@
<ul data-role="listview" class="ulForm">
<li>
<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>
<label for="txtInfoManufacturer">Manufacturer</label>

View File

@ -20,17 +20,17 @@
<div class="tabNowPlaying tabContent">
<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="pause" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnPause btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button>
<button data-icon="play" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnPlay btnPlayStateCommand" data-command="GoHome">${ButtonHome}</button>
<button data-icon="stop" data-inline="true" data-iconpos="notext" title="${ButtonHome}" class="btnStop btnPlayStateCommand" data-command="GoHome">${ButtonHome}</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="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="${ButtonPause}" class="btnPause btnPlayStateCommand" data-command="GoHome">${ButtonPause}</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="${ButtonStop}" class="btnStop btnPlayStateCommand" data-command="GoHome">${ButtonStop}</button>
<button data-icon="next-track" data-inline="true" data-iconpos="notext" title="${ButtonNextTrack}" class="btnNextTrack btnPlayStateCommand" data-command="GoToSearch">${ButtonNextTrack}</button>
</div>
<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="subtitles" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnSubtitles btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button>
<button data-icon="video" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnChapters btnPlayStateCommand" data-command="GoToSearch">${ButtonSearch}</button>
<button data-icon="expand" data-inline="true" data-iconpos="notext" title="${ButtonSearch}" class="btnToggleFullscreen btnPlayStateCommand" data-command="ToggleFullscreen">${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="${ButtonSubtitles}" class="btnSubtitles btnPlayStateCommand" data-command="GoToSearch">${ButtonSubtitles}</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="${ButtonFullscreen}" class="btnToggleFullscreen btnPlayStateCommand" data-command="ToggleFullscreen">${ButtonFullscreen}</button>
</div>
</div>

View File

@ -587,7 +587,7 @@
this.timer = setInterval(this.incrementMediaTimeHandler, this.timerStep);
};
var castPlayer = new CastPlayer();
//var castPlayer = new CastPlayer();
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) {
castPlayer.launchApp();
}
}
});
// if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) {
// castPlayer.launchApp();
// }
// }
//});
})(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="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) {
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",
Recursive: true,
Fields: "PrimaryImageAspectRatio",
StartIndex: 0,
CollapseBoxSetItems: true
StartIndex: 0
};
function reloadItems(page) {

View File

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

View File

@ -89,9 +89,9 @@
$('.btnToggleFullscreen', page).buttonEnabled(item && item.MediaType == 'Video' && supportedCommands.indexOf('ToggleFullscreen') != -1);
$('.btnAudioTracks', page).buttonEnabled(item != null);
$('.btnSubtitles', page).buttonEnabled(item != null);
$('.btnChapters', page).buttonEnabled(item != null);
$('.btnAudioTracks', page).buttonEnabled(false);
$('.btnSubtitles', page).buttonEnabled(false);
$('.btnChapters', page).buttonEnabled(false);
$('.btnStop', page).buttonEnabled(item != null);
$('.btnNextTrack', page).buttonEnabled(item != null);
@ -142,7 +142,7 @@
player.getPlayerState().done(function (state) {
if (state.itemName) {
if (state.NowPlayingItem) {
player.beginPlayerUpdates();
}
@ -168,6 +168,13 @@
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 () {
$(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 () {
releaseCurrentPlayer();

View File

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

View File

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

View File

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

View File

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