mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
dlna fixes
This commit is contained in:
parent
ec163807cf
commit
99aed936db
7 changed files with 113 additions and 57 deletions
|
@ -2,18 +2,8 @@
|
|||
width: 250px;
|
||||
}
|
||||
|
||||
.searchPanel + .ui-panel-dismiss {
|
||||
right: 250px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 600px) {
|
||||
.searchPanel {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.searchPanel + .ui-panel-dismiss {
|
||||
right: 300px;
|
||||
}
|
||||
.searchPanelModelOpen {
|
||||
right: 250px!important;
|
||||
}
|
||||
|
||||
.searchHints {
|
||||
|
|
|
@ -953,6 +953,20 @@ progress {
|
|||
box-shadow: 0 0 20px 1px #38c;
|
||||
}
|
||||
|
||||
.sessionNowPlayingTime {
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 15px;
|
||||
}
|
||||
|
||||
.sessionNowPlayingStreamInfo {
|
||||
color: #fff;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
@media all and (max-width: 1000px) {
|
||||
|
||||
.activeSession {
|
||||
|
|
|
@ -280,7 +280,11 @@
|
|||
|
||||
html += '</div>';
|
||||
|
||||
html += '<div class="posterItemOverlayTarget"></div>';
|
||||
html += '<div class="posterItemOverlayTarget">';
|
||||
|
||||
html += '<div class="sessionNowPlayingStreamInfo">' + DashboardPage.getSessionNowPlayingStreamInfo(connection) + '</div>';
|
||||
html += '<div class="sessionNowPlayingTime">' + DashboardPage.getSessionNowPlayingTime(connection) + '</div>';
|
||||
html += '</div>';
|
||||
|
||||
html += '</div>';
|
||||
|
||||
|
@ -291,6 +295,50 @@
|
|||
$('.deadSession', parentElement).remove();
|
||||
},
|
||||
|
||||
getSessionNowPlayingStreamInfo: function (session) {
|
||||
|
||||
var html = '';
|
||||
|
||||
html += '<div>';
|
||||
|
||||
if (session.PlayState.PlayMethod == 'Transcode') {
|
||||
html += 'Transcoding';
|
||||
}
|
||||
else if (session.PlayState.PlayMethod == 'DirectStream') {
|
||||
html += 'Direct Streaming';
|
||||
}
|
||||
else if (session.PlayState.PlayMethod == 'DirectPlay') {
|
||||
html += 'Direct Playing';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
||||
return html;
|
||||
},
|
||||
|
||||
getSessionNowPlayingTime: function (session) {
|
||||
|
||||
var html = '';
|
||||
|
||||
if (session.PlayState.PositionTicks) {
|
||||
html += Dashboard.getDisplayTime(session.PlayState.PositionTicks);
|
||||
} else {
|
||||
html += '--:--:--';
|
||||
}
|
||||
|
||||
html += ' / ';
|
||||
|
||||
var nowPlayingItem = session.NowPlayingItem;
|
||||
|
||||
if (nowPlayingItem && nowPlayingItem.RunTimeTicks) {
|
||||
html += Dashboard.getDisplayTime(nowPlayingItem.RunTimeTicks);
|
||||
} else {
|
||||
html += '--:--:--';
|
||||
}
|
||||
|
||||
return html;
|
||||
},
|
||||
|
||||
getAppSecondaryText: function (session) {
|
||||
|
||||
return session.ApplicationVersion;
|
||||
|
@ -405,6 +453,9 @@
|
|||
row.removeClass('playingSession');
|
||||
}
|
||||
|
||||
$('.sessionNowPlayingStreamInfo', row).html(DashboardPage.getSessionNowPlayingStreamInfo(session));
|
||||
$('.sessionNowPlayingTime', row).html(DashboardPage.getSessionNowPlayingTime(session));
|
||||
|
||||
$('.sessionUserName', row).html(DashboardPage.getUsersHtml(session));
|
||||
|
||||
$('.sessionAppSecondaryText', row).html(DashboardPage.getAppSecondaryText(session));
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
|
||||
})[0];
|
||||
|
||||
typeName = typeName ? typeName.name : "General or mixed content";
|
||||
typeName = typeName ? typeName.name : "Mixed movies & tv";
|
||||
|
||||
html += '<p style="padding-left:.5em;">Folder type: <b>' + typeName + '</b></p>';
|
||||
|
||||
|
|
|
@ -62,9 +62,6 @@
|
|||
|
||||
if (currentPlayer) {
|
||||
currentPlayer.unMute();
|
||||
|
||||
$(this).hide();
|
||||
$('.muteButton', elem).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -72,9 +69,6 @@
|
|||
|
||||
if (currentPlayer) {
|
||||
currentPlayer.mute();
|
||||
|
||||
$(this).hide();
|
||||
$('.unmuteButton', elem).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -89,9 +83,6 @@
|
|||
|
||||
if (currentPlayer) {
|
||||
currentPlayer.pause();
|
||||
|
||||
$(this).hide();
|
||||
$('.unpauseButton', elem).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -99,9 +90,6 @@
|
|||
|
||||
if (currentPlayer) {
|
||||
currentPlayer.unpause();
|
||||
|
||||
$(this).hide();
|
||||
$('.pauseButton', elem).show();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -164,6 +152,14 @@
|
|||
return elem;
|
||||
}
|
||||
|
||||
function showButton(button) {
|
||||
button.removeClass('hide');
|
||||
}
|
||||
|
||||
function hideButton(button) {
|
||||
button.addClass('hide');
|
||||
}
|
||||
|
||||
function updatePlayerState(state) {
|
||||
|
||||
if (state.itemName) {
|
||||
|
@ -203,24 +199,24 @@
|
|||
|
||||
if (state.isMuted) {
|
||||
|
||||
muteButton.hide();
|
||||
unmuteButton.show();
|
||||
hideButton(muteButton);
|
||||
showButton(unmuteButton);
|
||||
|
||||
} else {
|
||||
|
||||
muteButton.show();
|
||||
unmuteButton.hide();
|
||||
showButton(muteButton);
|
||||
hideButton(unmuteButton);
|
||||
}
|
||||
|
||||
if (state.isPaused) {
|
||||
|
||||
pauseButton.hide();
|
||||
unpauseButton.show();
|
||||
hideButton(pauseButton);
|
||||
showButton(unpauseButton);
|
||||
|
||||
} else {
|
||||
|
||||
pauseButton.show();
|
||||
unpauseButton.hide();
|
||||
showButton(pauseButton);
|
||||
hideButton(unpauseButton);
|
||||
}
|
||||
|
||||
if (!isVolumeSliderActive) {
|
||||
|
@ -320,6 +316,8 @@
|
|||
|
||||
function onPlaybackStart(e, state) {
|
||||
|
||||
console.log('nowplaying event: ' + e.type);
|
||||
|
||||
var player = this;
|
||||
|
||||
player.beginPlayerUpdates();
|
||||
|
@ -343,6 +341,7 @@
|
|||
|
||||
function onPlaybackStopped(e, state) {
|
||||
|
||||
console.log('nowplaying event: ' + e.type);
|
||||
var player = this;
|
||||
|
||||
player.endPlayerUpdates();
|
||||
|
@ -352,6 +351,7 @@
|
|||
|
||||
function onStateChanged(e, state) {
|
||||
|
||||
//console.log('nowplaying event: ' + e.type);
|
||||
var player = this;
|
||||
|
||||
if (player.isDefaultPlayer && state.mediaType == 'Video') {
|
||||
|
@ -385,7 +385,7 @@
|
|||
player.beginPlayerUpdates();
|
||||
}
|
||||
|
||||
onStateChanged.call(player, null, state);
|
||||
onStateChanged.call(player, {type: 'init'}, state);
|
||||
});
|
||||
|
||||
$(player).on('playbackstart.nowplayingbar', onPlaybackStart)
|
||||
|
|
|
@ -230,7 +230,7 @@
|
|||
|
||||
$(page).append(html);
|
||||
|
||||
panel = $('#searchPanel', page).panel({}).trigger('create');
|
||||
panel = $('#searchPanel', page).panel({}).panel('option', 'classes.modalOpen', 'searchPanelModelOpen ui-panel-dismiss-open').trigger('create');
|
||||
|
||||
$('#txtSearch', panel).on("keyup", function (e) {
|
||||
|
||||
|
|
|
@ -20,17 +20,18 @@
|
|||
<form id="supporterKeyForm">
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtSupporterKey">MB3 Supporter Key (paste from email)</label>
|
||||
<label for="txtSupporterKey">${LabelSupporterKey}</label>
|
||||
<input type="password" id="txtSupporterKey" name="txtSupporterKey" data-inline="true" />
|
||||
<div class="fieldDescription">
|
||||
Enter your supporter key to start enjoying additional benefits the community has developed for Media Browser. <strong>MB3 keys only.</strong>
|
||||
${LabelSupporterKeyHelp}
|
||||
</div>
|
||||
|
||||
<p style="display: none; padding: 1em; border-radius: 5px; font-weight: normal;" class="ui-bar-a notSupporter">
|
||||
<strong>MB3 Key Missing or Invalid</strong> - in order for any premium content to be registered, you must also be an MB3 Supporter.
|
||||
Please <a href="supporter.html">donate</a> and support the continued development of the core product. Thank you.
|
||||
|
||||
<div style="display: none; padding: 1em; margin-top: 1em; border-radius: 5px; font-weight: normal;" class="ui-bar-a notSupporter">
|
||||
<p><strong>${MessageInvalidKey}</strong></p>
|
||||
<p>
|
||||
${ErrorMessageInvalidKey}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="margin: 2em 0;">
|
||||
|
@ -48,16 +49,16 @@
|
|||
</form>
|
||||
<br />
|
||||
<div data-role="collapsible">
|
||||
<h3>Lost Key</h3>
|
||||
<h3>${HeaderForgotKey}</h3>
|
||||
<div>
|
||||
<form id="lostKeyForm">
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtEmail">Email Address</label>
|
||||
<label for="txtEmail">${LabelEmailAddress}</label>
|
||||
<input type="email" required id="txtEmail" name="txtEmail" />
|
||||
<div class="fieldDescription">The email address that was used to purchase the key.</div>
|
||||
<div class="fieldDescription">${LabelSupporterEmailAddress}</div>
|
||||
</div>
|
||||
<p>
|
||||
<button type="submit" id="mbRetrieveKeyBtn" data-icon="action" data-theme="b">Retrieve Key</button>
|
||||
<button type="submit" id="mbRetrieveKeyBtn" data-icon="action" data-theme="b">${ButtonRetrieveKey}</button>
|
||||
|
||||
</p>
|
||||
</form>
|
||||
|
@ -65,31 +66,31 @@
|
|||
</div>
|
||||
|
||||
<div data-role="collapsible">
|
||||
<h3>Multiple Key Linking</h3>
|
||||
<h3>${HeaderMultipleKeyLinking}</h3>
|
||||
<div>
|
||||
|
||||
<form id="linkKeysForm">
|
||||
<p>
|
||||
If you have more than one supporter key, use this form to link the old key's registrations with your new one.
|
||||
${MultipleKeyLinkingHelp}
|
||||
</p>
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtEmail">Current Email Address</label>
|
||||
<label for="txtEmail">${LabelCurrentEmailAddress}</label>
|
||||
<input type="email" required id="txtNewEmail" name="txtNewEmail" />
|
||||
<div class="fieldDescription">
|
||||
The current email address to which your new key was sent.
|
||||
${LabelCurrentEmailAddressHelp}
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<label for="txtNewKey">New Supporter Key</label>
|
||||
<label for="txtNewKey">${LabelNewSupporterKey}</label>
|
||||
<input type="password" required="required" id="txtNewKey" name="txtNewKey" />
|
||||
</p>
|
||||
<p>
|
||||
|
||||
<label for="txtOldKey">Old Supporter Key</label>
|
||||
<label for="txtOldKey">${LabelOldSupporterKey}</label>
|
||||
<input type="password" required="required" id="txtOldKey" name="txtOldKey" />
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit" id="mbLinkKeysBtn" data-icon="check" data-theme="b">Link Keys</button>
|
||||
<button type="submit" id="mbLinkKeysBtn" data-icon="check" data-theme="b">${ButtonLinkKeys}</button>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue