diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json | 3 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Playlists/PlaylistManager.cs | 24 |
2 files changed, 24 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index ad4ba7dc0f..1c207b0a2c 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -334,5 +334,6 @@ "OptionNewPlaylist": "New playlist...", "MessageAddedToPlaylistSuccess": "Ok", "ButtonViewSeriesRecording": "View series recording", - "ValueOriginalAirDate": "Original air date: {0}" + "ValueOriginalAirDate": "Original air date: {0}", + "ButtonRemoveFromPlaylist": "Remove from playlist" } diff --git a/MediaBrowser.Server.Implementations/Playlists/PlaylistManager.cs b/MediaBrowser.Server.Implementations/Playlists/PlaylistManager.cs index 79b673283d..6ab306c0ba 100644 --- a/MediaBrowser.Server.Implementations/Playlists/PlaylistManager.cs +++ b/MediaBrowser.Server.Implementations/Playlists/PlaylistManager.cs @@ -190,9 +190,29 @@ namespace MediaBrowser.Server.Implementations.Playlists }, CancellationToken.None).ConfigureAwait(false); } - public Task RemoveFromPlaylist(string playlistId, IEnumerable<int> indeces) + public async Task RemoveFromPlaylist(string playlistId, IEnumerable<string> entryIds) { - throw new NotImplementedException(); + var playlist = _libraryManager.GetItemById(playlistId) as Playlist; + + if (playlist == null) + { + throw new ArgumentException("No Playlist exists with the supplied Id"); + } + + var children = playlist.LinkedChildren.ToList(); + + var idList = entryIds.ToList(); + + var removals = children.Where(i => idList.Contains(i.Id)); + + playlist.LinkedChildren = children.Except(removals) + .ToList(); + + await playlist.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + await playlist.RefreshMetadata(new MetadataRefreshOptions + { + ForceSave = true + }, CancellationToken.None).ConfigureAwait(false); } public Folder GetPlaylistsFolder(string userId) |
