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:
parent
fd6b20d88c
commit
82fa5f554c
2 changed files with 23 additions and 11 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue