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

Address review comments

This commit is contained in:
ferferga 2020-06-23 23:41:52 +02:00
parent 78cdbbb14f
commit 4fe179214c
4 changed files with 41 additions and 71 deletions

View file

@ -182,27 +182,23 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
elem.querySelector('.btnShuffleQueue').addEventListener('click', function () { elem.querySelector('.btnShuffleQueue').addEventListener('click', function () {
if (currentPlayer) { if (currentPlayer) {
playbackManager.toggleQueueShuffleMode(currentPlayer); playbackManager.toggleQueueShuffleMode();
} }
}); });
toggleRepeatButton = elem.querySelector('.toggleRepeatButton'); toggleRepeatButton = elem.querySelector('.toggleRepeatButton');
toggleRepeatButton.addEventListener('click', function () { toggleRepeatButton.addEventListener('click', function () {
switch (playbackManager.getRepeatMode()) {
if (currentPlayer) {
switch (playbackManager.getRepeatMode(currentPlayer)) {
case 'RepeatAll': case 'RepeatAll':
playbackManager.setRepeatMode('RepeatOne', currentPlayer); playbackManager.setRepeatMode('RepeatOne');
break; break;
case 'RepeatOne': case 'RepeatOne':
playbackManager.setRepeatMode('RepeatNone', currentPlayer); playbackManager.setRepeatMode('RepeatNone');
break; break;
default: default:
playbackManager.setRepeatMode('RepeatAll', currentPlayer); playbackManager.setRepeatMode('RepeatAll');
break; break;
} }
}
}); });
toggleRepeatButtonIcon = toggleRepeatButton.querySelector('.material-icons'); toggleRepeatButtonIcon = toggleRepeatButton.querySelector('.material-icons');
@ -343,7 +339,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
toggleRepeatButton.classList.remove('hide'); toggleRepeatButton.classList.remove('hide');
} }
updateRepeatModeDisplay(playState.RepeatMode); updateRepeatModeDisplay(playbackManager.getRepeatMode());
onQueueShuffleModeChange(); onQueueShuffleModeChange();
updatePlayerVolumeState(playState.IsMuted, playState.VolumeLevel); updatePlayerVolumeState(playState.IsMuted, playState.VolumeLevel);
@ -379,8 +375,6 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
toggleRepeatButtonIcon.classList.add('repeat'); toggleRepeatButtonIcon.classList.add('repeat');
toggleRepeatButton.classList.remove(cssClass); toggleRepeatButton.classList.remove(cssClass);
break; break;
case undefined:
break;
default: default:
throw new TypeError('invalid value for repeatMode'); throw new TypeError('invalid value for repeatMode');
} }
@ -627,19 +621,17 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
onStateChanged.call(player, e, state); onStateChanged.call(player, e, state);
} }
function onRepeatModeChange(e) { function onRepeatModeChange() {
if (!isEnabled) { if (!isEnabled) {
return; return;
} }
var player = this; updateRepeatModeDisplay(playbackManager.getRepeatMode());
updateRepeatModeDisplay(playbackManager.getRepeatMode(player));
} }
function onQueueShuffleModeChange() { function onQueueShuffleModeChange() {
let shuffleMode = playbackManager.getQueueShuffleMode(this); let shuffleMode = playbackManager.getQueueShuffleMode();
let context = nowPlayingBarElement; let context = nowPlayingBarElement;
let toggleShuffleButton = context.querySelector('.btnShuffleQueue'); let toggleShuffleButton = context.querySelector('.btnShuffleQueue');
@ -650,8 +642,6 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
case 'Shuffle': case 'Shuffle':
toggleShuffleButton.classList.add('shuffleQueue-active'); toggleShuffleButton.classList.add('shuffleQueue-active');
break; break;
case undefined:
break;
default: default:
throw new TypeError('invalid value for shuffleMode'); throw new TypeError('invalid value for shuffleMode');
} }

View file

