diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 93796278c4..d8fe5424ec 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -1,201 +1,196 @@ var LibraryBrowser = { + + getPosterViewHtml: function (options) { - getPosterViewHtml: function (options) { + var items = options.items; - var items = options.items; + var primaryImageAspectRatio = options.useAverageAspectRatio ? LibraryBrowser.getAveragePrimaryImageAspectRatio(items) : null; - var primaryImageAspectRatio = options.useAverageAspectRatio ? LibraryBrowser.getAveragePrimaryImageAspectRatio(items) : null; + var html = ""; - var html = ""; + for (var i = 0, length = items.length; i < length; i++) { + var item = items[i]; - for (var i = 0, length = items.length; i < length; i++) { - var item = items[i]; + var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary; - var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary; + var href = item.url || (item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id); - var href = item.url || (item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id); + var showText = options.showTitle || !hasPrimaryImage || (item.Type !== 'Movie' && item.Type !== 'Series' && item.Type !== 'Season' && item.Type !== 'Trailer'); - var showText = options.showTitle || !hasPrimaryImage || (item.Type !== 'Movie' && item.Type !== 'Series' && item.Type !== 'Season' && item.Type !== 'Trailer'); + var cssClass = showText ? "posterViewItem" : "posterViewItem posterViewItemWithNoText"; - var cssClass = showText ? "posterViewItem" : "posterViewItem posterViewItemWithNoText"; + html += "
"; - html += "
"; + if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) { + html += ""; + } else if (hasPrimaryImage) { - if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) { - html += ""; - } else if (hasPrimaryImage) { + var height = 300; + var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null; - var height = 300; - var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null; + html += ""; - html += ""; + } else if (item.BackdropImageTags && item.BackdropImageTags.length) { + html += ""; + } else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") { - } - else if (item.BackdropImageTags && item.BackdropImageTags.length) { - html += ""; - } - else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") { + html += ""; + } else { - html += ""; - } - else { + html += ""; + } - html += ""; - } + if (showText) { + html += "
"; + html += item.Name; + html += "
"; + } - if (showText) { - html += "
"; - html += item.Name; - html += "
"; - } + html += "
"; + } - html += "
"; - } + return html; + }, - return html; - }, + getEpisodePosterViewHtml: function (options) { - getEpisodePosterViewHtml: function (options) { + var items = options.items; - var items = options.items; + var primaryImageAspectRatio = options.useAverageAspectRatio ? LibraryBrowser.getAveragePrimaryImageAspectRatio(items) : null; - var primaryImageAspectRatio = options.useAverageAspectRatio ? LibraryBrowser.getAveragePrimaryImageAspectRatio(items) : null; + var html = ""; - var html = ""; + for (var i = 0, length = items.length; i < length; i++) { + var item = items[i]; - for (var i = 0, length = items.length; i < length; i++) { - var item = items[i]; + var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary; - var hasPrimaryImage = item.ImageTags && item.ImageTags.Primary; + var href = item.url || (item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id); - var href = item.url || (item.IsFolder ? (item.Id ? "itemList.html?parentId=" + item.Id : "#") : "itemdetails.html?id=" + item.Id); + var showText = options.showTitle || !hasPrimaryImage || (item.Type !== 'Movie' && item.Type !== 'Series' && item.Type !== 'Season' && item.Type !== 'Trailer'); - var showText = options.showTitle || !hasPrimaryImage || (item.Type !== 'Movie' && item.Type !== 'Series' && item.Type !== 'Season' && item.Type !== 'Trailer'); + var cssClass = showText ? "posterViewItem posterViewItemWithDualText" : "posterViewItem posterViewItemWithNoText"; - var cssClass = showText ? "posterViewItem posterViewItemWithDualText" : "posterViewItem posterViewItemWithNoText"; + html += "
"; - html += "
"; + if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) { + html += ""; + } else if (hasPrimaryImage) { - if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) { - html += ""; - } else if (hasPrimaryImage) { + var height = 300; + var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null; - var height = 300; - var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null; + html += ""; - html += ""; + } else if (item.BackdropImageTags && item.BackdropImageTags.length) { + html += ""; + } else { + html += ""; + } - } - else if (item.BackdropImageTags && item.BackdropImageTags.length) { - html += ""; - } - else { - html += ""; - } + if (showText) { + html += "
"; + if (item.SeriesName != null) { + html += item.SeriesName; + html += "
"; + html += "
"; + } + if (item.ParentIndexNumber != null) { + html += item.ParentIndexNumber + "."; + } + if (item.IndexNumber != null) { + html += item.IndexNumber + " -"; + } - if (showText) { - html += "
"; - if (item.SeriesName != null) { - html += item.SeriesName; - html += "
"; - html += "
"; - } - if (item.ParentIndexNumber != null) { - html += item.ParentIndexNumber + "."; - } - if (item.IndexNumber != null) { - html += item.IndexNumber + " -"; - } + html += " " + item.Name; + html += "
"; + } - html += " "+item.Name; - html += "
"; - } + html += "
"; + } - html += "
"; - } + return html; + }, - return html; - }, + getAveragePrimaryImageAspectRatio: function (items) { - getAveragePrimaryImageAspectRatio: function (items) { + var values = []; - var values = []; + for (var i = 0, length = items.length; i < length; i++) { - for (var i = 0, length = items.length; i < length; i++) { + var ratio = items[i].PrimaryImageAspectRatio || 0; - var ratio = items[i].PrimaryImageAspectRatio || 0; + if (!ratio) { + continue; + } - if (!ratio) { - continue; - } + values[values.length] = ratio; + } - values[values.length] = ratio; - } + if (!values.length) { + return null; + } - if (!values.length) { - return null; - } + // Use the median + values.sort(function (a, b) { return a - b; }); - // Use the median - values.sort(function (a, b) { return a - b; }); + var half = Math.floor(values.length / 2); - var half = Math.floor(values.length / 2); + if (values.length % 2) + return values[half]; + else + return (values[half - 1] + values[half]) / 2.0; + }, - if (values.length % 2) - return values[half]; - else - return (values[half - 1] + values[half]) / 2.0; - }, + metroColors: ["#6FBD45", "#4BB3DD", "#4164A5", "#E12026", "#800080", "#E1B222", "#008040", "#0094FF", "#FF00C7", "#FF870F", "#7F0037"], - metroColors: ["#6FBD45", "#4BB3DD", "#4164A5", "#E12026", "#800080", "#E1B222", "#008040", "#0094FF", "#FF00C7", "#FF870F", "#7F0037"], + getRandomMetroColor: function () { - getRandomMetroColor: function () { + var index = Math.floor(Math.random() * (LibraryBrowser.metroColors.length - 1)); - var index = Math.floor(Math.random() * (LibraryBrowser.metroColors.length - 1)); + return LibraryBrowser.metroColors[index]; + }, - return LibraryBrowser.metroColors[index]; - }, + getMetroColor: function (str) { - getMetroColor: function (str) { + if (str) { + var char = str.substr(0, 1).charCodeAt(); + var index = String(char).substr(char.length, 1); - if (str) { - var char = str.substr(0,1).charCodeAt(); - var index = String(char).substr(char.length,1); + return LibraryBrowser.metroColors[index]; + } else { + return LibraryBrowser.getRandomMetroColor(); + } - return LibraryBrowser.metroColors[index]; - }else { - return LibraryBrowser.getRandomMetroColor(); - } - - } -} \ No newline at end of file + } +}; \ No newline at end of file