diff --git a/src/controllers/itemdetailpage.js b/src/controllers/itemdetailpage.js
index c5ae6126a7..9b488221ba 100644
--- a/src/controllers/itemdetailpage.js
+++ b/src/controllers/itemdetailpage.js
@@ -1,5 +1,5 @@
-define(["loading", "appRouter", "layoutManager", "connectionManager", "userSettings", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "imageLoader", "libraryMenu", "globalize", "browser", "events", "playbackManager", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-button", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function (loading, appRouter, layoutManager, connectionManager, userSettings, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, imageLoader, libraryMenu, globalize, browser, events, playbackManager) {
- "use strict";
+define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSettings', 'cardBuilder', 'datetime', 'mediaInfo', 'backdrop', 'listView', 'itemContextMenu', 'itemHelper', 'dom', 'indicators', 'imageLoader', 'libraryMenu', 'globalize', 'browser', 'events', 'playbackManager', 'scrollStyles', 'emby-itemscontainer', 'emby-checkbox', 'emby-button', 'emby-playstatebutton', 'emby-ratingbutton', 'emby-scroller', 'emby-select'], function (loading, appRouter, layoutManager, connectionManager, userSettings, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, imageLoader, libraryMenu, globalize, browser, events, playbackManager) {
+ 'use strict';
function getPromise(apiClient, params) {
var id = params.id;
@@ -24,19 +24,19 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
return apiClient.getArtist(params.musicartist, apiClient.getCurrentUserId());
}
- throw new Error("Invalid request");
+ throw new Error('Invalid request');
}
function hideAll(page, className, show) {
var i;
var length;
- var elems = page.querySelectorAll("." + className);
+ var elems = page.querySelectorAll('.' + className);
for (i = 0, length = elems.length; i < length; i++) {
if (show) {
- elems[i].classList.remove("hide");
+ elems[i].classList.remove('hide');
} else {
- elems[i].classList.add("hide");
+ elems[i].classList.add('hide');
}
}
}
@@ -61,90 +61,90 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function getProgramScheduleHtml(items) {
- var html = "";
- html += '
';
+ var html = '';
+ html += '
';
html += listView.getListViewHtml({
items: items,
enableUserDataButtons: false,
image: true,
- imageSource: "channel",
+ imageSource: 'channel',
showProgramDateTime: true,
showChannel: false,
mediaInfo: false,
- action: "none",
+ action: 'none',
moreButton: false,
recordButton: false
});
- return html += "
";
+ return html += '
';
}
function renderSeriesTimerSchedule(page, apiClient, seriesTimerId) {
apiClient.getLiveTvTimers({
UserId: apiClient.getCurrentUserId(),
ImageTypeLimit: 1,
- EnableImageTypes: "Primary,Backdrop,Thumb",
- SortBy: "StartDate",
+ EnableImageTypes: 'Primary,Backdrop,Thumb',
+ SortBy: 'StartDate',
EnableTotalRecordCount: false,
EnableUserData: false,
SeriesTimerId: seriesTimerId,
- Fields: "ChannelInfo,ChannelImage"
+ Fields: 'ChannelInfo,ChannelImage'
}).then(function (result) {
if (result.Items.length && result.Items[0].SeriesTimerId != seriesTimerId) {
result.Items = [];
}
var html = getProgramScheduleHtml(result.Items);
- var scheduleTab = page.querySelector(".seriesTimerSchedule");
+ var scheduleTab = page.querySelector('.seriesTimerSchedule');
scheduleTab.innerHTML = html;
imageLoader.lazyChildren(scheduleTab);
});
}
function renderTimerEditor(page, item, apiClient, user) {
- if ("Recording" !== item.Type || !user.Policy.EnableLiveTvManagement || !item.TimerId || "InProgress" !== item.Status) {
- return void hideAll(page, "btnCancelTimer");
+ if ('Recording' !== item.Type || !user.Policy.EnableLiveTvManagement || !item.TimerId || 'InProgress' !== item.Status) {
+ return void hideAll(page, 'btnCancelTimer');
}
- hideAll(page, "btnCancelTimer", true);
+ hideAll(page, 'btnCancelTimer', true);
}
function renderSeriesTimerEditor(page, item, apiClient, user) {
- if ("SeriesTimer" !== item.Type) {
- return void hideAll(page, "btnCancelSeriesTimer");
+ if ('SeriesTimer' !== item.Type) {
+ return void hideAll(page, 'btnCancelSeriesTimer');
}
if (user.Policy.EnableLiveTvManagement) {
- require(["seriesRecordingEditor"], function (seriesRecordingEditor) {
+ require(['seriesRecordingEditor'], function (seriesRecordingEditor) {
seriesRecordingEditor.embed(item, apiClient.serverId(), {
- context: page.querySelector(".seriesRecordingEditor")
+ context: page.querySelector('.seriesRecordingEditor')
});
});
- page.querySelector(".seriesTimerScheduleSection").classList.remove("hide");
- hideAll(page, "btnCancelSeriesTimer", true);
+ page.querySelector('.seriesTimerScheduleSection').classList.remove('hide');
+ hideAll(page, 'btnCancelSeriesTimer', true);
return void renderSeriesTimerSchedule(page, apiClient, item.Id);
}
- page.querySelector(".seriesTimerScheduleSection").classList.add("hide");
- return void hideAll(page, "btnCancelSeriesTimer");
+ page.querySelector('.seriesTimerScheduleSection').classList.add('hide');
+ return void hideAll(page, 'btnCancelSeriesTimer');
}
function renderTrackSelections(page, instance, item, forceReload) {
- var select = page.querySelector(".selectSource");
+ var select = page.querySelector('.selectSource');
- if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || -1 === playbackManager.getSupportedCommands().indexOf("PlayMediaSource") || !playbackManager.canPlay(item)) {
- page.querySelector(".trackSelections").classList.add("hide");
- select.innerHTML = "";
- page.querySelector(".selectVideo").innerHTML = "";
- page.querySelector(".selectAudio").innerHTML = "";
- page.querySelector(".selectSubtitles").innerHTML = "";
+ if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || -1 === playbackManager.getSupportedCommands().indexOf('PlayMediaSource') || !playbackManager.canPlay(item)) {
+ page.querySelector('.trackSelections').classList.add('hide');
+ select.innerHTML = '';
+ page.querySelector('.selectVideo').innerHTML = '';
+ page.querySelector('.selectAudio').innerHTML = '';
+ page.querySelector('.selectSubtitles').innerHTML = '';
return;
}
playbackManager.getPlaybackMediaSources(item).then(function (mediaSources) {
instance._currentPlaybackMediaSources = mediaSources;
- page.querySelector(".trackSelections").classList.remove("hide");
- select.setLabel(globalize.translate("LabelVersion"));
+ page.querySelector('.trackSelections').classList.remove('hide');
+ select.setLabel(globalize.translate('LabelVersion'));
var currentValue = select.value;
var resolutionNames = [];
@@ -175,14 +175,14 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var selectedId = mediaSources[0].Id;
select.innerHTML = mediaSources.map(function (v) {
- var selected = v.Id === selectedId ? " selected" : "";
- return '";
- }).join("");
+ var selected = v.Id === selectedId ? ' selected' : '';
+ return '';
+ }).join('');
if (mediaSources.length > 1) {
- page.querySelector(".selectSourceContainer").classList.remove("hide");
+ page.querySelector('.selectSourceContainer').classList.remove('hide');
} else {
- page.querySelector(".selectSourceContainer").classList.add("hide");
+ page.querySelector('.selectSourceContainer').classList.add('hide');
}
if (select.value !== currentValue || forceReload) {
@@ -194,18 +194,18 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function renderVideoSelections(page, mediaSources) {
- var mediaSourceId = page.querySelector(".selectSource").value;
+ var mediaSourceId = page.querySelector('.selectSource').value;
var mediaSource = mediaSources.filter(function (m) {
return m.Id === mediaSourceId;
})[0];
var tracks = mediaSource.MediaStreams.filter(function (m) {
- return "Video" === m.Type;
+ return 'Video' === m.Type;
});
- var select = page.querySelector(".selectVideo");
- select.setLabel(globalize.translate("LabelVideo"));
+ var select = page.querySelector('.selectVideo');
+ select.setLabel(globalize.translate('LabelVideo'));
var selectedId = tracks.length ? tracks[0].Index : -1;
select.innerHTML = tracks.map(function (v) {
- var selected = v.Index === selectedId ? " selected" : "";
+ var selected = v.Index === selectedId ? ' selected' : '';
var titleParts = [];
var resolutionText = mediaInfo.getResolutionText(v);
@@ -217,100 +217,100 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
titleParts.push(v.Codec.toUpperCase());
}
- return '";
- }).join("");
- select.setAttribute("disabled", "disabled");
+ return '';
+ }).join('');
+ select.setAttribute('disabled', 'disabled');
if (tracks.length) {
- page.querySelector(".selectVideoContainer").classList.remove("hide");
+ page.querySelector('.selectVideoContainer').classList.remove('hide');
} else {
- page.querySelector(".selectVideoContainer").classList.add("hide");
+ page.querySelector('.selectVideoContainer').classList.add('hide');
}
}
function renderAudioSelections(page, mediaSources) {
- var mediaSourceId = page.querySelector(".selectSource").value;
+ var mediaSourceId = page.querySelector('.selectSource').value;
var mediaSource = mediaSources.filter(function (m) {
return m.Id === mediaSourceId;
})[0];
var tracks = mediaSource.MediaStreams.filter(function (m) {
- return "Audio" === m.Type;
+ return 'Audio' === m.Type;
});
- var select = page.querySelector(".selectAudio");
- select.setLabel(globalize.translate("LabelAudio"));
+ var select = page.querySelector('.selectAudio');
+ select.setLabel(globalize.translate('LabelAudio'));
var selectedId = mediaSource.DefaultAudioStreamIndex;
select.innerHTML = tracks.map(function (v) {
- var selected = v.Index === selectedId ? " selected" : "";
- return '";
- }).join("");
+ var selected = v.Index === selectedId ? ' selected' : '';
+ return '';
+ }).join('');
if (tracks.length > 1) {
- select.removeAttribute("disabled");
+ select.removeAttribute('disabled');
} else {
- select.setAttribute("disabled", "disabled");
+ select.setAttribute('disabled', 'disabled');
}
if (tracks.length) {
- page.querySelector(".selectAudioContainer").classList.remove("hide");
+ page.querySelector('.selectAudioContainer').classList.remove('hide');
} else {
- page.querySelector(".selectAudioContainer").classList.add("hide");
+ page.querySelector('.selectAudioContainer').classList.add('hide');
}
}
function renderSubtitleSelections(page, mediaSources) {
- var mediaSourceId = page.querySelector(".selectSource").value;
+ var mediaSourceId = page.querySelector('.selectSource').value;
var mediaSource = mediaSources.filter(function (m) {
return m.Id === mediaSourceId;
})[0];
var tracks = mediaSource.MediaStreams.filter(function (m) {
- return "Subtitle" === m.Type;
+ return 'Subtitle' === m.Type;
});
- var select = page.querySelector(".selectSubtitles");
- select.setLabel(globalize.translate("LabelSubtitles"));
+ var select = page.querySelector('.selectSubtitles');
+ select.setLabel(globalize.translate('LabelSubtitles'));
var selectedId = null == mediaSource.DefaultSubtitleStreamIndex ? -1 : mediaSource.DefaultSubtitleStreamIndex;
if (tracks.length) {
- var selected = -1 === selectedId ? " selected" : "";
- select.innerHTML = '" + tracks.map(function (v) {
- selected = v.Index === selectedId ? " selected" : "";
- return '";
- }).join("");
- page.querySelector(".selectSubtitlesContainer").classList.remove("hide");
+ var selected = -1 === selectedId ? ' selected' : '';
+ select.innerHTML = '' + tracks.map(function (v) {
+ selected = v.Index === selectedId ? ' selected' : '';
+ return '';
+ }).join('');
+ page.querySelector('.selectSubtitlesContainer').classList.remove('hide');
} else {
- select.innerHTML = "";
- page.querySelector(".selectSubtitlesContainer").classList.add("hide");
+ select.innerHTML = '';
+ page.querySelector('.selectSubtitlesContainer').classList.add('hide');
}
}
function reloadPlayButtons(page, item) {
var canPlay = false;
- if ("Program" == item.Type) {
+ if ('Program' == item.Type) {
var now = new Date();
if (now >= datetime.parseISO8601Date(item.StartDate, true) && now < datetime.parseISO8601Date(item.EndDate, true)) {
- hideAll(page, "btnPlay", true);
+ hideAll(page, 'btnPlay', true);
canPlay = true;
} else {
- hideAll(page, "btnPlay");
+ hideAll(page, 'btnPlay');
}
- hideAll(page, "btnResume");
- hideAll(page, "btnInstantMix");
- hideAll(page, "btnShuffle");
+ hideAll(page, 'btnResume');
+ hideAll(page, 'btnInstantMix');
+ hideAll(page, 'btnShuffle');
} else if (playbackManager.canPlay(item)) {
- hideAll(page, "btnPlay", true);
- var enableInstantMix = -1 !== ["Audio", "MusicAlbum", "MusicGenre", "MusicArtist"].indexOf(item.Type);
- hideAll(page, "btnInstantMix", enableInstantMix);
- var enableShuffle = item.IsFolder || -1 !== ["MusicAlbum", "MusicGenre", "MusicArtist"].indexOf(item.Type);
- hideAll(page, "btnShuffle", enableShuffle);
+ hideAll(page, 'btnPlay', true);
+ var enableInstantMix = -1 !== ['Audio', 'MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type);
+ hideAll(page, 'btnInstantMix', enableInstantMix);
+ var enableShuffle = item.IsFolder || -1 !== ['MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type);
+ hideAll(page, 'btnShuffle', enableShuffle);
canPlay = true;
- hideAll(page, "btnResume", item.UserData && item.UserData.PlaybackPositionTicks > 0);
+ hideAll(page, 'btnResume', item.UserData && item.UserData.PlaybackPositionTicks > 0);
} else {
- hideAll(page, "btnPlay");
- hideAll(page, "btnResume");
- hideAll(page, "btnInstantMix");
- hideAll(page, "btnShuffle");
+ hideAll(page, 'btnPlay');
+ hideAll(page, 'btnResume');
+ hideAll(page, 'btnInstantMix');
+ hideAll(page, 'btnShuffle');
}
return canPlay;
@@ -319,30 +319,30 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function reloadUserDataButtons(page, item) {
var i;
var length;
- var btnPlaystates = page.querySelectorAll(".btnPlaystate");
+ var btnPlaystates = page.querySelectorAll('.btnPlaystate');
for (i = 0, length = btnPlaystates.length; i < length; i++) {
var btnPlaystate = btnPlaystates[i];
if (itemHelper.canMarkPlayed(item)) {
- btnPlaystate.classList.remove("hide");
+ btnPlaystate.classList.remove('hide');
btnPlaystate.setItem(item);
} else {
- btnPlaystate.classList.add("hide");
+ btnPlaystate.classList.add('hide');
btnPlaystate.setItem(null);
}
}
- var btnUserRatings = page.querySelectorAll(".btnUserRating");
+ var btnUserRatings = page.querySelectorAll('.btnUserRating');
for (i = 0, length = btnUserRatings.length; i < length; i++) {
var btnUserRating = btnUserRatings[i];
if (itemHelper.canRate(item)) {
- btnUserRating.classList.remove("hide");
+ btnUserRating.classList.remove('hide');
btnUserRating.setItem(item);
} else {
- btnUserRating.classList.add("hide");
+ btnUserRating.classList.add('hide');
btnUserRating.setItem(null);
}
}
@@ -355,13 +355,13 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var artist = artists[i];
var href = appRouter.getRouteUrl(artist, {
context: context,
- itemType: "MusicArtist",
+ itemType: 'MusicArtist',
serverId: serverId
});
- html.push('' + artist.Name + "");
+ html.push('' + artist.Name + '');
}
- return html = html.join(" / ");
+ return html = html.join(' / ');
}
function renderName(item, container, isStatic, context) {
var parentRoute;
@@ -371,64 +371,64 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
if (item.AlbumArtists) {
parentNameHtml.push(getArtistLinksHtml(item.AlbumArtists, item.ServerId, context));
parentNameLast = true;
- } else if (item.ArtistItems && item.ArtistItems.length && "MusicVideo" === item.Type) {
+ } else if (item.ArtistItems && item.ArtistItems.length && 'MusicVideo' === item.Type) {
parentNameHtml.push(getArtistLinksHtml(item.ArtistItems, item.ServerId, context));
parentNameLast = true;
- } else if (item.SeriesName && "Episode" === item.Type) {
+ } else if (item.SeriesName && 'Episode' === item.Type) {
parentRoute = appRouter.getRouteUrl({
Id: item.SeriesId,
Name: item.SeriesName,
- Type: "Series",
+ Type: 'Series',
IsFolder: true,
ServerId: item.ServerId
}, {
context: context
});
- parentNameHtml.push('' + item.SeriesName + "");
+ parentNameHtml.push('' + item.SeriesName + '');
} else if (item.IsSeries || item.EpisodeTitle) {
parentNameHtml.push(item.Name);
}
- if (item.SeriesName && "Season" === item.Type) {
+ if (item.SeriesName && 'Season' === item.Type) {
parentRoute = appRouter.getRouteUrl({
Id: item.SeriesId,
Name: item.SeriesName,
- Type: "Series",
+ Type: 'Series',
IsFolder: true,
ServerId: item.ServerId
}, {
context: context
});
- parentNameHtml.push('' + item.SeriesName + "");
- } else if (null != item.ParentIndexNumber && "Episode" === item.Type) {
+ parentNameHtml.push('' + item.SeriesName + '');
+ } else if (null != item.ParentIndexNumber && 'Episode' === item.Type) {
parentRoute = appRouter.getRouteUrl({
Id: item.SeasonId,
Name: item.SeasonName,
- Type: "Season",
+ Type: 'Season',
IsFolder: true,
ServerId: item.ServerId
}, {
context: context
});
- parentNameHtml.push('' + item.SeasonName + "");
+ parentNameHtml.push('' + item.SeasonName + '');
} else if (null != item.ParentIndexNumber && item.IsSeries) {
- parentNameHtml.push(item.SeasonName || "S" + item.ParentIndexNumber);
- } else if (item.Album && item.AlbumId && ("MusicVideo" === item.Type || "Audio" === item.Type)) {
+ parentNameHtml.push(item.SeasonName || 'S' + item.ParentIndexNumber);
+ } else if (item.Album && item.AlbumId && ('MusicVideo' === item.Type || 'Audio' === item.Type)) {
parentRoute = appRouter.getRouteUrl({
Id: item.AlbumId,
Name: item.Album,
- Type: "MusicAlbum",
+ Type: 'MusicAlbum',
IsFolder: true,
ServerId: item.ServerId
}, {
context: context
});
- parentNameHtml.push('' + item.Album + "");
+ parentNameHtml.push('' + item.Album + '');
} else if (item.Album) {
parentNameHtml.push(item.Album);
}
// FIXME: This whole section needs some refactoring, so it becames easier to scale across all form factors. See GH #1022
- var html = "";
+ var html = '';
var tvShowHtml = parentNameHtml[0];
var tvSeasonHtml = parentNameHtml[1];
@@ -436,15 +436,15 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
if (parentNameLast) {
// Music
if (layoutManager.mobile) {
- html = '' + parentNameHtml.join("") + "
";
+ html = '' + parentNameHtml.join('') + '
';
} else {
- html = '' + parentNameHtml.join(" - ") + "
";
+ html = '' + parentNameHtml.join(' - ') + '
';
}
} else {
if (layoutManager.mobile) {
- html = '' + parentNameHtml.join("") + "
";
+ html = '' + parentNameHtml.join('') + '
';
} else {
- html = '' + tvShowHtml + "
";
+ html = '' + tvShowHtml + '
';
}
}
}
@@ -452,36 +452,36 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var name = itemHelper.getDisplayName(item, {
includeParentInfo: false
});
- var offset = parentNameLast ? ".25em" : ".5em";
+ var offset = parentNameLast ? '.25em' : '.5em';
if (html && !parentNameLast) {
if (!layoutManager.mobile && tvSeasonHtml) {
- html += '' + tvSeasonHtml + ' - ' + name + '
';
+ html += '' + tvSeasonHtml + ' - ' + name + '
';
} else {
- html += '' + name + '
';
+ html += '' + name + '
';
}
} else {
- html = '' + name + "
" + html;
+ html = '' + name + '
' + html;
}
if (item.OriginalTitle && item.OriginalTitle != item.Name) {
- html += '' + item.OriginalTitle + '
';
+ html += '' + item.OriginalTitle + '
';
}
container.innerHTML = html;
if (html.length) {
- container.classList.remove("hide");
+ container.classList.remove('hide');
} else {
- container.classList.add("hide");
+ container.classList.add('hide');
}
}
function setTrailerButtonVisibility(page, item) {
- if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf("PlayTrailers")) {
- hideAll(page, "btnPlayTrailer", true);
+ if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) {
+ hideAll(page, 'btnPlayTrailer', true);
} else {
- hideAll(page, "btnPlayTrailer");
+ hideAll(page, 'btnPlayTrailer');
}
}
@@ -496,76 +496,76 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function renderDetailPageBackdrop(page, item, apiClient) {
var imgUrl;
var hasbackdrop = false;
- var itemBackdropElement = page.querySelector("#itemBackdrop");
- var usePrimaryImage = item.MediaType === "Video" && item.Type !== "Movie" && item.Type !== "Trailer" ||
- item.MediaType && item.MediaType !== "Video" ||
- item.Type === "MusicAlbum" ||
- item.Type === "Person";
+ var itemBackdropElement = page.querySelector('#itemBackdrop');
+ var usePrimaryImage = item.MediaType === 'Video' && item.Type !== 'Movie' && item.Type !== 'Trailer' ||
+ item.MediaType && item.MediaType !== 'Video' ||
+ item.Type === 'MusicAlbum' ||
+ item.Type === 'Person';
if (!layoutManager.mobile && !userSettings.enableBackdrops()) {
return false;
}
- if ("Program" === item.Type && item.ImageTags && item.ImageTags.Thumb) {
+ if ('Program' === item.Type && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: dom.getScreenWidth(),
index: 0,
tag: item.ImageTags.Thumb
});
- page.classList.remove("noBackdrop");
+ page.classList.remove('noBackdrop');
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true;
} else if (usePrimaryImage && item.ImageTags && item.ImageTags.Primary) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Primary",
+ type: 'Primary',
maxWidth: dom.getScreenWidth(),
index: 0,
tag: item.ImageTags.Primary
});
- page.classList.remove("noBackdrop");
+ page.classList.remove('noBackdrop');
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true;
} else if (item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: dom.getScreenWidth(),
index: 0,
tag: item.BackdropImageTags[0]
});
- page.classList.remove("noBackdrop");
+ page.classList.remove('noBackdrop');
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true;
} else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
imgUrl = apiClient.getScaledImageUrl(item.ParentBackdropItemId, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: dom.getScreenWidth(),
index: 0,
tag: item.ParentBackdropImageTags[0]
});
- page.classList.remove("noBackdrop");
+ page.classList.remove('noBackdrop');
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true;
} else if (item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: dom.getScreenWidth(),
index: 0,
tag: item.ImageTags.Thumb
});
- page.classList.remove("noBackdrop");
+ page.classList.remove('noBackdrop');
imageLoader.lazyImage(itemBackdropElement, imgUrl, false);
hasbackdrop = true;
} else {
- itemBackdropElement.style.backgroundImage = "";
+ itemBackdropElement.style.backgroundImage = '';
}
- if ("Person" === item.Type) {
+ if ('Person' === item.Type) {
// FIXME: This hides the backdrop on all persons to fix a margin issue. Ideally, a proper fix should be made.
page.classList.add('noBackdrop');
- itemBackdropElement.classList.add("personBackdrop");
+ itemBackdropElement.classList.add('personBackdrop');
} else {
- itemBackdropElement.classList.remove("personBackdrop");
+ itemBackdropElement.classList.remove('personBackdrop');
}
return hasbackdrop;
@@ -573,9 +573,9 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function reloadFromItem(instance, page, params, item, user) {
var context = params.context;
- page.querySelector(".detailPagePrimaryContainer").classList.add("detailSticky");
+ page.querySelector('.detailPagePrimaryContainer').classList.add('detailSticky');
- renderName(item, page.querySelector(".nameContainer"), false, context);
+ renderName(item, page.querySelector('.nameContainer'), false, context);
var apiClient = connectionManager.getApiClient(item.ServerId);
renderSeriesTimerEditor(page, item, apiClient, user);
renderTimerEditor(page, item, apiClient, user);
@@ -589,96 +589,96 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
renderDetailPageBackdrop(page, item, apiClient);
var canPlay = reloadPlayButtons(page, item);
- if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf("PlayTrailers")) {
- hideAll(page, "btnPlayTrailer", true);
+ if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) {
+ hideAll(page, 'btnPlayTrailer', true);
} else {
- hideAll(page, "btnPlayTrailer");
+ hideAll(page, 'btnPlayTrailer');
}
setTrailerButtonVisibility(page, item);
if (item.CanDelete && !item.IsFolder) {
- hideAll(page, "btnDeleteItem", true);
+ hideAll(page, 'btnDeleteItem', true);
} else {
- hideAll(page, "btnDeleteItem");
+ hideAll(page, 'btnDeleteItem');
}
- if ("Program" !== item.Type || canPlay) {
- hideAll(page, "mainDetailButtons", true);
+ if ('Program' !== item.Type || canPlay) {
+ hideAll(page, 'mainDetailButtons', true);
} else {
- hideAll(page, "mainDetailButtons");
+ hideAll(page, 'mainDetailButtons');
}
showRecordingFields(instance, page, item, user);
var groupedVersions = (item.MediaSources || []).filter(function (g) {
- return "Grouping" == g.Type;
+ return 'Grouping' == g.Type;
});
if (user.Policy.IsAdministrator && groupedVersions.length) {
- page.querySelector(".btnSplitVersions").classList.remove("hide");
+ page.querySelector('.btnSplitVersions').classList.remove('hide');
} else {
- page.querySelector(".btnSplitVersions").classList.add("hide");
+ page.querySelector('.btnSplitVersions').classList.add('hide');
}
if (itemContextMenu.getCommands(getContextMenuOptions(item, user)).length) {
- hideAll(page, "btnMoreCommands", true);
+ hideAll(page, 'btnMoreCommands', true);
} else {
- hideAll(page, "btnMoreCommands");
+ hideAll(page, 'btnMoreCommands');
}
- var itemBirthday = page.querySelector("#itemBirthday");
+ var itemBirthday = page.querySelector('#itemBirthday');
- if ("Person" == item.Type && item.PremiereDate) {
+ if ('Person' == item.Type && item.PremiereDate) {
try {
var birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString();
- itemBirthday.classList.remove("hide");
- itemBirthday.innerHTML = globalize.translate("BirthDateValue").replace("{0}", birthday);
+ itemBirthday.classList.remove('hide');
+ itemBirthday.innerHTML = globalize.translate('BirthDateValue').replace('{0}', birthday);
} catch (err) {
- itemBirthday.classList.add("hide");
+ itemBirthday.classList.add('hide');
}
} else {
- itemBirthday.classList.add("hide");
+ itemBirthday.classList.add('hide');
}
- var itemDeathDate = page.querySelector("#itemDeathDate");
+ var itemDeathDate = page.querySelector('#itemDeathDate');
- if ("Person" == item.Type && item.EndDate) {
+ if ('Person' == item.Type && item.EndDate) {
try {
var deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString();
- itemDeathDate.classList.remove("hide");
- itemDeathDate.innerHTML = globalize.translate("DeathDateValue").replace("{0}", deathday);
+ itemDeathDate.classList.remove('hide');
+ itemDeathDate.innerHTML = globalize.translate('DeathDateValue').replace('{0}', deathday);
} catch (err) {
- itemDeathDate.classList.add("hide");
+ itemDeathDate.classList.add('hide');
}
} else {
- itemDeathDate.classList.add("hide");
+ itemDeathDate.classList.add('hide');
}
- var itemBirthLocation = page.querySelector("#itemBirthLocation");
+ var itemBirthLocation = page.querySelector('#itemBirthLocation');
- if ("Person" == item.Type && item.ProductionLocations && item.ProductionLocations.length) {
- var gmap = '' + item.ProductionLocations[0] + "";
- itemBirthLocation.classList.remove("hide");
- itemBirthLocation.innerHTML = globalize.translate("BirthPlaceValue").replace("{0}", gmap);
+ if ('Person' == item.Type && item.ProductionLocations && item.ProductionLocations.length) {
+ var gmap = '' + item.ProductionLocations[0] + '';
+ itemBirthLocation.classList.remove('hide');
+ itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue').replace('{0}', gmap);
} else {
- itemBirthLocation.classList.add("hide");
+ itemBirthLocation.classList.add('hide');
}
setPeopleHeader(page, item);
loading.hide();
- if (item.Type === "Book") {
- hideAll(page, "btnDownload", true);
+ if (item.Type === 'Book') {
+ hideAll(page, 'btnDownload', true);
}
- require(["autoFocuser"], function (autoFocuser) {
+ require(['autoFocuser'], function (autoFocuser) {
autoFocuser.autoFocus(page);
});
}
function logoImageUrl(item, apiClient, options) {
options = options || {};
- options.type = "Logo";
+ options.type = 'Logo';
if (item.ImageTags && item.ImageTags.Logo) {
options.tag = item.ImageTags.Logo;
@@ -697,12 +697,12 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var url = logoImageUrl(item, apiClient, {});
if (url != null) {
- var pageTitle = document.querySelector(".pageTitle");
- pageTitle.style.backgroundImage = "url('" + url + "')";
- pageTitle.classList.add("pageTitleWithLogo");
- pageTitle.innerHTML = "";
+ var pageTitle = document.querySelector('.pageTitle');
+ pageTitle.style.backgroundImage = 'url('' + url + '')';
+ pageTitle.classList.add('pageTitleWithLogo');
+ pageTitle.innerHTML = '';
} else {
- Emby.Page.setTitle("");
+ Emby.Page.setTitle('');
}
}
@@ -710,49 +710,49 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var url = logoImageUrl(item, apiClient, {
maxWidth: 400
});
- var detailLogo = page.querySelector(".detailLogo");
+ var detailLogo = page.querySelector('.detailLogo');
if (!layoutManager.mobile && !userSettings.enableBackdrops()) {
- detailLogo.classList.add("hide");
+ detailLogo.classList.add('hide');
} else if (url) {
- detailLogo.classList.remove("hide");
- detailLogo.classList.add("lazy");
- detailLogo.setAttribute("data-src", url);
+ detailLogo.classList.remove('hide');
+ detailLogo.classList.add('lazy');
+ detailLogo.setAttribute('data-src', url);
imageLoader.lazyImage(detailLogo);
} else {
- detailLogo.classList.add("hide");
+ detailLogo.classList.add('hide');
}
}
function showRecordingFields(instance, page, item, user) {
if (!instance.currentRecordingFields) {
- var recordingFieldsElement = page.querySelector(".recordingFields");
+ var recordingFieldsElement = page.querySelector('.recordingFields');
- if ("Program" == item.Type && user.Policy.EnableLiveTvManagement) {
- require(["recordingFields"], function (recordingFields) {
+ if ('Program' == item.Type && user.Policy.EnableLiveTvManagement) {
+ require(['recordingFields'], function (recordingFields) {
instance.currentRecordingFields = new recordingFields({
parent: recordingFieldsElement,
programId: item.Id,
serverId: item.ServerId
});
- recordingFieldsElement.classList.remove("hide");
+ recordingFieldsElement.classList.remove('hide');
});
} else {
- recordingFieldsElement.classList.add("hide");
- recordingFieldsElement.innerHTML = "";
+ recordingFieldsElement.classList.add('hide');
+ recordingFieldsElement.innerHTML = '';
}
}
}
function renderUserInfo(page, item) {
- var lastPlayedElement = page.querySelector(".itemLastPlayed");
+ var lastPlayedElement = page.querySelector('.itemLastPlayed');
if (item.UserData && item.UserData.LastPlayedDate) {
- lastPlayedElement.classList.remove("hide");
+ lastPlayedElement.classList.remove('hide');
var datePlayed = datetime.parseISO8601Date(item.UserData.LastPlayedDate);
- lastPlayedElement.innerHTML = globalize.translate("DatePlayed") + ": " + datetime.toLocaleDateString(datePlayed) + " " + datetime.getDisplayTime(datePlayed);
+ lastPlayedElement.innerHTML = globalize.translate('DatePlayed') + ': ' + datetime.toLocaleDateString(datePlayed) + ' ' + datetime.getDisplayTime(datePlayed);
} else {
- lastPlayedElement.classList.add("hide");
+ lastPlayedElement.classList.add('hide');
}
}
@@ -761,40 +761,40 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
if (item.DateCreated && itemHelper.enableDateAddedDisplay(item)) {
var dateCreated = datetime.parseISO8601Date(item.DateCreated);
- html.push(globalize.translate("AddedOnValue", datetime.toLocaleDateString(dateCreated) + " " + datetime.getDisplayTime(dateCreated)));
+ html.push(globalize.translate('AddedOnValue', datetime.toLocaleDateString(dateCreated) + ' ' + datetime.getDisplayTime(dateCreated)));
}
var links = [];
if (!layoutManager.tv && item.HomePageUrl) {
- links.push('' + globalize.translate("ButtonWebsite") + "");
+ links.push('' + globalize.translate('ButtonWebsite') + '');
}
if (item.ExternalUrls) {
for (var i = 0, length = item.ExternalUrls.length; i < length; i++) {
var url = item.ExternalUrls[i];
- links.push('' + url.Name + "");
+ links.push('' + url.Name + '');
}
}
if (links.length) {
- html.push(globalize.translate("LinksValue", links.join(", ")));
+ html.push(globalize.translate('LinksValue', links.join(', ')));
}
- linksElem.innerHTML = html.join(", ");
+ linksElem.innerHTML = html.join(', ');
if (html.length) {
- linksElem.classList.remove("hide");
+ linksElem.classList.remove('hide');
} else {
- linksElem.classList.add("hide");
+ linksElem.classList.add('hide');
}
}
function renderDetailImage(page, elem, item, apiClient, editable, imageLoader, indicators) {
- if ("SeriesTimer" === item.Type || "Program" === item.Type) {
+ if ('SeriesTimer' === item.Type || 'Program' === item.Type) {
editable = false;
}
- elem.classList.add("detailimg-hidemobile");
+ elem.classList.add('detailimg-hidemobile');
var imageTags = item.ImageTags || {};
@@ -803,8 +803,8 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
var url;
- var html = "";
- var shape = "portrait";
+ var html = '';
+ var shape = 'portrait';
var detectRatio = false;
/* In the following section, getScreenWidth() is multiplied by 0.5 as the posters
@@ -812,63 +812,63 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
// TODO: Find a reliable way to get the poster width
if (imageTags.Primary) {
url = apiClient.getScaledImageUrl(item.Id, {
- type: "Primary",
+ type: 'Primary',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.ImageTags.Primary
});
detectRatio = true;
} else if (item.BackdropImageTags && item.BackdropImageTags.length) {
url = apiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.BackdropImageTags[0]
});
- shape = "thumb";
+ shape = 'thumb';
} else if (imageTags.Thumb) {
url = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.ImageTags.Thumb
});
- shape = "thumb";
+ shape = 'thumb';
} else if (imageTags.Disc) {
url = apiClient.getScaledImageUrl(item.Id, {
- type: "Disc",
+ type: 'Disc',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.ImageTags.Disc
});
- shape = "square";
+ shape = 'square';
} else if (item.AlbumId && item.AlbumPrimaryImageTag) {
url = apiClient.getScaledImageUrl(item.AlbumId, {
- type: "Primary",
+ type: 'Primary',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.AlbumPrimaryImageTag
});
- shape = "square";
+ shape = 'square';
} else if (item.SeriesId && item.SeriesPrimaryImageTag) {
url = apiClient.getScaledImageUrl(item.SeriesId, {
- type: "Primary",
+ type: 'Primary',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.SeriesPrimaryImageTag
});
} else if (item.ParentPrimaryImageItemId && item.ParentPrimaryImageTag) {
url = apiClient.getScaledImageUrl(item.ParentPrimaryImageItemId, {
- type: "Primary",
+ type: 'Primary',
maxWidth: Math.round(dom.getScreenWidth() * 0.5),
tag: item.ParentPrimaryImageTag
});
}
if (editable && url === undefined) {
- html += "";
+ html += '';
} else if (!editable && url === undefined) {
- html += "";
+ html += '
";
+ html += '
';
}
- var progressHtml = item.IsFolder || !item.UserData ? "" : indicators.getProgressBarHtml(item);
- html += '';
+ var progressHtml = item.IsFolder || !item.UserData ? '' : indicators.getProgressBarHtml(item);
+ html += '
';
if (progressHtml) {
html += progressHtml;
}
- html += "
";
+ html += '
';
elem.innerHTML = html;
if (detectRatio && item.PrimaryImageAspectRatio) {
if (item.PrimaryImageAspectRatio >= 1.48) {
- shape = "thumb";
+ shape = 'thumb';
} else if (item.PrimaryImageAspectRatio >= 0.85 && item.PrimaryImageAspectRatio <= 1.34) {
- shape = "square";
+ shape = 'square';
}
}
- if ("thumb" == shape) {
- elem.classList.add("thumbDetailImageContainer");
- elem.classList.remove("portraitDetailImageContainer");
- elem.classList.remove("squareDetailImageContainer");
- } else if ("square" == shape) {
- elem.classList.remove("thumbDetailImageContainer");
- elem.classList.remove("portraitDetailImageContainer");
- elem.classList.add("squareDetailImageContainer");
+ if ('thumb' == shape) {
+ elem.classList.add('thumbDetailImageContainer');
+ elem.classList.remove('portraitDetailImageContainer');
+ elem.classList.remove('squareDetailImageContainer');
+ } else if ('square' == shape) {
+ elem.classList.remove('thumbDetailImageContainer');
+ elem.classList.remove('portraitDetailImageContainer');
+ elem.classList.add('squareDetailImageContainer');
} else {
- elem.classList.remove("thumbDetailImageContainer");
- elem.classList.add("portraitDetailImageContainer");
- elem.classList.remove("squareDetailImageContainer");
+ elem.classList.remove('thumbDetailImageContainer');
+ elem.classList.add('portraitDetailImageContainer');
+ elem.classList.remove('squareDetailImageContainer');
}
if (url) {
- imageLoader.lazyImage(elem.querySelector("img"), url);
+ imageLoader.lazyImage(elem.querySelector('img'), url);
}
}
function renderImage(page, item, apiClient, user) {
renderDetailImage(
page,
- page.querySelector(".detailImageContainer"),
+ page.querySelector('.detailImageContainer'),
item,
apiClient,
- user.Policy.IsAdministrator && "Photo" != item.MediaType,
+ user.Policy.IsAdministrator && 'Photo' != item.MediaType,
imageLoader,
indicators
);
}
function refreshDetailImageUserData(elem, item) {
- elem.querySelector(".detailImageProgressContainer").innerHTML = indicators.getProgressBarHtml(item);
+ elem.querySelector('.detailImageProgressContainer').innerHTML = indicators.getProgressBarHtml(item);
}
function refreshImage(page, item) {
- refreshDetailImageUserData(page.querySelector(".detailImageContainer"), item);
+ refreshDetailImageUserData(page.querySelector('.detailImageContainer'), item);
}
function setPeopleHeader(page, item) {
- if ("Audio" == item.MediaType || "MusicAlbum" == item.Type || "Book" == item.MediaType || "Photo" == item.MediaType) {
- page.querySelector("#peopleHeader").innerHTML = globalize.translate("HeaderPeople");
+ if ('Audio' == item.MediaType || 'MusicAlbum' == item.Type || 'Book' == item.MediaType || 'Photo' == item.MediaType) {
+ page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderPeople');
} else {
- page.querySelector("#peopleHeader").innerHTML = globalize.translate("HeaderCastAndCrew");
+ page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderCastAndCrew');
}
}
function renderNextUp(page, item, user) {
- var section = page.querySelector(".nextUpSection");
+ var section = page.querySelector('.nextUpSection');
- if ("Series" != item.Type) {
- return void section.classList.add("hide");
+ if ('Series' != item.Type) {
+ return void section.classList.add('hide');
}
connectionManager.getApiClient(item.ServerId).getNextUpEpisodes({
@@ -958,93 +958,93 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
UserId: user.Id
}).then(function (result) {
if (result.Items.length) {
- section.classList.remove("hide");
+ section.classList.remove('hide');
} else {
- section.classList.add("hide");
+ section.classList.add('hide');
}
var html = cardBuilder.getCardsHtml({
items: result.Items,
- shape: "overflowBackdrop",
+ shape: 'overflowBackdrop',
showTitle: true,
- displayAsSpecial: "Season" == item.Type && item.IndexNumber,
+ displayAsSpecial: 'Season' == item.Type && item.IndexNumber,
overlayText: false,
centerText: true,
overlayPlayButton: true
});
- var itemsContainer = section.querySelector(".nextUpItems");
+ var itemsContainer = section.querySelector('.nextUpItems');
itemsContainer.innerHTML = html;
imageLoader.lazyChildren(itemsContainer);
});
}
function setInitialCollapsibleState(page, item, apiClient, context, user) {
- page.querySelector(".collectionItems").innerHTML = "";
+ page.querySelector('.collectionItems').innerHTML = '';
- if ("Playlist" == item.Type) {
- page.querySelector("#childrenCollapsible").classList.remove("hide");
+ if ('Playlist' == item.Type) {
+ page.querySelector('#childrenCollapsible').classList.remove('hide');
renderPlaylistItems(page, item);
- } else if ("Studio" == item.Type || "Person" == item.Type || "Genre" == item.Type || "MusicGenre" == item.Type || "MusicArtist" == item.Type) {
- page.querySelector("#childrenCollapsible").classList.remove("hide");
+ } else if ('Studio' == item.Type || 'Person' == item.Type || 'Genre' == item.Type || 'MusicGenre' == item.Type || 'MusicArtist' == item.Type) {
+ page.querySelector('#childrenCollapsible').classList.remove('hide');
renderItemsByName(page, item);
} else if (item.IsFolder) {
- if ("BoxSet" == item.Type) {
- page.querySelector("#childrenCollapsible").classList.add("hide");
+ if ('BoxSet' == item.Type) {
+ page.querySelector('#childrenCollapsible').classList.add('hide');
}
renderChildren(page, item);
} else {
- page.querySelector("#childrenCollapsible").classList.add("hide");
+ page.querySelector('#childrenCollapsible').classList.add('hide');
}
- if ("Series" == item.Type) {
+ if ('Series' == item.Type) {
renderSeriesSchedule(page, item);
renderNextUp(page, item, user);
} else {
- page.querySelector(".nextUpSection").classList.add("hide");
+ page.querySelector('.nextUpSection').classList.add('hide');
}
renderScenes(page, item);
- if (item.SpecialFeatureCount && 0 != item.SpecialFeatureCount && "Series" != item.Type) {
- page.querySelector("#specialsCollapsible").classList.remove("hide");
+ if (item.SpecialFeatureCount && 0 != item.SpecialFeatureCount && 'Series' != item.Type) {
+ page.querySelector('#specialsCollapsible').classList.remove('hide');
renderSpecials(page, item, user, 6);
} else {
- page.querySelector("#specialsCollapsible").classList.add("hide");
+ page.querySelector('#specialsCollapsible').classList.add('hide');
}
renderCast(page, item);
if (item.PartCount && item.PartCount > 1) {
- page.querySelector("#additionalPartsCollapsible").classList.remove("hide");
+ page.querySelector('#additionalPartsCollapsible').classList.remove('hide');
renderAdditionalParts(page, item, user);
} else {
- page.querySelector("#additionalPartsCollapsible").classList.add("hide");
+ page.querySelector('#additionalPartsCollapsible').classList.add('hide');
}
- if ("MusicAlbum" == item.Type) {
+ if ('MusicAlbum' == item.Type) {
renderMusicVideos(page, item, user);
} else {
- page.querySelector("#musicVideosCollapsible").classList.add("hide");
+ page.querySelector('#musicVideosCollapsible').classList.add('hide');
}
}
function renderOverview(elems, item) {
for (var i = 0, length = elems.length; i < length; i++) {
var elem = elems[i];
- var overview = item.Overview || "";
+ var overview = item.Overview || '';
if (overview) {
elem.innerHTML = overview;
- elem.classList.remove("hide");
- var anchors = elem.querySelectorAll("a");
+ elem.classList.remove('hide');
+ var anchors = elem.querySelectorAll('a');
for (var j = 0, length2 = anchors.length; j < length2; j++) {
- anchors[j].setAttribute("target", "_blank");
+ anchors[j].setAttribute('target', '_blank');
}
} else {
- elem.innerHTML = "";
- elem.classList.add("hide");
+ elem.innerHTML = '';
+ elem.classList.add('hide');
}
}
}
@@ -1055,55 +1055,55 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var genres = item.GenreItems || [];
switch (context) {
- case "music":
- type = "MusicGenre";
+ case 'music':
+ type = 'MusicGenre';
break;
default:
- type = "Genre";
+ type = 'Genre';
}
var html = genres.map(function (p) {
- return '' + p.Name + "";
- }).join(", ");
- var elem = page.querySelector(".genres");
- elem.innerHTML = globalize.translate(genres.length > 1 ? "GenresValue" : "GenreValue", html);
+ }) + ''>' + p.Name + '';
+ }).join(', ');
+ var elem = page.querySelector('.genres');
+ elem.innerHTML = globalize.translate(genres.length > 1 ? 'GenresValue' : 'GenreValue', html);
if (genres.length) {
- elem.classList.remove("hide");
+ elem.classList.remove('hide');
} else {
- elem.classList.add("hide");
+ elem.classList.add('hide');
}
}
function renderDirector(page, item, context) {
var directors = (item.People || []).filter(function (p) {
- return "Director" === p.Type;
+ return 'Director' === p.Type;
});
var html = directors.map(function (p) {
- return '' + p.Name + "";
- }).join(", ");
- var elem = page.querySelector(".directors");
- elem.innerHTML = globalize.translate(directors.length > 1 ? "DirectorsValue" : "DirectorValue", html);
+ }) + ''>' + p.Name + '';
+ }).join(', ');
+ var elem = page.querySelector('.directors');
+ elem.innerHTML = globalize.translate(directors.length > 1 ? 'DirectorsValue' : 'DirectorValue', html);
if (directors.length) {
- elem.classList.remove("hide");
+ elem.classList.remove('hide');
} else {
- elem.classList.add("hide");
+ elem.classList.add('hide');
}
}
@@ -1114,22 +1114,22 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
renderDirector(page, item, context);
renderGenres(page, item, context);
renderChannelGuide(page, apiClient, item);
- var taglineElement = page.querySelector(".tagline");
+ var taglineElement = page.querySelector('.tagline');
if (item.Taglines && item.Taglines.length) {
- taglineElement.classList.remove("hide");
+ taglineElement.classList.remove('hide');
taglineElement.innerHTML = item.Taglines[0];
} else {
- taglineElement.classList.add("hide");
+ taglineElement.classList.add('hide');
}
- var overview = page.querySelector(".overview");
- var externalLinksElem = page.querySelector(".itemExternalLinks");
+ var overview = page.querySelector('.overview');
+ var externalLinksElem = page.querySelector('.itemExternalLinks');
renderOverview([overview], item);
var i;
var itemMiscInfo;
- itemMiscInfo = page.querySelectorAll(".itemMiscInfo-primary");
+ itemMiscInfo = page.querySelectorAll('.itemMiscInfo-primary');
for (i = 0; i < itemMiscInfo.length; i++) {
mediaInfo.fillPrimaryMediaInfo(itemMiscInfo[i], item, {
@@ -1138,24 +1138,24 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
subtitles: false
});
- if (itemMiscInfo[i].innerHTML && "SeriesTimer" !== item.Type) {
- itemMiscInfo[i].classList.remove("hide");
+ if (itemMiscInfo[i].innerHTML && 'SeriesTimer' !== item.Type) {
+ itemMiscInfo[i].classList.remove('hide');
} else {
- itemMiscInfo[i].classList.add("hide");
+ itemMiscInfo[i].classList.add('hide');
}
}
- itemMiscInfo = page.querySelectorAll(".itemMiscInfo-secondary");
+ itemMiscInfo = page.querySelectorAll('.itemMiscInfo-secondary');
for (i = 0; i < itemMiscInfo.length; i++) {
mediaInfo.fillSecondaryMediaInfo(itemMiscInfo[i], item, {
interactive: true
});
- if (itemMiscInfo[i].innerHTML && "SeriesTimer" !== item.Type) {
- itemMiscInfo[i].classList.remove("hide");
+ if (itemMiscInfo[i].innerHTML && 'SeriesTimer' !== item.Type) {
+ itemMiscInfo[i].classList.remove('hide');
} else {
- itemMiscInfo[i].classList.add("hide");
+ itemMiscInfo[i].classList.add('hide');
}
}
@@ -1175,7 +1175,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
scrollX = enableScrollX();
}
- return scrollX ? "overflowPortrait" : "portrait";
+ return scrollX ? 'overflowPortrait' : 'portrait';
}
function getSquareShape(scrollX) {
@@ -1183,35 +1183,35 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
scrollX = enableScrollX();
}
- return scrollX ? "overflowSquare" : "square";
+ return scrollX ? 'overflowSquare' : 'square';
}
function renderMoreFromSeason(view, item, apiClient) {
- var section = view.querySelector(".moreFromSeasonSection");
+ var section = view.querySelector('.moreFromSeasonSection');
if (section) {
- if ("Episode" !== item.Type || !item.SeasonId || !item.SeriesId) {
- return void section.classList.add("hide");
+ if ('Episode' !== item.Type || !item.SeasonId || !item.SeriesId) {
+ return void section.classList.add('hide');
}
var userId = apiClient.getCurrentUserId();
apiClient.getEpisodes(item.SeriesId, {
SeasonId: item.SeasonId,
UserId: userId,
- Fields: "ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount"
+ Fields: 'ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount'
}).then(function (result) {
if (result.Items.length < 2) {
- return void section.classList.add("hide");
+ return void section.classList.add('hide');
}
- section.classList.remove("hide");
- section.querySelector("h2").innerHTML = globalize.translate("MoreFromValue", item.SeasonName);
- var itemsContainer = section.querySelector(".itemsContainer");
+ section.classList.remove('hide');
+ section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.SeasonName);
+ var itemsContainer = section.querySelector('.itemsContainer');
cardBuilder.buildCards(result.Items, {
parentContainer: section,
itemsContainer: itemsContainer,
- shape: "autooverflow",
- sectionTitleTagName: "h2",
+ shape: 'autooverflow',
+ sectionTitleTagName: 'h2',
scalable: true,
showTitle: true,
overlayText: false,
@@ -1219,11 +1219,11 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
includeParentInfoInTitle: false,
allowBottomPadding: false
});
- var card = itemsContainer.querySelector('.card[data-id="' + item.Id + '"]');
+ var card = itemsContainer.querySelector('.card[data-id='' + item.Id + '']');
if (card) {
setTimeout(function () {
- section.querySelector(".emby-scroller").toStart(card.previousSibling || card, true);
+ section.querySelector('.emby-scroller').toStart(card.previousSibling || card, true);
}, 100);
}
});
@@ -1231,28 +1231,28 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function renderMoreFromArtist(view, item, apiClient) {
- var section = view.querySelector(".moreFromArtistSection");
+ var section = view.querySelector('.moreFromArtistSection');
if (section) {
- if ("MusicArtist" === item.Type) {
- if (!apiClient.isMinServerVersion("3.4.1.19")) {
- return void section.classList.add("hide");
+ if ('MusicArtist' === item.Type) {
+ if (!apiClient.isMinServerVersion('3.4.1.19')) {
+ return void section.classList.add('hide');
}
- } else if ("MusicAlbum" !== item.Type || !item.AlbumArtists || !item.AlbumArtists.length) {
- return void section.classList.add("hide");
+ } else if ('MusicAlbum' !== item.Type || !item.AlbumArtists || !item.AlbumArtists.length) {
+ return void section.classList.add('hide');
}
var query = {
- IncludeItemTypes: "MusicAlbum",
+ IncludeItemTypes: 'MusicAlbum',
Recursive: true,
ExcludeItemIds: item.Id,
- SortBy: "ProductionYear,SortName",
- SortOrder: "Descending"
+ SortBy: 'ProductionYear,SortName',
+ SortOrder: 'Descending'
};
- if ("MusicArtist" === item.Type) {
+ if ('MusicArtist' === item.Type) {
query.ContributingArtistIds = item.Id;
- } else if (apiClient.isMinServerVersion("3.4.1.18")) {
+ } else if (apiClient.isMinServerVersion('3.4.1.18')) {
query.AlbumArtistIds = item.AlbumArtists[0].Id;
} else {
query.ArtistIds = item.AlbumArtists[0].Id;
@@ -1260,24 +1260,24 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
apiClient.getItems(apiClient.getCurrentUserId(), query).then(function (result) {
if (!result.Items.length) {
- return void section.classList.add("hide");
+ return void section.classList.add('hide');
}
- section.classList.remove("hide");
+ section.classList.remove('hide');
- if ("MusicArtist" === item.Type) {
- section.querySelector("h2").innerHTML = globalize.translate("HeaderAppearsOn");
+ if ('MusicArtist' === item.Type) {
+ section.querySelector('h2').innerHTML = globalize.translate('HeaderAppearsOn');
} else {
- section.querySelector("h2").innerHTML = globalize.translate("MoreFromValue", item.AlbumArtists[0].Name);
+ section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.AlbumArtists[0].Name);
}
cardBuilder.buildCards(result.Items, {
parentContainer: section,
- itemsContainer: section.querySelector(".itemsContainer"),
- shape: "autooverflow",
- sectionTitleTagName: "h2",
+ itemsContainer: section.querySelector('.itemsContainer'),
+ shape: 'autooverflow',
+ sectionTitleTagName: 'h2',
scalable: true,
- coverImage: "MusicArtist" === item.Type || "MusicAlbum" === item.Type,
+ coverImage: 'MusicArtist' === item.Type || 'MusicAlbum' === item.Type,
showTitle: true,
showParentTitle: false,
centerText: true,
@@ -1290,47 +1290,47 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function renderSimilarItems(page, item, context) {
- var similarCollapsible = page.querySelector("#similarCollapsible");
+ var similarCollapsible = page.querySelector('#similarCollapsible');
if (similarCollapsible) {
- if ("Movie" != item.Type && "Trailer" != item.Type && "Series" != item.Type && "Program" != item.Type && "Recording" != item.Type && "MusicAlbum" != item.Type && "MusicArtist" != item.Type && "Playlist" != item.Type) {
- return void similarCollapsible.classList.add("hide");
+ if ('Movie' != item.Type && 'Trailer' != item.Type && 'Series' != item.Type && 'Program' != item.Type && 'Recording' != item.Type && 'MusicAlbum' != item.Type && 'MusicArtist' != item.Type && 'Playlist' != item.Type) {
+ return void similarCollapsible.classList.add('hide');
}
- similarCollapsible.classList.remove("hide");
+ similarCollapsible.classList.remove('hide');
var apiClient = connectionManager.getApiClient(item.ServerId);
var options = {
userId: apiClient.getCurrentUserId(),
limit: 12,
- fields: "PrimaryImageAspectRatio,UserData,CanDelete"
+ fields: 'PrimaryImageAspectRatio,UserData,CanDelete'
};
- if ("MusicAlbum" == item.Type && item.AlbumArtists && item.AlbumArtists.length) {
+ if ('MusicAlbum' == item.Type && item.AlbumArtists && item.AlbumArtists.length) {
options.ExcludeArtistIds = item.AlbumArtists[0].Id;
}
apiClient.getSimilarItems(item.Id, options).then(function (result) {
if (!result.Items.length) {
- return void similarCollapsible.classList.add("hide");
+ return void similarCollapsible.classList.add('hide');
}
- similarCollapsible.classList.remove("hide");
- var html = "";
+ similarCollapsible.classList.remove('hide');
+ var html = '';
html += cardBuilder.getCardsHtml({
items: result.Items,
- shape: "autooverflow",
- showParentTitle: "MusicAlbum" == item.Type,
+ shape: 'autooverflow',
+ showParentTitle: 'MusicAlbum' == item.Type,
centerText: true,
showTitle: true,
context: context,
lazy: true,
showDetailsMenu: true,
- coverImage: "MusicAlbum" == item.Type || "MusicArtist" == item.Type,
+ coverImage: 'MusicAlbum' == item.Type || 'MusicArtist' == item.Type,
overlayPlayButton: true,
overlayText: false,
- showYear: "Movie" === item.Type || "Trailer" === item.Type || "Series" === item.Type
+ showYear: 'Movie' === item.Type || 'Trailer' === item.Type || 'Series' === item.Type
});
- var similarContent = similarCollapsible.querySelector(".similarContent");
+ var similarContent = similarCollapsible.querySelector('.similarContent');
similarContent.innerHTML = html;
imageLoader.lazyChildren(similarContent);
});
@@ -1338,52 +1338,52 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function renderSeriesAirTime(page, item, isStatic) {
- var seriesAirTime = page.querySelector("#seriesAirTime");
- if ("Series" != item.Type) {
- seriesAirTime.classList.add("hide");
+ var seriesAirTime = page.querySelector('#seriesAirTime');
+ if ('Series' != item.Type) {
+ seriesAirTime.classList.add('hide');
return;
}
- var html = "";
+ var html = '';
if (item.AirDays && item.AirDays.length) {
if (7 == item.AirDays.length) {
- html += "daily";
+ html += 'daily';
} else {
html += item.AirDays.map(function (a) {
- return a + "s";
- }).join(",");
+ return a + 's';
+ }).join(',');
}
}
if (item.AirTime) {
- html += " at " + item.AirTime;
+ html += ' at ' + item.AirTime;
}
if (item.Studios.length) {
if (isStatic) {
- html += " on " + item.Studios[0].Name;
+ html += ' on ' + item.Studios[0].Name;
} else {
var context = inferContext(item);
var href = appRouter.getRouteUrl(item.Studios[0], {
context: context,
- itemType: "Studio",
+ itemType: 'Studio',
serverId: item.ServerId
});
- html += ' on ' + item.Studios[0].Name + "";
+ html += ' on ' + item.Studios[0].Name + '';
}
}
if (html) {
- html = ("Ended" == item.Status ? "Aired " : "Airs ") + html;
+ html = ('Ended' == item.Status ? 'Aired ' : 'Airs ') + html;
seriesAirTime.innerHTML = html;
- seriesAirTime.classList.remove("hide");
+ seriesAirTime.classList.remove('hide');
} else {
- seriesAirTime.classList.add("hide");
+ seriesAirTime.classList.add('hide');
}
}
function renderTags(page, item) {
- var itemTags = page.querySelector(".itemTags");
+ var itemTags = page.querySelector('.itemTags');
var tagElements = [];
var tags = item.Tags || [];
- if ("Program" === item.Type) {
+ if ('Program' === item.Type) {
tags = [];
}
@@ -1392,93 +1392,93 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
if (tagElements.length) {
- itemTags.innerHTML = globalize.translate("TagsValue", tagElements.join(", "));
- itemTags.classList.remove("hide");
+ itemTags.innerHTML = globalize.translate('TagsValue', tagElements.join(', '));
+ itemTags.classList.remove('hide');
} else {
- itemTags.innerHTML = "";
- itemTags.classList.add("hide");
+ itemTags.innerHTML = '';
+ itemTags.classList.add('hide');
}
}
function renderChildren(page, item) {
- var fields = "ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount";
+ var fields = 'ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount';
var query = {
ParentId: item.Id,
Fields: fields
};
- if ("BoxSet" !== item.Type) {
- query.SortBy = "SortName";
+ if ('BoxSet' !== item.Type) {
+ query.SortBy = 'SortName';
}
var promise;
var apiClient = connectionManager.getApiClient(item.ServerId);
var userId = apiClient.getCurrentUserId();
- if ("Series" == item.Type) {
+ if ('Series' == item.Type) {
promise = apiClient.getSeasons(item.Id, {
userId: userId,
Fields: fields
});
- } else if ("Season" == item.Type) {
- fields += ",Overview";
+ } else if ('Season' == item.Type) {
+ fields += ',Overview';
promise = apiClient.getEpisodes(item.SeriesId, {
seasonId: item.Id,
userId: userId,
Fields: fields
});
- } else if ("MusicArtist" == item.Type) {
- query.SortBy = "ProductionYear,SortName";
+ } else if ('MusicArtist' == item.Type) {
+ query.SortBy = 'ProductionYear,SortName';
}
promise = promise || apiClient.getItems(apiClient.getCurrentUserId(), query);
promise.then(function (result) {
- var html = "";
+ var html = '';
var scrollX = false;
var isList = false;
- var childrenItemsContainer = page.querySelector(".childrenItemsContainer");
+ var childrenItemsContainer = page.querySelector('.childrenItemsContainer');
- if ("MusicAlbum" == item.Type) {
+ if ('MusicAlbum' == item.Type) {
html = listView.getListViewHtml({
items: result.Items,
smallIcon: true,
showIndex: true,
- index: "disc",
+ index: 'disc',
showIndexNumberLeft: true,
playFromHere: true,
- action: "playallfromhere",
+ action: 'playallfromhere',
image: false,
- artist: "auto",
+ artist: 'auto',
containerAlbumArtists: item.AlbumArtists,
addToListButton: true
});
isList = true;
- } else if ("Series" == item.Type) {
+ } else if ('Series' == item.Type) {
scrollX = enableScrollX();
html = cardBuilder.getCardsHtml({
items: result.Items,
- shape: "overflowPortrait",
+ shape: 'overflowPortrait',
showTitle: true,
centerText: true,
lazy: true,
overlayPlayButton: true,
allowBottomPadding: !scrollX
});
- } else if ("Season" == item.Type || "Episode" == item.Type) {
- if ("Episode" !== item.Type) {
+ } else if ('Season' == item.Type || 'Episode' == item.Type) {
+ if ('Episode' !== item.Type) {
isList = true;
}
- scrollX = "Episode" == item.Type;
- if (result.Items.length < 2 && "Episode" === item.Type) {
+ scrollX = 'Episode' == item.Type;
+ if (result.Items.length < 2 && 'Episode' === item.Type) {
return;
}
- if ("Episode" === item.Type) {
+ if ('Episode' === item.Type) {
html = cardBuilder.getCardsHtml({
items: result.Items,
- shape: "overflowBackdrop",
+ shape: 'overflowBackdrop',
showTitle: true,
- displayAsSpecial: "Season" == item.Type && item.IndexNumber,
+ displayAsSpecial: 'Season' == item.Type && item.IndexNumber,
playFromHere: true,
overlayText: true,
lazy: true,
@@ -1487,15 +1487,15 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
allowBottomPadding: !scrollX,
includeParentInfoInTitle: false
});
- } else if ("Season" === item.Type) {
+ } else if ('Season' === item.Type) {
html = listView.getListViewHtml({
items: result.Items,
showIndexNumber: false,
enableOverview: true,
- imageSize: "large",
+ imageSize: 'large',
enableSideMediaInfo: false,
highlight: false,
- action: layoutManager.tv ? "resume" : "none",
+ action: layoutManager.tv ? 'resume' : 'none',
infoButton: true,
imagePlayButton: true,
includeParentInfoInTitle: false
@@ -1503,78 +1503,78 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
}
- if ("BoxSet" !== item.Type) {
- page.querySelector("#childrenCollapsible").classList.remove("hide");
+ if ('BoxSet' !== item.Type) {
+ page.querySelector('#childrenCollapsible').classList.remove('hide');
}
if (scrollX) {
- childrenItemsContainer.classList.add("scrollX");
- childrenItemsContainer.classList.add("hiddenScrollX");
- childrenItemsContainer.classList.remove("vertical-wrap");
- childrenItemsContainer.classList.remove("vertical-list");
+ childrenItemsContainer.classList.add('scrollX');
+ childrenItemsContainer.classList.add('hiddenScrollX');
+ childrenItemsContainer.classList.remove('vertical-wrap');
+ childrenItemsContainer.classList.remove('vertical-list');
} else {
- childrenItemsContainer.classList.remove("scrollX");
- childrenItemsContainer.classList.remove("hiddenScrollX");
- childrenItemsContainer.classList.remove("smoothScrollX");
+ childrenItemsContainer.classList.remove('scrollX');
+ childrenItemsContainer.classList.remove('hiddenScrollX');
+ childrenItemsContainer.classList.remove('smoothScrollX');
if (isList) {
- childrenItemsContainer.classList.add("vertical-list");
- childrenItemsContainer.classList.remove("vertical-wrap");
+ childrenItemsContainer.classList.add('vertical-list');
+ childrenItemsContainer.classList.remove('vertical-wrap');
} else {
- childrenItemsContainer.classList.add("vertical-wrap");
- childrenItemsContainer.classList.remove("vertical-list");
+ childrenItemsContainer.classList.add('vertical-wrap');
+ childrenItemsContainer.classList.remove('vertical-list');
}
}
childrenItemsContainer.innerHTML = html;
imageLoader.lazyChildren(childrenItemsContainer);
- if ("BoxSet" == item.Type) {
+ if ('BoxSet' == item.Type) {
var collectionItemTypes = [{
- name: globalize.translate("HeaderVideos"),
- mediaType: "Video"
+ name: globalize.translate('HeaderVideos'),
+ mediaType: 'Video'
}, {
- name: globalize.translate("HeaderSeries"),
- type: "Series"
+ name: globalize.translate('HeaderSeries'),
+ type: 'Series'
}, {
- name: globalize.translate("HeaderAlbums"),
- type: "MusicAlbum"
+ name: globalize.translate('HeaderAlbums'),
+ type: 'MusicAlbum'
}, {
- name: globalize.translate("HeaderBooks"),
- type: "Book"
+ name: globalize.translate('HeaderBooks'),
+ type: 'Book'
}];
renderCollectionItems(page, item, collectionItemTypes, result.Items);
}
});
- if ("Season" == item.Type) {
- page.querySelector("#childrenTitle").innerHTML = globalize.translate("HeaderEpisodes");
- } else if ("Series" == item.Type) {
- page.querySelector("#childrenTitle").innerHTML = globalize.translate("HeaderSeasons");
- } else if ("MusicAlbum" == item.Type) {
- page.querySelector("#childrenTitle").innerHTML = globalize.translate("HeaderTracks");
+ if ('Season' == item.Type) {
+ page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderEpisodes');
+ } else if ('Series' == item.Type) {
+ page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderSeasons');
+ } else if ('MusicAlbum' == item.Type) {
+ page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderTracks');
} else {
- page.querySelector("#childrenTitle").innerHTML = globalize.translate("HeaderItems");
+ page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderItems');
}
- if ("MusicAlbum" == item.Type || "Season" == item.Type) {
- page.querySelector(".childrenSectionHeader").classList.add("hide");
- page.querySelector("#childrenCollapsible").classList.add("verticalSection-extrabottompadding");
+ if ('MusicAlbum' == item.Type || 'Season' == item.Type) {
+ page.querySelector('.childrenSectionHeader').classList.add('hide');
+ page.querySelector('#childrenCollapsible').classList.add('verticalSection-extrabottompadding');
} else {
- page.querySelector(".childrenSectionHeader").classList.remove("hide");
+ page.querySelector('.childrenSectionHeader').classList.remove('hide');
}
}
function renderItemsByName(page, item) {
- require("scripts/itembynamedetailpage".split(","), function () {
+ require('scripts/itembynamedetailpage'.split(','), function () {
window.ItemsByName.renderItems(page, item);
});
}
function renderPlaylistItems(page, item) {
- require("scripts/playlistedit".split(","), function () {
+ require('scripts/playlistedit'.split(','), function () {
PlaylistViewer.render(page, item);
});
}
function renderProgramsForChannel(page, result) {
- var html = "";
+ var html = '';
var currentItems = [];
var currentStartDate = null;
@@ -1584,13 +1584,13 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
if (!(currentStartDate && currentStartDate.toDateString() === itemStartDate.toDateString())) {
if (currentItems.length) {
- html += '';
- html += '
' + datetime.toLocaleDateString(currentStartDate, {
- weekday: "long",
- month: "long",
- day: "numeric"
- }) + "
";
- html += '
' + listView.getListViewHtml({
+ html += '
';
+ html += '
' + datetime.toLocaleDateString(currentStartDate, {
+ weekday: 'long',
+ month: 'long',
+ day: 'numeric'
+ }) + '
';
+ html += '
' + listView.getListViewHtml({
items: currentItems,
enableUserDataButtons: false,
showParentTitle: true,
@@ -1598,7 +1598,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
showProgramTime: true,
mediaInfo: false,
parentTitleWithTitle: true
- }) + "
";
+ }) + '
';
}
currentStartDate = itemStartDate;
@@ -1609,13 +1609,13 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
if (currentItems.length) {
- html += '';
- html += '
' + datetime.toLocaleDateString(currentStartDate, {
- weekday: "long",
- month: "long",
- day: "numeric"
- }) + "
";
- html += '
' + listView.getListViewHtml({
+ html += '
';
+ html += '
' + datetime.toLocaleDateString(currentStartDate, {
+ weekday: 'long',
+ month: 'long',
+ day: 'numeric'
+ }) + '
';
+ html += '
' + listView.getListViewHtml({
items: currentItems,
enableUserDataButtons: false,
showParentTitle: true,
@@ -1623,20 +1623,20 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
showProgramTime: true,
mediaInfo: false,
parentTitleWithTitle: true
- }) + "
";
+ }) + '
';
}
- page.querySelector(".programGuide").innerHTML = html;
+ page.querySelector('.programGuide').innerHTML = html;
}
function renderChannelGuide(page, apiClient, item) {
- if ("TvChannel" === item.Type) {
- page.querySelector(".programGuideSection").classList.remove("hide");
+ if ('TvChannel' === item.Type) {
+ page.querySelector('.programGuideSection').classList.remove('hide');
apiClient.getLiveTvPrograms({
ChannelIds: item.Id,
UserId: apiClient.getCurrentUserId(),
HasAired: false,
- SortBy: "StartDate",
+ SortBy: 'StartDate',
EnableTotalRecordCount: false,
EnableImages: false,
ImageTypeLimit: 0,
@@ -1652,7 +1652,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
apiClient.getLiveTvPrograms({
UserId: apiClient.getCurrentUserId(),
HasAired: false,
- SortBy: "StartDate",
+ SortBy: 'StartDate',
EnableTotalRecordCount: false,
EnableImages: false,
ImageTypeLimit: 0,
@@ -1661,12 +1661,12 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
LibrarySeriesId: item.Id
}).then(function (result) {
if (result.Items.length) {
- page.querySelector("#seriesScheduleSection").classList.remove("hide");
+ page.querySelector('#seriesScheduleSection').classList.remove('hide');
} else {
- page.querySelector("#seriesScheduleSection").classList.add("hide");
+ page.querySelector('#seriesScheduleSection').classList.add('hide');
}
- page.querySelector("#seriesScheduleList").innerHTML = listView.getListViewHtml({
+ page.querySelector('#seriesScheduleList').innerHTML = listView.getListViewHtml({
items: result.Items,
enableUserDataButtons: false,
showParentTitle: false,
@@ -1675,27 +1675,27 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
mediaInfo: false,
showTitle: true,
moreButton: false,
- action: "programdialog"
+ action: 'programdialog'
});
loading.hide();
});
}
function inferContext(item) {
- if ("Movie" === item.Type || "BoxSet" === item.Type) {
- return "movies";
+ if ('Movie' === item.Type || 'BoxSet' === item.Type) {
+ return 'movies';
}
- if ("Series" === item.Type || "Season" === item.Type || "Episode" === item.Type) {
- return "tvshows";
+ if ('Series' === item.Type || 'Season' === item.Type || 'Episode' === item.Type) {
+ return 'tvshows';
}
- if ("MusicArtist" === item.Type || "MusicAlbum" === item.Type || "Audio" === item.Type || "AudioBook" === item.Type) {
- return "music";
+ if ('MusicArtist' === item.Type || 'MusicAlbum' === item.Type || 'Audio' === item.Type || 'AudioBook' === item.Type) {
+ return 'music';
}
- if ("Program" === item.Type) {
- return "livetv";
+ if ('Program' === item.Type) {
+ return 'livetv';
}
return null;
@@ -1724,7 +1724,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function renderCollectionItems(page, parentItem, types, items) {
- page.querySelector(".collectionItems").innerHTML = "";
+ page.querySelector('.collectionItems').innerHTML = '';
var i;
var length;
@@ -1738,7 +1738,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
var otherType = {
- name: globalize.translate("HeaderOtherItems")
+ name: globalize.translate('HeaderOtherItems')
};
var otherTypeItems = items.filter(function (curr) {
return !types.filter(function (t) {
@@ -1752,11 +1752,11 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
if (!items.length) {
renderCollectionItemType(page, parentItem, {
- name: globalize.translate("HeaderItems")
+ name: globalize.translate('HeaderItems')
}, items);
}
- var containers = page.querySelectorAll(".collectionItemsContainer");
+ var containers = page.querySelectorAll('.collectionItemsContainer');
var notifyRefreshNeeded = function () {
renderChildren(page, parentItem);
@@ -1768,33 +1768,33 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
// if nothing in the collection can be played hide play and shuffle buttons
if (!canPlaySomeItemInCollection(items)) {
- hideAll(page, "btnPlay", false);
- hideAll(page, "btnShuffle", false);
+ hideAll(page, 'btnPlay', false);
+ hideAll(page, 'btnShuffle', false);
}
// HACK: Call autoFocuser again because btnPlay may be hidden, but focused by reloadFromItem
// FIXME: Sometimes focus does not move until all (?) sections are loaded
- require(["autoFocuser"], function (autoFocuser) {
+ require(['autoFocuser'], function (autoFocuser) {
autoFocuser.autoFocus(page);
});
}
function renderCollectionItemType(page, parentItem, type, items) {
- var html = "";
- html += '';
- html += '
';
- html += '
';
- html += "" + type.name + "";
- html += "
";
- html += '';
- html += "";
- html += '
';
- var shape = "MusicAlbum" == type.type ? getSquareShape(false) : getPortraitShape(false);
+ var html = '';
+ html += '
';
+ html += '
';
+ html += '
';
+ html += '' + type.name + '';
+ html += '
';
+ html += '';
+ html += '';
+ html += '
';
+ var shape = 'MusicAlbum' == type.type ? getSquareShape(false) : getPortraitShape(false);
html += cardBuilder.getCardsHtml({
items: items,
shape: shape,
showTitle: true,
- showYear: "Video" === type.mediaType || "Series" === type.type,
+ showYear: 'Video' === type.mediaType || 'Series' === type.type,
centerText: true,
lazy: true,
showDetailsMenu: true,
@@ -1803,16 +1803,16 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
showRemoveFromCollection: true,
collectionId: parentItem.Id
});
- html += "
";
- html += "
";
- var collectionItems = page.querySelector(".collectionItems");
- collectionItems.insertAdjacentHTML("beforeend", html);
+ html += '
';
+ html += '
';
+ var collectionItems = page.querySelector('.collectionItems');
+ collectionItems.insertAdjacentHTML('beforeend', html);
imageLoader.lazyChildren(collectionItems);
- collectionItems.querySelector(".btnAddToCollection").addEventListener("click", function () {
- require(["alert"], function (alert) {
+ collectionItems.querySelector('.btnAddToCollection').addEventListener('click', function () {
+ require(['alert'], function (alert) {
alert({
- text: globalize.translate("AddItemToCollectionHelp"),
- html: globalize.translate("AddItemToCollectionHelp") + '
' + globalize.translate("ButtonLearnMore") + ""
+ text: globalize.translate('AddItemToCollectionHelp'),
+ html: globalize.translate('AddItemToCollectionHelp') + '
' + globalize.translate('ButtonLearnMore') + ''
});
});
});
@@ -1820,20 +1820,20 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function renderMusicVideos(page, item, user) {
connectionManager.getApiClient(item.ServerId).getItems(user.Id, {
- SortBy: "SortName",
- SortOrder: "Ascending",
- IncludeItemTypes: "MusicVideo",
+ SortBy: 'SortName',
+ SortOrder: 'Ascending',
+ IncludeItemTypes: 'MusicVideo',
Recursive: true,
- Fields: "PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount",
+ Fields: 'PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount',
AlbumIds: item.Id
}).then(function (result) {
if (result.Items.length) {
- page.querySelector("#musicVideosCollapsible").classList.remove("hide");
- var musicVideosContent = page.querySelector(".musicVideosContent");
+ page.querySelector('#musicVideosCollapsible').classList.remove('hide');
+ var musicVideosContent = page.querySelector('.musicVideosContent');
musicVideosContent.innerHTML = getVideosHtml(result.Items, user);
imageLoader.lazyChildren(musicVideosContent);
} else {
- page.querySelector("#musicVideosCollapsible").classList.add("hide");
+ page.querySelector('#musicVideosCollapsible').classList.add('hide');
}
});
}
@@ -1841,12 +1841,12 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function renderAdditionalParts(page, item, user) {
connectionManager.getApiClient(item.ServerId).getAdditionalVideoParts(user.Id, item.Id).then(function (result) {
if (result.Items.length) {
- page.querySelector("#additionalPartsCollapsible").classList.remove("hide");
- var additionalPartsContent = page.querySelector("#additionalPartsContent");
+ page.querySelector('#additionalPartsCollapsible').classList.remove('hide');
+ var additionalPartsContent = page.querySelector('#additionalPartsContent');
additionalPartsContent.innerHTML = getVideosHtml(result.Items, user);
imageLoader.lazyChildren(additionalPartsContent);
} else {
- page.querySelector("#additionalPartsCollapsible").classList.add("hide");
+ page.querySelector('#additionalPartsCollapsible').classList.add('hide');
}
});
}
@@ -1855,34 +1855,34 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var chapters = item.Chapters || [];
if (chapters.length && !chapters[0].ImageTag && (chapters = []), chapters.length) {
- page.querySelector("#scenesCollapsible").classList.remove("hide");
- var scenesContent = page.querySelector("#scenesContent");
+ page.querySelector('#scenesCollapsible').classList.remove('hide');
+ var scenesContent = page.querySelector('#scenesContent');
- require(["chaptercardbuilder"], function (chaptercardbuilder) {
+ require(['chaptercardbuilder'], function (chaptercardbuilder) {
chaptercardbuilder.buildChapterCards(item, chapters, {
itemsContainer: scenesContent,
- backdropShape: "overflowBackdrop",
- squareShape: "overflowSquare"
+ backdropShape: 'overflowBackdrop',
+ squareShape: 'overflowSquare'
});
});
} else {
- page.querySelector("#scenesCollapsible").classList.add("hide");
+ page.querySelector('#scenesCollapsible').classList.add('hide');
}
}
function getVideosHtml(items, user, limit, moreButtonClass) {
var html = cardBuilder.getCardsHtml({
items: items,
- shape: "auto",
+ shape: 'auto',
showTitle: true,
- action: "play",
+ action: 'play',
overlayText: false,
centerText: true,
showRuntime: true
});
if (limit && items.length > limit) {
- html += '";
+ html += '';
}
return html;
@@ -1890,30 +1890,30 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function renderSpecials(page, item, user, limit) {
connectionManager.getApiClient(item.ServerId).getSpecialFeatures(user.Id, item.Id).then(function (specials) {
- var specialsContent = page.querySelector("#specialsContent");
- specialsContent.innerHTML = getVideosHtml(specials, user, limit, "moreSpecials");
+ var specialsContent = page.querySelector('#specialsContent');
+ specialsContent.innerHTML = getVideosHtml(specials, user, limit, 'moreSpecials');
imageLoader.lazyChildren(specialsContent);
});
}
function renderCast(page, item) {
var people = (item.People || []).filter(function (p) {
- return "Director" !== p.Type;
+ return 'Director' !== p.Type;
});
if (!people.length) {
- return void page.querySelector("#castCollapsible").classList.add("hide");
+ return void page.querySelector('#castCollapsible').classList.add('hide');
}
- page.querySelector("#castCollapsible").classList.remove("hide");
- var castContent = page.querySelector("#castContent");
+ page.querySelector('#castCollapsible').classList.remove('hide');
+ var castContent = page.querySelector('#castContent');
- require(["peoplecardbuilder"], function (peoplecardbuilder) {
+ require(['peoplecardbuilder'], function (peoplecardbuilder) {
peoplecardbuilder.buildPeopleCards(people, {
itemsContainer: castContent,
coverImage: true,
serverId: item.ServerId,
- shape: "overflowPortrait"
+ shape: 'overflowPortrait'
});
});
}
@@ -1955,12 +1955,12 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function splitVersions(instance, page, apiClient, params) {
- require(["confirm"], function (confirm) {
- confirm("Are you sure you wish to split the media sources into separate items?", "Split Media Apart").then(function () {
+ require(['confirm'], function (confirm) {
+ confirm('Are you sure you wish to split the media sources into separate items?', 'Split Media Apart').then(function () {
loading.show();
apiClient.ajax({
- type: "DELETE",
- url: apiClient.getUrl("Videos/" + params.id + "/AlternateSources")
+ type: 'DELETE',
+ url: apiClient.getUrl('Videos/' + params.id + '/AlternateSources')
}).then(function () {
loading.hide();
reload(instance, page, params);
@@ -1970,12 +1970,12 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function getPlayOptions(startPosition) {
- var audioStreamIndex = view.querySelector(".selectAudio").value || null;
+ var audioStreamIndex = view.querySelector('.selectAudio').value || null;
return {
startPositionTicks: startPosition,
- mediaSourceId: view.querySelector(".selectSource").value,
+ mediaSourceId: view.querySelector('.selectSource').value,
audioStreamIndex: audioStreamIndex,
- subtitleStreamIndex: view.querySelector(".selectSubtitles").value
+ subtitleStreamIndex: view.querySelector('.selectSubtitles').value
};
}
@@ -1992,7 +1992,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function playCurrentItem(button, mode) {
var item = currentItem;
- if ("Program" === item.Type) {
+ if ('Program' === item.Type) {
var apiClient = connectionManager.getApiClient(item.ServerId);
return void apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) {
playbackManager.play({
@@ -2001,11 +2001,11 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
});
}
- playItem(item, item.UserData && "resume" === mode ? item.UserData.PlaybackPositionTicks : 0);
+ playItem(item, item.UserData && 'resume' === mode ? item.UserData.PlaybackPositionTicks : 0);
}
function onPlayClick() {
- playCurrentItem(this, this.getAttribute("data-mode"));
+ playCurrentItem(this, this.getAttribute('data-mode'));
}
function onInstantMixClick() {
@@ -2017,7 +2017,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function onDeleteClick() {
- require(["deleteHelper"], function (deleteHelper) {
+ require(['deleteHelper'], function (deleteHelper) {
deleteHelper.deleteItem({
item: currentItem,
navigate: true
@@ -2026,15 +2026,15 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
}
function onCancelSeriesTimerClick() {
- require(["recordingHelper"], function (recordingHelper) {
+ require(['recordingHelper'], function (recordingHelper) {
recordingHelper.cancelSeriesTimerWithConfirmation(currentItem.Id, currentItem.ServerId).then(function () {
- Dashboard.navigate("livetv.html");
+ Dashboard.navigate('livetv.html');
});
});
}
function onCancelTimerClick() {
- require(["recordingHelper"], function (recordingHelper) {
+ require(['recordingHelper'], function (recordingHelper) {
recordingHelper.cancelTimer(connectionManager.getApiClient(currentItem.ServerId), currentItem.TimerId).then(function () {
reload(self, view, params);
});
@@ -2076,7 +2076,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function editImages() {
return new Promise(function (resolve, reject) {
- require(["imageEditor"], function (imageEditor) {
+ require(['imageEditor'], function (imageEditor) {
imageEditor.show({
itemId: currentItem.Id,
serverId: currentItem.ServerId
@@ -2088,7 +2088,7 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
function onWebSocketMessage(e, data) {
var msg = data;
- if ("UserDataChanged" === msg.MessageType && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) {
+ if ('UserDataChanged' === msg.MessageType && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) {
var key = currentItem.UserData.Key;
var userData = msg.Data.UserDataList.filter(function (u) {
return u.Key == key;
@@ -2105,46 +2105,46 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
var currentItem;
var self = this;
var apiClient = params.serverId ? connectionManager.getApiClient(params.serverId) : ApiClient;
- view.querySelectorAll(".btnPlay");
- bindAll(view, ".btnPlay", "click", onPlayClick);
- bindAll(view, ".btnResume", "click", onPlayClick);
- bindAll(view, ".btnInstantMix", "click", onInstantMixClick);
- bindAll(view, ".btnShuffle", "click", onShuffleClick);
- bindAll(view, ".btnPlayTrailer", "click", onPlayTrailerClick);
- bindAll(view, ".btnCancelSeriesTimer", "click", onCancelSeriesTimerClick);
- bindAll(view, ".btnCancelTimer", "click", onCancelTimerClick);
- bindAll(view, ".btnDeleteItem", "click", onDeleteClick);
- bindAll(view, ".btnDownload", "click", onDownloadClick);
- view.querySelector(".btnMoreCommands i").innerHTML = "";
- view.querySelector(".trackSelections").addEventListener("submit", onTrackSelectionsSubmit);
- view.querySelector(".btnSplitVersions").addEventListener("click", function () {
+ view.querySelectorAll('.btnPlay');
+ bindAll(view, '.btnPlay', 'click', onPlayClick);
+ bindAll(view, '.btnResume', 'click', onPlayClick);
+ bindAll(view, '.btnInstantMix', 'click', onInstantMixClick);
+ bindAll(view, '.btnShuffle', 'click', onShuffleClick);
+ bindAll(view, '.btnPlayTrailer', 'click', onPlayTrailerClick);
+ bindAll(view, '.btnCancelSeriesTimer', 'click', onCancelSeriesTimerClick);
+ bindAll(view, '.btnCancelTimer', 'click', onCancelTimerClick);
+ bindAll(view, '.btnDeleteItem', 'click', onDeleteClick);
+ bindAll(view, '.btnDownload', 'click', onDownloadClick);
+ view.querySelector('.btnMoreCommands i').innerHTML = '';
+ view.querySelector('.trackSelections').addEventListener('submit', onTrackSelectionsSubmit);
+ view.querySelector('.btnSplitVersions').addEventListener('click', function () {
splitVersions(self, view, apiClient, params);
});
- bindAll(view, ".btnMoreCommands", "click", onMoreCommandsClick);
- view.querySelector(".selectSource").addEventListener("change", function () {
+ bindAll(view, '.btnMoreCommands', 'click', onMoreCommandsClick);
+ view.querySelector('.selectSource').addEventListener('change', function () {
renderVideoSelections(view, self._currentPlaybackMediaSources);
renderAudioSelections(view, self._currentPlaybackMediaSources);
renderSubtitleSelections(view, self._currentPlaybackMediaSources);
});
- view.addEventListener("click", function (e) {
- if (dom.parentWithClass(e.target, "moreScenes")) {
+ view.addEventListener('click', function (e) {
+ if (dom.parentWithClass(e.target, 'moreScenes')) {
renderScenes(view, currentItem);
- } else if (dom.parentWithClass(e.target, "morePeople")) {
+ } else if (dom.parentWithClass(e.target, 'morePeople')) {
renderCast(view, currentItem);
- } else if (dom.parentWithClass(e.target, "moreSpecials")) {
+ } else if (dom.parentWithClass(e.target, 'moreSpecials')) {
apiClient.getCurrentUser().then(function (user) {
renderSpecials(view, currentItem, user);
});
}
});
- view.querySelector(".detailImageContainer").addEventListener("click", function (e) {
- if (dom.parentWithClass(e.target, "itemDetailGalleryLink")) {
+ view.querySelector('.detailImageContainer').addEventListener('click', function (e) {
+ if (dom.parentWithClass(e.target, 'itemDetailGalleryLink')) {
editImages().then(function () {
reload(self, view, params);
});
}
});
- view.addEventListener("viewshow", function (e) {
+ view.addEventListener('viewshow', function (e) {
var page = this;
if (layoutManager.mobile) {
@@ -2160,15 +2160,15 @@ define(["loading", "appRouter", "layoutManager", "connectionManager", "userSetti
reload(self, page, params);
}
- events.on(apiClient, "message", onWebSocketMessage);
- events.on(playbackManager, "playerchange", onPlayerChange);
+ events.on(apiClient, 'message', onWebSocketMessage);
+ events.on(playbackManager, 'playerchange', onPlayerChange);
});
- view.addEventListener("viewbeforehide", function () {
- events.off(apiClient, "message", onWebSocketMessage);
- events.off(playbackManager, "playerchange", onPlayerChange);
+ view.addEventListener('viewbeforehide', function () {
+ events.off(apiClient, 'message', onWebSocketMessage);
+ events.off(playbackManager, 'playerchange', onPlayerChange);
libraryMenu.setTransparentMenu(false);
});
- view.addEventListener("viewdestroy", function () {
+ view.addEventListener('viewdestroy', function () {
currentItem = null;
self._currentPlaybackMediaSources = null;
self.currentRecordingFields = null;