@ -3920,9 +3920,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
return info ? info.supportedCommands : []; return info ? info.supportedCommands : [];
}; };
PlaybackManager.prototype.setRepeatMode = function (value, player) { PlaybackManager.prototype.setRepeatMode = function (value, player = this._currentPlayer) {
player = player || this._currentPlayer;
if (player && !enableLocalPlaylistManagement(player)) { if (player && !enableLocalPlaylistManagement(player)) {
return player.setRepeatMode(value); return player.setRepeatMode(value);
} }
@ -3931,9 +3929,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
events.trigger(player, 'repeatmodechange'); events.trigger(player, 'repeatmodechange');
}; };
PlaybackManager.prototype.getRepeatMode = function (player) { PlaybackManager.prototype.getRepeatMode = function (player = this._currentPlayer) {
player = player || this._currentPlayer;
if (player && !enableLocalPlaylistManagement(player)) { if (player && !enableLocalPlaylistManagement(player)) {
return player.getRepeatMode(); return player.getRepeatMode();
} }

View file

@ -144,9 +144,7 @@ define([], function () {
PlayQueueManager.prototype.removeFromPlaylist = function (playlistItemIds) { PlayQueueManager.prototype.removeFromPlaylist = function (playlistItemIds) {
var playlist = this.getPlaylist(); if (this._playlist.length <= playlistItemIds.length) {
if (playlist.length <= playlistItemIds.length) {
return { return {
result: 'empty' result: 'empty'
}; };
@ -155,14 +153,12 @@ define([], function () {
var currentPlaylistItemId = this.getCurrentPlaylistItemId(); var currentPlaylistItemId = this.getCurrentPlaylistItemId();
var isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1; var isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1;
if (this._sortedPlaylist.length <= playlistItemIds.length) { this._sortedPlaylist = this._sortedPlaylist.filter(function (item) {
this._sortedPlaylist = this._sortedPlaylist.splice(0).filter(function (item) { return !playlistItemIds.includes(item.PlaylistItemId);
return playlistItemIds.indexOf(item.PlaylistItemId) === -1;
}); });
}
this._playlist = playlist.filter(function (item) { this._playlist = this._playlist.filter(function (item) {
return playlistItemIds.indexOf(item.PlaylistItemId) === -1; return !playlistItemIds.includes(item.PlaylistItemId);
}); });
return { return {

View file

@ -250,20 +250,16 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
var currentImgUrl; var currentImgUrl;
return function () { return function () {
function toggleRepeat(player) { function toggleRepeat() {
if (player) { switch (playbackManager.getRepeatMode()) {
switch (playbackManager.getRepeatMode(player)) {
case 'RepeatNone': case 'RepeatNone':
playbackManager.setRepeatMode('RepeatAll', player); playbackManager.setRepeatMode('RepeatAll');
break; break;
case 'RepeatAll': case 'RepeatAll':
playbackManager.setRepeatMode('RepeatOne', player); playbackManager.setRepeatMode('RepeatOne');
break; break;
case 'RepeatOne': case 'RepeatOne':
playbackManager.setRepeatMode('RepeatNone', player); playbackManager.setRepeatMode('RepeatNone');
}
} }
} }
@ -336,7 +332,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
context.classList.add('hideVideoButtons'); context.classList.add('hideVideoButtons');
} }
updateRepeatModeDisplay(playState.RepeatMode); updateRepeatModeDisplay(playbackManager.getRepeatMode());
onShuffleQueueModeChange(); onShuffleQueueModeChange();
updateNowPlayingInfo(context, state); updateNowPlayingInfo(context, state);
} }
@ -367,18 +363,12 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
case 'RepeatNone': case 'RepeatNone':
repeatOn = false; repeatOn = false;
break; break;
case undefined:
break;
default: default:
throw new TypeError('invalid value for repeatMode'); throw new TypeError('invalid value for repeatMode');
} }
for (const toggleRepeatButton of toggleRepeatButtons) { for (const toggleRepeatButton of toggleRepeatButtons) {
if (!repeatOn) { toggleRepeatButton.classList.toggle(cssClass, repeatOn);
toggleRepeatButton.classList.remove(cssClass);
} else {
toggleRepeatButton.classList.add(cssClass);
}
toggleRepeatButton.innerHTML = innHtml; toggleRepeatButton.innerHTML = innHtml;
} }
} }
@ -518,25 +508,23 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
onStateChanged.call(player, e, state); onStateChanged.call(player, e, state);
} }
function onRepeatModeChange(e) { function onRepeatModeChange() {
var player = this; updateRepeatModeDisplay(playbackManager.getRepeatMode());
updateRepeatModeDisplay(playbackManager.getRepeatMode(player));
} }
function onShuffleQueueModeChange() { function onShuffleQueueModeChange() {
let shuffleMode = playbackManager.getQueueShuffleMode(this); let shuffleMode = playbackManager.getQueueShuffleMode(this);
let context = dlg; let context = dlg;
const cssClass = 'shuffleQueue-active';
let shuffleButtons = context.querySelectorAll('.btnShuffleQueue'); let shuffleButtons = context.querySelectorAll('.btnShuffleQueue');
for (let shuffleButton of shuffleButtons) { for (let shuffleButton of shuffleButtons) {
switch (shuffleMode) { switch (shuffleMode) {
case 'Sorted': case 'Sorted':
shuffleButton.classList.remove('shuffleQueue-active'); shuffleButton.classList.toggle(cssClass, false);
break; break;
case 'Shuffle': case 'Shuffle':
shuffleButton.classList.add('shuffleQueue-active'); shuffleButton.classList.toggle(cssClass, true);
break;
case undefined:
break; break;
default: default:
throw new TypeError('invalid shuffle mode'); throw new TypeError('invalid shuffle mode');
@ -645,7 +633,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
function onBtnCommandClick() { function onBtnCommandClick() {
if (currentPlayer) { if (currentPlayer) {
if (this.classList.contains('repeatToggleButton')) { if (this.classList.contains('repeatToggleButton')) {
toggleRepeat(currentPlayer); toggleRepeat();
} else { } else {
playbackManager.sendCommand({ playbackManager.sendCommand({
Name: this.getAttribute('data-command') Name: this.getAttribute('data-command')