jellyfin-web/dashboard-ui/scripts/playlist.js

87 lines
2.8 KiB
JavaScript
Raw Normal View History

2013-06-07 09:06:32 -07:00
(function ($, document) {
2013-04-08 13:46:59 -07:00
2013-06-07 09:06:32 -07:00
function reloadPlaylist(page) {
2014-01-05 18:59:21 -07:00
2013-06-07 09:06:32 -07:00
var html = '';
2013-04-08 13:46:59 -07:00
2013-06-07 09:06:32 -07:00
html += '<table class="detailTable">';
2013-04-08 13:46:59 -07:00
html += '<thead><tr>';
2013-06-07 09:06:32 -07:00
html += '<th></th>';
2014-07-02 11:34:08 -07:00
html += '<th>' + Globalize.translate('HeaderName') + '</th>';
html += '<th>' + Globalize.translate('HeaderAlbum') + '</th>';
html += '<th>' + Globalize.translate('HeaderArtist') + '</th>';
html += '<th>' + Globalize.translate('HeaderAlbumArtist') + '</th>';
html += '<th>' + Globalize.translate('HeaderTime') + '</th>';
html += '</tr></thead>';
html += '<tbody>';
2013-04-08 13:46:59 -07:00
$.each(MediaController.playlist(), function (i, item) {
2013-06-07 09:06:32 -07:00
var name = LibraryBrowser.getPosterViewDisplayName(item);
2013-04-17 18:32:38 -07:00
2014-01-05 18:59:21 -07:00
var parentName = item.SeriesName || item.Album;
2013-06-07 09:06:32 -07:00
html += '<tr>';
2014-07-02 11:34:08 -07:00
html += '<td><button type="button" data-index="' + i + '" class="lnkPlay" data-icon="play" data-iconpos="notext">' + Globalize.translate('ButtonPlay') + '</button></td>';
2014-01-05 18:59:21 -07:00
html += '<td>';
html += '<a href="itemdetails.html?id=' + item.Id + '">' + name + '</a>';
html += '</td>';
html += '<td>';
if (parentName) {
var parentId = item.AlbumId || item.SeriesId || item.ParentId;
html += '<a href="itemdetails.html?id=' + parentId + '">' + parentName + '</a>';
}
html += '</td>';
html += '<td>';
html += LibraryBrowser.getArtistLinksHtml(item.Artists || []);
html += '</td>';
html += '<td>';
if (item.AlbumArtist) {
html += LibraryBrowser.getArtistLinksHtml([item.AlbumArtist]);
}
html += '</td>';
2013-06-07 10:29:33 -07:00
html += '<td>' + Dashboard.getDisplayTime(item.RunTimeTicks) + '</td>';
2014-07-02 11:34:08 -07:00
html += '<td><button type="button" data-index="' + i + '" class="lnkRemove" data-icon="delete" data-iconpos="notext">' + Globalize.translate('ButtonRemove') + '</button></td>';
2013-06-07 09:06:32 -07:00
html += '</tr>';
});
html += '</tbody>';
2013-06-07 09:06:32 -07:00
html += '</table>';
2013-06-07 09:06:32 -07:00
$("#playlist", page).html(html).trigger('create');
}
2014-01-05 18:59:21 -07:00
2013-06-07 09:06:32 -07:00
$(document).on('pageinit', "#playlistPage", function () {
2013-06-07 09:06:32 -07:00
var page = this;
2013-06-07 09:06:32 -07:00
$(page).on('click', '.lnkPlay', function () {
2013-06-07 09:06:32 -07:00
var index = parseInt(this.getAttribute('data-index'));
2014-04-09 21:12:04 -07:00
MediaController.currentPlaylistIndex(index);
2013-06-07 10:23:23 -07:00
reloadPlaylist(page);
2013-06-07 09:06:32 -07:00
}).on('click', '.lnkRemove', function () {
2013-06-07 09:06:32 -07:00
var index = parseInt(this.getAttribute('data-index'));
2014-04-09 21:12:04 -07:00
MediaController.removeFromPlaylist(index);
2013-06-07 09:06:32 -07:00
reloadPlaylist(page);
});
2013-06-07 09:06:32 -07:00
}).on('pagebeforeshow', "#playlistPage", function () {
2013-06-07 09:06:32 -07:00
var page = this;
reloadPlaylist(page);
2013-06-07 09:06:32 -07:00
});
})(jQuery, document);