diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 488d6160c4..15c0008dbe 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -489,7 +489,6 @@ a.itemTag:hover { box-shadow: 0px 0 20px #000; border: solid 1px #222; margin-top: -20px; - margin-bottom: 5px; } .noBackdrop .itemDetailImage { @@ -585,6 +584,14 @@ a.itemTag:hover { overflow: hidden; } +.lblDetailTab { + font-size: 16px!important; + font-weight: 400!important; + font-family: 'Open Sans'; + padding: .5em 1.2em; + border-color: #1f1f1f !important; +} + .editMetadataForm { max-width: 100%; } @@ -638,7 +645,7 @@ a.itemTag:hover { .detailImageProgressContainer { position: absolute; - bottom: 7px; + bottom: 3px; right: 0; left: 0; text-align: center; @@ -767,7 +774,7 @@ a.itemTag:hover { display: block; } - .itemBackdrop { + .itemBackdrop:not(.noBackdrop) { border-bottom: 1px solid #111; } } @@ -852,12 +859,15 @@ a.itemTag:hover { } .mediaInfoStream { - margin: 1em 0; + margin: 1em 2em 1em 0; + display: inline-block; color: #bbb; + vertical-align: top; } .mediaInfoStreamType { - margin-right: 1em; + display: block; + font-size: 16px; color: #fff; } @@ -866,8 +876,8 @@ a.itemTag:hover { } .mediaInfoLabel { - color: #bbb; - margin-right: 3px; + color: #aaa; + margin-right: 1em; } .posterRibbon { @@ -1068,7 +1078,7 @@ a.itemTag:hover { .alphabetPicker { position: fixed; right: 2px; - bottom: 10px; + bottom: 5px; width: 27px; z-index: 1000; text-align: center; diff --git a/dashboard-ui/css/posteritem.css b/dashboard-ui/css/posteritem.css index f84f4d50c7..741096a63c 100644 --- a/dashboard-ui/css/posteritem.css +++ b/dashboard-ui/css/posteritem.css @@ -14,13 +14,6 @@ transition: all 500ms ease; } -/*.posterItemOverlayTarget { - position: absolute; - right: 0; - top: 50%; - z-index: 999; -}*/ - .posterItemOverlayTarget { position: absolute; right: 0; @@ -206,6 +199,14 @@ } } +@media all and (max-width: 1200px) { + + .portraitPosterItem .posterItemOverlayInner { + padding-left: 7px; + padding-right: 7px; + } +} + @media all and (min-width: 540px) { .backdropPosterItem { diff --git a/dashboard-ui/episodes.html b/dashboard-ui/episodes.html index 8736aa4bb9..78b28e3428 100644 --- a/dashboard-ui/episodes.html +++ b/dashboard-ui/episodes.html @@ -24,7 +24,7 @@
- +
diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index cd4024bc23..95d24dcbd3 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -112,58 +112,75 @@ +
+ + + + + + + + +
Previous Next

-
- - - - - - - - -
-
- Details -
-
-
-

-

-

-

-

-

- -

+
+
+ +
+ +
+

+

+

+

+

+ +
+
+
+ +
+
+ Media Versions + +
+
+
+
+
+

+

+

+
+
@@ -171,13 +188,6 @@
-
-
- Media Versions - -
-
-
Additional Parts diff --git a/dashboard-ui/movies.html b/dashboard-ui/movies.html index 8603e4b8f9..2f567b0d72 100644 --- a/dashboard-ui/movies.html +++ b/dashboard-ui/movies.html @@ -32,7 +32,7 @@
- +
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 263cbb441a..7cc4d85f98 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -312,6 +312,7 @@ } renderTags(page, item); + renderKeywords(page, item); renderSeriesAirTime(page, item, context); @@ -327,15 +328,67 @@ $('#artist', page).hide(); } - var detailsSection = $('#detailsSection', page); - var elem = $('.detailSectionContent', detailsSection)[0]; + renderTabButtons(page, item); + } + + function renderTabButtons(page, item) { + + var tabsHtml = ''; + + var elem = $('.tabDetails', page)[0]; var text = elem.textContent || elem.innerText; - if (!text.trim()) { - detailsSection.addClass('hide'); - } else { - detailsSection.removeClass('hide'); + if (text.trim()) { + tabsHtml += ''; + tabsHtml += ''; } + + if (item.MediaType == "Audio" || item.MediaType == "Video") { + tabsHtml += ''; + tabsHtml += ''; + } + + elem = $('.tabTags', page)[0]; + text = elem.textContent || elem.innerText; + + if (text.trim()) { + tabsHtml += ''; + tabsHtml += ''; + } + + if (tabsHtml) { + + tabsHtml = '
' + tabsHtml; + tabsHtml += '
'; + + $('.tabButtons', page).html(tabsHtml).trigger('create'); + + $('#detailsSection', page).removeClass('hide'); + + + var elems = $('.radioDetailTab', page).on('change', function () { + + $('.detailTab', page).hide(); + $('.' + this.value, page).show(); + }); + + elems[0].click(); + $(elems[0]).trigger('change'); + + } else { + $('#detailsSection', page).addClass('hide'); + + $('.tabButtons', page).empty(); + } + + //var elem = $('.detailSectionContent', detailsSection)[0]; + //var text = elem.textContent || elem.innerText; + + //if (!text.trim()) { + // detailsSection.addClass('hide'); + //} else { + // detailsSection.removeClass('hide'); + //} } function getArtistLinksHtml(artists) { @@ -451,7 +504,7 @@ var options = { userId: Dashboard.getCurrentUserId(), - limit: item.Type == "MusicAlbum" ? 4 : 5, + limit: item.Type == "MusicAlbum" ? 4 : 6, fields: "PrimaryImageAspectRatio,UserData" }; @@ -538,7 +591,7 @@ if (item.Tags && item.Tags.length) { var html = ''; - + html += '

Tags

'; for (var i = 0, length = item.Tags.length; i < length; i++) { html += '
' + item.Tags[i] + '
'; @@ -552,6 +605,25 @@ } } + function renderKeywords(page, item) { + + if (item.Keywords && item.Keywords.length) { + + var html = ''; + html += '

Plot Keywords

'; + for (var i = 0, length = item.Keywords.length; i < length; i++) { + + html += '
' + item.Keywords[i] + '
'; + + } + + $('.itemKeywords', page).show().html(html); + + } else { + $('.itemKeywords', page).hide(); + } + } + function renderChildren(page, item, user) { var fields = "ItemCounts,AudioInfo,PrimaryImageAspectRatio"; @@ -1016,52 +1088,69 @@ html += '
'; - html += '' + type + ':'; + html += '' + type + ''; var attributes = []; if (stream.Language && stream.Type != "Video") { - attributes.push('' + stream.Language + ''); + attributes.push('Language' + stream.Language + ''); } if (stream.Codec && stream.Codec != "dca") { - attributes.push('' + stream.Codec.toUpperCase() + ''); + attributes.push('Codec' + stream.Codec.toUpperCase() + ''); } if (stream.Profile && stream.Codec == "dca") { - attributes.push('' + stream.Profile.toUpperCase() + ''); + attributes.push('Codec' + stream.Profile.toUpperCase() + ''); + } + else if (stream.Profile) { + attributes.push('Profile' + stream.Profile + ''); + } + + if (stream.Level) { + attributes.push('Level' + stream.Level + ''); } if (stream.Width || stream.Height) { - attributes.push('' + stream.Width + 'x' + stream.Height + ''); + attributes.push('Resolution' + stream.Width + 'x' + stream.Height + ''); } if (stream.AspectRatio && stream.Codec != "mjpeg") { - attributes.push('' + stream.AspectRatio + ''); + attributes.push('Aspect Ratio' + stream.AspectRatio + ''); + } + + if (type == "Video") { + attributes.push('Interlaced' + (stream.IsInterlaced ? 'Yes' : 'No') + ''); + } + + if (stream.AverageFrameRate || stream.RealFrameRate) { + attributes.push('Framerate' + (stream.AverageFrameRate || stream.RealFrameRate) + ''); } if (stream.ChannelLayout) { - attributes.push('' + stream.ChannelLayout + ''); + attributes.push('Layout' + stream.ChannelLayout + ''); } else if (stream.Channels) { - attributes.push('' + stream.Channels + ' ch'); + attributes.push('Channels' + stream.Channels + ' ch'); } if (stream.BitRate && stream.Codec != "mjpeg") { - attributes.push('' + (parseInt(stream.BitRate / 1000)) + ' kbps'); + attributes.push('Bitrate' + (parseInt(stream.BitRate / 1000)) + ' kbps'); } - if (stream.IsDefault && stream.Type != "Video") { - attributes.push('Default'); - } - if (stream.IsForced) { - attributes.push('Forced'); - } - if (stream.IsExternal) { - attributes.push('External'); + if (stream.SampleRate) { + attributes.push('Sample Rate' + stream.SampleRate + ' khz'); } - html += attributes.join(' • '); + if (stream.Type != "Video") { + attributes.push('Default' + (stream.IsDefault ? 'Yes' : 'No') + ''); + } + if (stream.Type == "Subtitle") { + attributes.push('Forced' + (stream.IsForced ? 'Yes' : 'No') + ''); + attributes.push('External' + (stream.IsExternal ? 'Yes' : 'No') + ''); + } + + html += attributes.join('
'); html += '
'; } @@ -1201,7 +1290,7 @@ } if (limit && casts.length > limit) { - html += '

'; + html += '

'; } $('#castContent', page).html(html).trigger('create'); diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index adaba1bfa3..4bc3b1ed99 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -350,7 +350,7 @@ if (selection.length < 2) { Dashboard.alert({ - message: "Please select two or more items to combine.", + message: "Please select two or more items to group together.", title: "Error" }); diff --git a/dashboard-ui/scripts/useredit.js b/dashboard-ui/scripts/useredit.js index 3bc3686722..ddf34110db 100644 --- a/dashboard-ui/scripts/useredit.js +++ b/dashboard-ui/scripts/useredit.js @@ -138,7 +138,7 @@ var deferred = $.Deferred(); deferred.resolveWith(null, [{ - Configuration: {} + Configuration: { IsAdministrator: true } }]); promise1 = deferred.promise();