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

Remove item from sorted playlist when on shuffle mode and address review comments

This commit is contained in:
ferferga 2020-06-23 20:32:39 +02:00
parent 33d0329e5c
commit 78cdbbb14f
3 changed files with 21 additions and 9 deletions

View file

@ -379,6 +379,8 @@ 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');
} }
@ -536,9 +538,9 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
var textLines = nowPlayingItem ? nowPlayingHelper.getNowPlayingNames(nowPlayingItem) : []; var textLines = nowPlayingItem ? nowPlayingHelper.getNowPlayingNames(nowPlayingItem) : [];
nowPlayingTextElement.innerHTML = ''; nowPlayingTextElement.innerHTML = '';
if (textLines) { if (textLines) {
let itemText = document.createElement('div');
let secondaryText = document.createElement('div'); let secondaryText = document.createElement('div');
secondaryText.classList.add('nowPlayingBarSecondaryText'); secondaryText.classList.add('nowPlayingBarSecondaryText');
let itemText = document.createElement('div');
if (textLines.length > 1) { if (textLines.length > 1) {
textLines[1].secondary = true; textLines[1].secondary = true;
if (textLines[1].text) { if (textLines[1].text) {
@ -549,11 +551,9 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
} }
if (textLines[0].text) { if (textLines[0].text) {
if (textLines[0].text) { let text = document.createElement('a');
let text = document.createElement('a'); text.innerHTML = textLines[0].text;
text.innerHTML = textLines[0].text; itemText.appendChild(text);
itemText.appendChild(text);
}
} }
nowPlayingTextElement.appendChild(itemText); nowPlayingTextElement.appendChild(itemText);
nowPlayingTextElement.appendChild(secondaryText); nowPlayingTextElement.appendChild(secondaryText);
@ -650,6 +650,8 @@ 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

@ -155,6 +155,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.splice(0).filter(function (item) {
return playlistItemIds.indexOf(item.PlaylistItemId) === -1;
});
}
this._playlist = playlist.filter(function (item) { this._playlist = playlist.filter(function (item) {
return playlistItemIds.indexOf(item.PlaylistItemId) === -1; return playlistItemIds.indexOf(item.PlaylistItemId) === -1;
}); });

View file

@ -356,7 +356,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
let toggleRepeatButtons = context.querySelectorAll('.repeatToggleButton'); let toggleRepeatButtons = context.querySelectorAll('.repeatToggleButton');
const cssClass = 'repeatButton-active'; const cssClass = 'repeatButton-active';
let innHtml = '<span class="material-icons repeat"></span>'; let innHtml = '<span class="material-icons repeat"></span>';
let repeatOn = undefined; let repeatOn = true;
switch (repeatMode) { switch (repeatMode) {
case 'RepeatAll': case 'RepeatAll':
@ -365,14 +365,16 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
innHtml = '<span class="material-icons repeat_one"></span>'; innHtml = '<span class="material-icons repeat_one"></span>';
break; break;
case 'RepeatNone': case 'RepeatNone':
repeatOn = null; repeatOn = false;
break;
case undefined:
break; 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 === null) { if (!repeatOn) {
toggleRepeatButton.classList.remove(cssClass); toggleRepeatButton.classList.remove(cssClass);
} else { } else {
toggleRepeatButton.classList.add(cssClass); toggleRepeatButton.classList.add(cssClass);
@ -534,6 +536,8 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
case 'Shuffle': case 'Shuffle':
shuffleButton.classList.add('shuffleQueue-active'); shuffleButton.classList.add('shuffleQueue-active');
break; break;
case undefined:
break;
default: default:
throw new TypeError('invalid shuffle mode'); throw new TypeError('invalid shuffle mode');
} }