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

fixes #1420 - Go to now playing in web ui

This commit is contained in:
Luke Pulverenti 2016-07-22 00:58:55 -04:00
parent 13838f9d76
commit cc687118d2
3 changed files with 81 additions and 20 deletions

View file

@ -813,10 +813,21 @@
}; };
// TOOD: This doesn't really belong here // TOOD: This doesn't really belong here
self.getNowPlayingNameHtml = function (nowPlayingItem, includeNonNameInfo) { self.getNowPlayingNames = function (nowPlayingItem, includeNonNameInfo) {
var topItem = nowPlayingItem;
var bottomItem = null;
var topText = nowPlayingItem.Name; var topText = nowPlayingItem.Name;
if (nowPlayingItem.AlbumId && nowPlayingItem.MediaType == 'Audio') {
topItem = {
Id: nowPlayingItem.AlbumId,
Name: nowPlayingItem.Album,
Type: 'MusicAlbum',
IsFolder: true
};
}
if (nowPlayingItem.MediaType == 'Video') { if (nowPlayingItem.MediaType == 'Video') {
if (nowPlayingItem.IndexNumber != null) { if (nowPlayingItem.IndexNumber != null) {
topText = nowPlayingItem.IndexNumber + " - " + topText; topText = nowPlayingItem.IndexNumber + " - " + topText;
@ -829,18 +840,69 @@
var bottomText = ''; var bottomText = '';
if (nowPlayingItem.Artists && nowPlayingItem.Artists.length) { if (nowPlayingItem.Artists && nowPlayingItem.Artists.length) {
bottomText = topText;
topText = nowPlayingItem.Artists[0]; if (nowPlayingItem.ArtistItems && nowPlayingItem.ArtistItems.length) {
bottomItem = {
Id: nowPlayingItem.ArtistItems[0].Id,
Name: nowPlayingItem.ArtistItems[0].Name,
Type: 'MusicArtist',
IsFolder: true
};
bottomText = bottomItem.Name;
} else {
bottomText = nowPlayingItem.Artists[0];
}
} }
else if (nowPlayingItem.SeriesName || nowPlayingItem.Album) { else if (nowPlayingItem.SeriesName || nowPlayingItem.Album) {
bottomText = topText; bottomText = topText;
topText = nowPlayingItem.SeriesName || nowPlayingItem.Album; topText = nowPlayingItem.SeriesName || nowPlayingItem.Album;
bottomItem = topItem;
if (nowPlayingItem.SeriesId) {
topItem = {
Id: nowPlayingItem.SeriesId,
Name: nowPlayingItem.SeriesName,
Type: 'Series',
IsFolder: true
};
} else {
topItem = null;
}
} }
else if (nowPlayingItem.ProductionYear && includeNonNameInfo !== false) { else if (nowPlayingItem.ProductionYear && includeNonNameInfo !== false) {
bottomText = nowPlayingItem.ProductionYear; bottomText = nowPlayingItem.ProductionYear;
} }
return bottomText ? topText + '<br/>' + bottomText : topText; var list = [];
list.push({
text: topText,
item: topItem
});
if (bottomText) {
list.push({
text: bottomText,
item: bottomItem
});
}
return list;
};
// TOOD: This doesn't really belong here
self.getNowPlayingNameHtml = function (nowPlayingItem, includeNonNameInfo) {
var names = self.getNowPlayingNames(nowPlayingItem, includeNonNameInfo);
return names.map(function (i) {
return i.text;
}).join('<br/>');
}; };
self.showPlaybackInfoErrorMessage = function (errorCode) { self.showPlaybackInfoErrorMessage = function (errorCode) {

View file

@ -1260,7 +1260,9 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS
nowPlayingItem.PremiereDate = item.PremiereDate; nowPlayingItem.PremiereDate = item.PremiereDate;
nowPlayingItem.SeriesName = item.SeriesName; nowPlayingItem.SeriesName = item.SeriesName;
nowPlayingItem.Album = item.Album; nowPlayingItem.Album = item.Album;
nowPlayingItem.AlbumId = item.AlbumId;
nowPlayingItem.Artists = item.Artists; nowPlayingItem.Artists = item.Artists;
nowPlayingItem.ArtistItems = item.ArtistItems;
var imageTags = item.ImageTags || {}; var imageTags = item.ImageTags || {};

View file

@ -288,14 +288,13 @@
var nowPlayingBarElement; var nowPlayingBarElement;
function getNowPlayingBar() { function getNowPlayingBar() {
if (nowPlayingBarElement) {
return Promise.resolve(nowPlayingBarElement);
}
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (nowPlayingBarElement) { require(['itemShortcuts', 'css!css/nowplayingbar.css', 'emby-slider'], function (itemShortcuts) {
resolve(nowPlayingBarElement);
return;
}
require(['css!css/nowplayingbar.css', 'emby-slider'], function () {
nowPlayingBarElement = document.querySelector('.nowPlayingBar'); nowPlayingBarElement = document.querySelector('.nowPlayingBar');
@ -312,6 +311,8 @@
nowPlayingBarElement.classList.add('noMediaProgress'); nowPlayingBarElement.classList.add('noMediaProgress');
} }
itemShortcuts.on(nowPlayingBarElement);
bindEvents(nowPlayingBarElement); bindEvents(nowPlayingBarElement);
resolve(nowPlayingBarElement); resolve(nowPlayingBarElement);
}); });
@ -507,19 +508,15 @@
var currentImgUrl; var currentImgUrl;
function updateNowPlayingInfo(state) { function updateNowPlayingInfo(state) {
var nameHtml = MediaController.getNowPlayingNameHtml(state.NowPlayingItem) || ''; nowPlayingTextElement.innerHTML = MediaController.getNowPlayingNames(state.NowPlayingItem).map(function (nowPlayingName) {
if (nameHtml.indexOf('<br/>') != -1) { if (nowPlayingName.item) {
nowPlayingTextElement.classList.add('nowPlayingDoubleText'); return '<div>' + LibraryBrowser.getTextActionButton(nowPlayingName.item, nowPlayingName.text) + '</div>';
} else { }
nowPlayingTextElement.classList.remove('nowPlayingDoubleText');
}
if (state.NowPlayingItem.Id) { return '<div>' + nowPlayingName.text + '</div>';
nameHtml = '<a style="color:inherit;text-decoration:none;" href="' + LibraryBrowser.getHref(state.NowPlayingItem) + '">' + nameHtml + '</a>';
}
nowPlayingTextElement.innerHTML = nameHtml; }).join('');
var url; var url;
var imgHeight = 80; var imgHeight = 80;