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

Address review comments and keep focus on playlist update

This commit is contained in:
ferferga 2020-06-30 19:28:52 +02:00
parent fd6b20d88c
commit 82fa5f554c
2 changed files with 23 additions and 11 deletions

View file

@ -159,7 +159,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
elem.querySelector('.previousTrackButton').addEventListener('click', function (e) { elem.querySelector('.previousTrackButton').addEventListener('click', function (e) {
if (currentPlayer) { if (currentPlayer) {
if (currentPlayer.id === 'htmlaudioplayer' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) { if (lastPlayerState.NowPlayingItem.MediaType === 'Audio' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) {
// Cancel this event if doubleclick is fired // Cancel this event if doubleclick is fired
if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) { if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) {
return; return;
@ -440,7 +440,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
// See bindEvents for why this is necessary // See bindEvents for why this is necessary
if (volumeSlider) { if (volumeSlider) {
volumeSliderContainer.classList.toggle('hide', showVolumeSlider); volumeSliderContainer.classList.toggle('hide', !showVolumeSlider);
if (!volumeSlider.dragging) { if (!volumeSlider.dragging) {
volumeSlider.value = volumeLevel || 0; volumeSlider.value = volumeLevel || 0;

View file

@ -333,7 +333,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
} }
updateRepeatModeDisplay(playbackManager.getRepeatMode()); updateRepeatModeDisplay(playbackManager.getRepeatMode());
onShuffleQueueModeChange(); onShuffleQueueModeChange(false);
updateNowPlayingInfo(context, state); updateNowPlayingInfo(context, state);
} }
@ -405,7 +405,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
if (!showMuteButton && !showVolumeSlider) { if (!showMuteButton && !showVolumeSlider) {
context.querySelector('.volumecontrol').classList.add('hide'); context.querySelector('.volumecontrol').classList.add('hide');
} else { } else {
buttonMute.classList.toggle('hide', showMuteButton); buttonMute.classList.toggle('hide', !showMuteButton);
var nowPlayingVolumeSlider = context.querySelector('.nowPlayingVolumeSlider'); var nowPlayingVolumeSlider = context.querySelector('.nowPlayingVolumeSlider');
var nowPlayingVolumeSliderContainer = context.querySelector('.nowPlayingVolumeSliderContainer'); var nowPlayingVolumeSliderContainer = context.querySelector('.nowPlayingVolumeSliderContainer');
@ -481,7 +481,16 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
}); });
var itemsContainer = context.querySelector('.playlist'); var itemsContainer = context.querySelector('.playlist');
let focusedItemPlaylistId = itemsContainer.querySelector('button:focus');
itemsContainer.innerHTML = html; itemsContainer.innerHTML = html;
if (focusedItemPlaylistId !== null) {
focusedItemPlaylistId = focusedItemPlaylistId.getAttribute('data-playlistitemid');
const newFocusedItem = itemsContainer.querySelector(`button[data-playlistitemid=${focusedItemPlaylistId}]`);
if (newFocusedItem !== null) {
newFocusedItem.focus();
}
}
var playlistItemId = playbackManager.getCurrentPlaylistItemId(player); var playlistItemId = playbackManager.getCurrentPlaylistItemId(player);
if (playlistItemId) { if (playlistItemId) {
@ -507,7 +516,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
updateRepeatModeDisplay(playbackManager.getRepeatMode()); updateRepeatModeDisplay(playbackManager.getRepeatMode());
} }
function onShuffleQueueModeChange() { function onShuffleQueueModeChange(updateView = true) {
let shuffleMode = playbackManager.getQueueShuffleMode(this); let shuffleMode = playbackManager.getQueueShuffleMode(this);
let context = dlg; let context = dlg;
const cssClass = 'shuffleQueue-active'; const cssClass = 'shuffleQueue-active';
@ -516,15 +525,18 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
for (let shuffleButton of shuffleButtons) { for (let shuffleButton of shuffleButtons) {
switch (shuffleMode) { switch (shuffleMode) {
case 'Shuffle': case 'Shuffle':
shuffleButton.classList.toggle(cssClass, true); shuffleButton.classList.add(cssClass);
break; break;
case 'Sorted': case 'Sorted':
default: default:
shuffleButton.classList.toggle(cssClass, false); shuffleButton.classList.remove(cssClass);
break; break;
} }
} }
onPlaylistUpdate();
if (updateView) {
onPlaylistUpdate();
}
} }
function onPlaylistUpdate(e) { function onPlaylistUpdate(e) {
@ -550,7 +562,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
if (!state.NextMediaType) { if (!state.NextMediaType) {
updatePlayerState(player, dlg, {}); updatePlayerState(player, dlg, {});
loadPlaylist(dlg); //onPlaylistUpdate();
Emby.Page.back(); Emby.Page.back();
} }
} }
@ -562,7 +574,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
function onStateChanged(event, state) { function onStateChanged(event, state) {
var player = this; var player = this;
updatePlayerState(player, dlg, state); updatePlayerState(player, dlg, state);
loadPlaylist(dlg, player); onPlaylistUpdate();
} }
function onTimeUpdate(e) { function onTimeUpdate(e) {
@ -720,7 +732,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
context.querySelector('.btnPreviousTrack').addEventListener('click', function (e) { context.querySelector('.btnPreviousTrack').addEventListener('click', function (e) {
if (currentPlayer) { if (currentPlayer) {
if (currentPlayer.id === 'htmlaudioplayer' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) { if (lastPlayerState.NowPlayingItem.MediaType === 'Audio' && (currentPlayer._currentTime >= 5 || !playbackManager.previousTrack(currentPlayer))) {
// Cancel this event if doubleclick is fired // Cancel this event if doubleclick is fired
if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) { if (e.detail > 1 && playbackManager.previousTrack(currentPlayer)) {
return; return;