mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Fix breakage on remote sessions and address review comments
This commit is contained in:
parent
8d31d507c2
commit
6325046b96
6 changed files with 25 additions and 21 deletions
|
@ -154,6 +154,10 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.layout-desktop .nowPlayingBarRight .playPauseButton {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.layout-mobile .nowPlayingBarRight input,
|
.layout-mobile .nowPlayingBarRight input,
|
||||||
.layout-mobile .nowPlayingBarRight div {
|
.layout-mobile .nowPlayingBarRight div {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -196,8 +196,8 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
playbackManager.setRepeatMode('RepeatNone');
|
playbackManager.setRepeatMode('RepeatNone');
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
case 'RepeatNone':
|
||||||
playbackManager.setRepeatMode('RepeatAll');
|
playbackManager.setRepeatMode('RepeatAll');
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -371,12 +371,11 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
toggleRepeatButtonIcon.classList.add('repeat_one');
|
toggleRepeatButtonIcon.classList.add('repeat_one');
|
||||||
toggleRepeatButton.classList.add(cssClass);
|
toggleRepeatButton.classList.add(cssClass);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
case 'RepeatNone':
|
case 'RepeatNone':
|
||||||
toggleRepeatButtonIcon.classList.add('repeat');
|
toggleRepeatButtonIcon.classList.add('repeat');
|
||||||
toggleRepeatButton.classList.remove(cssClass);
|
toggleRepeatButton.classList.remove(cssClass);
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
throw new TypeError('invalid value for repeatMode');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -633,17 +632,17 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
function onQueueShuffleModeChange() {
|
function onQueueShuffleModeChange() {
|
||||||
let shuffleMode = playbackManager.getQueueShuffleMode();
|
let shuffleMode = playbackManager.getQueueShuffleMode();
|
||||||
let context = nowPlayingBarElement;
|
let context = nowPlayingBarElement;
|
||||||
|
const cssClass = 'shuffleQueue-active';
|
||||||
let toggleShuffleButton = context.querySelector('.btnShuffleQueue');
|
let toggleShuffleButton = context.querySelector('.btnShuffleQueue');
|
||||||
|
|
||||||
switch (shuffleMode) {
|
switch (shuffleMode) {
|
||||||
case 'Sorted':
|
|
||||||
toggleShuffleButton.classList.remove('shuffleQueue-active');
|
|
||||||
break;
|
|
||||||
case 'Shuffle':
|
case 'Shuffle':
|
||||||
toggleShuffleButton.classList.add('shuffleQueue-active');
|
toggleShuffleButton.classList.toggle(cssClass, true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new TypeError('invalid value for shuffleMode');
|
case 'Sorted':
|
||||||
|
toggleShuffleButton.classList.toggle(cssClass, false);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -252,14 +252,16 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
return function () {
|
return function () {
|
||||||
function toggleRepeat() {
|
function toggleRepeat() {
|
||||||
switch (playbackManager.getRepeatMode()) {
|
switch (playbackManager.getRepeatMode()) {
|
||||||
case 'RepeatNone':
|
|
||||||
playbackManager.setRepeatMode('RepeatAll');
|
|
||||||
break;
|
|
||||||
case 'RepeatAll':
|
case 'RepeatAll':
|
||||||
playbackManager.setRepeatMode('RepeatOne');
|
playbackManager.setRepeatMode('RepeatOne');
|
||||||
break;
|
break;
|
||||||
case 'RepeatOne':
|
case 'RepeatOne':
|
||||||
playbackManager.setRepeatMode('RepeatNone');
|
playbackManager.setRepeatMode('RepeatNone');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
case 'RepeatNone':
|
||||||
|
playbackManager.setRepeatMode('RepeatAll');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,11 +362,10 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
case 'RepeatOne':
|
case 'RepeatOne':
|
||||||
innHtml = '<span class="material-icons repeat_one"></span>';
|
innHtml = '<span class="material-icons repeat_one"></span>';
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
case 'RepeatNone':
|
case 'RepeatNone':
|
||||||
repeatOn = false;
|
repeatOn = false;
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
throw new TypeError('invalid value for repeatMode');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const toggleRepeatButton of toggleRepeatButtons) {
|
for (const toggleRepeatButton of toggleRepeatButtons) {
|
||||||
|
@ -523,14 +524,13 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
|
|
||||||
for (let shuffleButton of shuffleButtons) {
|
for (let shuffleButton of shuffleButtons) {
|
||||||
switch (shuffleMode) {
|
switch (shuffleMode) {
|
||||||
case 'Sorted':
|
|
||||||
shuffleButton.classList.toggle(cssClass, false);
|
|
||||||
break;
|
|
||||||
case 'Shuffle':
|
case 'Shuffle':
|
||||||
shuffleButton.classList.toggle(cssClass, true);
|
shuffleButton.classList.toggle(cssClass, true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new TypeError('invalid shuffle mode');
|
case 'Sorted':
|
||||||
|
shuffleButton.classList.toggle(cssClass, false);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onPlaylistUpdate();
|
onPlaylistUpdate();
|
||||||
|
@ -867,6 +867,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
optionsSection.classList.add('align-items-right', 'justify-content-flex-end');
|
optionsSection.classList.add('align-items-right', 'justify-content-flex-end');
|
||||||
context.querySelector('.playlist').classList.remove('hide');
|
context.querySelector('.playlist').classList.remove('hide');
|
||||||
context.querySelector('.btnSavePlaylist').classList.remove('hide');
|
context.querySelector('.btnSavePlaylist').classList.remove('hide');
|
||||||
|
context.classList.add('padded-bottom');
|
||||||
} else {
|
} else {
|
||||||
optionsSection.querySelector('.btnTogglePlaylist').insertAdjacentHTML('afterend', volumecontrolHtml);
|
optionsSection.querySelector('.btnTogglePlaylist').insertAdjacentHTML('afterend', volumecontrolHtml);
|
||||||
optionsSection.classList.add('playlistSectionButtonTransparent');
|
optionsSection.classList.add('playlistSectionButtonTransparent');
|
||||||
|
|
|
@ -176,7 +176,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="playlistSection">
|
<div class="playlistSection">
|
||||||
<div class="playlistSectionButton flex align-items-center justify-content-center">
|
<div class="playlistSectionButton flex align-items-center justify-content-center focuscontainer-x">
|
||||||
<button id="togglePlaylist" is="paper-icon-button-light" class="btnTogglePlaylist hide" title="${ButtonTogglePlaylist}">
|
<button id="togglePlaylist" is="paper-icon-button-light" class="btnTogglePlaylist hide" title="${ButtonTogglePlaylist}">
|
||||||
<span class="material-icons queue_music"></span>
|
<span class="material-icons queue_music"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -257,13 +257,13 @@ define(['playbackManager', 'events', 'serverNotifications', 'connectionManager']
|
||||||
return {
|
return {
|
||||||
name: s.DeviceName,
|
name: s.DeviceName,
|
||||||
deviceName: s.DeviceName,
|
deviceName: s.DeviceName,
|
||||||
deviceType: s.DeviceType,
|
deviceType: 'Remote Control',
|
||||||
id: s.Id,
|
id: s.Id,
|
||||||
playerName: name,
|
playerName: name,
|
||||||
appName: s.Client,
|
appName: s.Client,
|
||||||
playableMediaTypes: s.PlayableMediaTypes,
|
playableMediaTypes: s.PlayableMediaTypes,
|
||||||
isLocalPlayer: false,
|
isLocalPlayer: false,
|
||||||
supportedCommands: s.SupportedCommands,
|
supportedCommands: s.Capabilities.SupportedCommands,
|
||||||
user: s.UserId ? {
|
user: s.UserId ? {
|
||||||
|
|
||||||
Id: s.UserId,
|
Id: s.UserId,
|
||||||
|
|
|
@ -196,7 +196,7 @@ var Dashboard = {
|
||||||
capabilities: function (appHost) {
|
capabilities: function (appHost) {
|
||||||
var capabilities = {
|
var capabilities = {
|
||||||
PlayableMediaTypes: ['Audio', 'Video'],
|
PlayableMediaTypes: ['Audio', 'Video'],
|
||||||
SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'],
|
SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'],
|
||||||
SupportsPersistentIdentifier: 'cordova' === self.appMode || 'android' === self.appMode,
|
SupportsPersistentIdentifier: 'cordova' === self.appMode || 'android' === self.appMode,
|
||||||
SupportsMediaControl: true
|
SupportsMediaControl: true
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue