Add 'Clear Queue' option
This commit is contained in:
parent
737341934a
commit
08a995fe2c
7 changed files with 50 additions and 13 deletions
|
@ -28,13 +28,22 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'appRouter',
|
|||
}
|
||||
}
|
||||
|
||||
if (playbackManager.getCurrentPlayer() !== null && options.stopPlayback) {
|
||||
if (playbackManager.getCurrentPlayer() !== null) {
|
||||
if (options.stopPlayback) {
|
||||
commands.push({
|
||||
name: globalize.translate('StopPlayback'),
|
||||
id: 'stopPlayback',
|
||||
icon: 'stop'
|
||||
});
|
||||
}
|
||||
if (options.clearQueue) {
|
||||
commands.push({
|
||||
name: globalize.translate('ClearQueue'),
|
||||
id: 'clearQueue',
|
||||
icon: 'clear_all'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (playbackManager.canQueue(item)) {
|
||||
if (options.queue !== false) {
|
||||
|
@ -435,6 +444,9 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'appRouter',
|
|||
case 'stopPlayback':
|
||||
playbackManager.stop();
|
||||
break;
|
||||
case 'clearQueue':
|
||||
playbackManager.clearQueue();
|
||||
break;
|
||||
case 'record':
|
||||
require(['recordingCreator'], function (recordingCreator) {
|
||||
recordingCreator.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
|
||||
|
|
|
@ -584,6 +584,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
|||
let options = {
|
||||
play: false,
|
||||
queue: false,
|
||||
clearQueue: true,
|
||||
positionTo: contextButton
|
||||
};
|
||||
apiClient.getCurrentUser().then(function (user) {
|
||||
|
|
|
@ -3971,6 +3971,15 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
|||
events.trigger(player, 'shufflequeuemodechange');
|
||||
};
|
||||
|
||||
PlaybackManager.prototype.clearQueue = function (clearCurrentItem = false, player = this._currentPlayer) {
|
||||
if (player && !enableLocalPlaylistManagement(player)) {
|
||||
return player.clearQueue(clearCurrentItem);
|
||||
}
|
||||
|
||||
this._playQueueManager.clearPlaylist(clearCurrentItem);
|
||||
events.trigger(player, 'playlistitemremove');
|
||||
};
|
||||
|
||||
PlaybackManager.prototype.trySetActiveDeviceName = function (name) {
|
||||
|
||||
name = normalizeName(name);
|
||||
|
|
|
@ -84,6 +84,14 @@ define([], function () {
|
|||
this._shuffleMode = 'Sorted';
|
||||
};
|
||||
|
||||
PlayQueueManager.prototype.clearPlaylist = function (clearCurrentItem = false) {
|
||||
const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0];
|
||||
this._playlist = [];
|
||||
if (!clearCurrentItem) {
|
||||
this._playlist.push(currentPlaylistItem);
|
||||
}
|
||||
};
|
||||
|
||||
function arrayInsertAt(destArray, pos, arrayToInsert) {
|
||||
var args = [];
|
||||
args.push(pos); // where to insert
|
||||
|
|
|
@ -190,6 +190,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
|||
play: false,
|
||||
queue: false,
|
||||
stopPlayback: stopPlayback,
|
||||
clearQueue: true,
|
||||
openAlbum: false,
|
||||
positionTo: contextButton
|
||||
};
|
||||
|
@ -551,6 +552,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
|||
|
||||
function onPlaylistItemRemoved(e, info) {
|
||||
var context = dlg;
|
||||
if (info !== undefined) {
|
||||
var playlistItemIds = info.playlistItemIds;
|
||||
|
||||
for (var i = 0, length = playlistItemIds.length; i < length; i++) {
|
||||
|
@ -560,6 +562,9 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
|||
listItem.parentNode.removeChild(listItem);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
onPlaylistUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
function onPlaybackStopped(e, state) {
|
||||
|
|
|
@ -1564,5 +1564,6 @@
|
|||
"ButtonSyncPlay": "SyncPlay",
|
||||
"ButtonCast": "Cast",
|
||||
"ButtonPlayer": "Player",
|
||||
"StopPlayback": "Stop playback"
|
||||
"StopPlayback": "Stop playback",
|
||||
"ClearQueue": "Clear queue"
|
||||
}
|
||||
|
|
|
@ -1574,5 +1574,6 @@
|
|||
"HeaderNewRepository": "Nuevo repositorio",
|
||||
"MessageNoRepositories": "Sin repositorios.",
|
||||
"Writers": "Escritores",
|
||||
"StopPlayback": "Detener la reproducción"
|
||||
"StopPlayback": "Detener la reproducción",
|
||||
"ClearQueue": "Borrar la cola"
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue