diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css index d131e7fba1..4640ec5979 100644 --- a/dashboard-ui/css/card.css +++ b/dashboard-ui/css/card.css @@ -524,3 +524,37 @@ width: 12.5%; } } + + + +/** horizontalBackdropCard */ +.horizontalBackdropCard .cardPadder { + padding-bottom: 56.25%; +} + + +.horizontalBackdropCard { + width: 75%; +} + +@media all and (min-width: 500px) { + + .horizontalBackdropCard { + width: 50%; + } +} + +@media all and (min-width: 800px) { + + .horizontalBackdropCard { + width: 31%; + } +} + +.horizontalBackdropCard .cardImage { + border-radius: 4px; +} + +.horizontalBackdropCard .cardBox { + margin: 2px !important; +} diff --git a/dashboard-ui/css/images/kids/bg.jpg b/dashboard-ui/css/images/kids/bg.jpg new file mode 100644 index 0000000000..d9ef695699 Binary files /dev/null and b/dashboard-ui/css/images/kids/bg.jpg differ diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 685c9ed6a1..b55d38ffa2 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -1447,4 +1447,4 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { .smallDetailImageContainer { padding-left: 1em; } -} +} \ No newline at end of file diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index fa18e7afe5..736b695af2 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -268,6 +268,7 @@ h1 .imageLink { border: 0; padding: 0; cursor: pointer; + outline: none; } .imageButton:hover { diff --git a/dashboard-ui/edititemimages.html b/dashboard-ui/edititemimages.html index 9b6437acc0..13b90c45ea 100644 --- a/dashboard-ui/edititemimages.html +++ b/dashboard-ui/edititemimages.html @@ -8,8 +8,7 @@
-
    -
+
    @@ -82,6 +81,7 @@ + @@ -125,6 +125,7 @@ + diff --git a/dashboard-ui/kids.html b/dashboard-ui/kids.html new file mode 100644 index 0000000000..c8fc57ca3e --- /dev/null +++ b/dashboard-ui/kids.html @@ -0,0 +1,85 @@ + + + + ${TitleMediaBrowser} + + +
    +
    + +
    +
    +
    +
    ${HeaderAdultsReadHere}
    + +
    +
    ${KidsModeAdultInstruction}
    +
    + +

    + ${ButtonConfigurePinCode} +

    + + ${ButtonExit} +
    +
    + + + +
    + +
    +
    Icons
    +
    +
    +
    + + +
    + + +
    + + diff --git a/dashboard-ui/scripts/kids.js b/dashboard-ui/scripts/kids.js new file mode 100644 index 0000000000..ba8f29737d --- /dev/null +++ b/dashboard-ui/scripts/kids.js @@ -0,0 +1,125 @@ +(function ($, document, window) { + + function showSignIn(page) { + + $('.kidsOptionsLogin', page).fadeIn(); + + $('#txtPinCode', page).val(''); + $('.btnOptions', page).hide(); + $('.kidContent', page).hide(); + } + + function validatePin(page) { + + } + + function loadContent(page) { + + var options = { + + SortBy: "Random", + SortOrder: "Descending", + MediaTypes: "Video", + Limit: 100, + Recursive: true, + Fields: "PrimaryImageAspectRatio", + ExcludeLocationTypes: "Virtual", + ImageTypeLimit: 1, + EnableImageTypes: "Primary,Backdrop,Thumb" + }; + + ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) { + + $('.itemsContainer', page).html(LibraryBrowser.getPosterViewHtml({ + + items: result.Items, + shape: "horizontalBackdrop", + preferThumb: true, + overlayText: true, + lazy: true, + defaultAction: 'play', + coverImage: true, + enableImageEnhancers: false + + })).lazyChildren(); + + }); + + } + + $(document).on('pageshow', "#kidsPage", function () { + + var page = this; + + var userId = Dashboard.getCurrentUserId(); + + $('.kidContent', page).hide(); + + $('.kidsWelcome', page).show(); + $('.lnkPinCode', page).attr('href', 'myprofile.html?userId=' + userId); + $('.btnOptions', page).buttonEnabled(false); + $('.kidsOptionsLogin', page).hide(); + $('.kidsOptions', page).hide(); + + $('.kidsBackdropContainer').css('background-image', 'url(css/images/kids/bg.jpg)'); + + }).on('pageinit', "#kidsPage", function () { + + var page = this; + + $('.btnDismissWelcome', page).on('click', function () { + + $('.kidsWelcome', page).fadeOut(); + $('.btnOptions', page).buttonEnabled(true); + $('.kidContent', page).show(); + loadContent(page); + + }); + + $('.btnOptions', page).on('click', function () { + + showSignIn(page); + }); + + $('.btnCancelPin', page).on('click', function () { + + $('.kidsOptionsLogin', page).fadeOut(); + $('.btnOptions', page).show(); + $('.kidContent', page).show(); + }); + }); + + window.KidsPage = { + + onPinSubmit: function () { + + var page = $(this).parents('.page'); + + if (validatePin(page)) { + + $('.kidsOptionsLogin', page).hide(); + $('.kidsOptions', page).fadeIn(); + + } else { + Dashboard.alert({ + message: 'Invalid pin code entered. Please try again.', + title: 'Input Error' + }); + } + + return false; + }, + + onOptionsSubmit: function () { + + var page = $(this).parents('.page'); + + $('.kidsOptions', page).fadeOut(); + $('.btnOptions', page).show(); + $('.kidContent', page).show(); + + return false; + } + }; + +})(jQuery, document, window); diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 69aa3fe7b4..911c996a02 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -710,7 +710,13 @@ var href = LibraryBrowser.getHref(item, options.context); html += '
  • '; - var defaultActionAttribute = options.defaultAction ? (' data-action="' + options.defaultAction + '" class="itemWithAction"') : ''; + var defaultAction = options.defaultAction; + if (defaultAction == 'play' || defaultAction == 'playallfromhere') { + if (item.PlayAccess != 'Full') { + defaultAction = null; + } + } + var defaultActionAttribute = defaultAction ? (' data-action="' + defaultAction + '" class="itemWithAction"') : ''; html += ''; var imgUrl; @@ -1014,6 +1020,7 @@ var forceName = false; var downloadHeight = 576; + var enableImageEnhancers = options.enableImageEnhancers !== false; if (options.autoThumb && item.ImageTags && item.ImageTags.Primary && item.PrimaryImageAspectRatio && item.PrimaryImageAspectRatio >= 1.5) { @@ -1024,7 +1031,8 @@ type: "Primary", height: height, width: width, - tag: item.ImageTags.Primary + tag: item.ImageTags.Primary, + enableImageEnhancers: enableImageEnhancers }); } else if (options.autoThumb && item.ImageTags && item.ImageTags.Thumb) { @@ -1032,7 +1040,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Thumb", maxWidth: downloadHeight, - tag: item.ImageTags.Thumb + tag: item.ImageTags.Thumb, + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) { @@ -1040,7 +1049,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Backdrop", maxWidth: downloadHeight, - tag: item.BackdropImageTags[0] + tag: item.BackdropImageTags[0], + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) { @@ -1048,7 +1058,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Thumb", maxWidth: downloadHeight, - tag: item.ImageTags.Thumb + tag: item.ImageTags.Thumb, + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferBanner && item.ImageTags && item.ImageTags.Banner) { @@ -1056,7 +1067,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Banner", maxWidth: 700, - tag: item.ImageTags.Banner + tag: item.ImageTags.Banner, + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferThumb && item.SeriesThumbImageTag && options.inheritThumb !== false) { @@ -1064,14 +1076,16 @@ imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, { type: "Thumb", maxWidth: downloadHeight, - tag: item.SeriesThumbImageTag + tag: item.SeriesThumbImageTag, + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferThumb && item.ParentThumbItemId && options.inheritThumb !== false) { imgUrl = ApiClient.getThumbImageUrl(item.ParentThumbItemId, { type: "Thumb", - maxWidth: downloadHeight + maxWidth: downloadHeight, + enableImageEnhancers: enableImageEnhancers }); } else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) { @@ -1079,7 +1093,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Backdrop", maxWidth: downloadHeight, - tag: item.BackdropImageTags[0] + tag: item.BackdropImageTags[0], + enableImageEnhancers: enableImageEnhancers }); forceName = true; @@ -1093,7 +1108,8 @@ type: "Primary", height: height, width: width, - tag: item.ImageTags.Primary + tag: item.ImageTags.Primary, + enableImageEnhancers: enableImageEnhancers }); } @@ -1104,7 +1120,8 @@ imgUrl = ApiClient.getImageUrl(item.ParentPrimaryImageItemId, { type: "Primary", height: height, - tag: item.ParentPrimaryImageTag + tag: item.ParentPrimaryImageTag, + enableImageEnhancers: enableImageEnhancers }); } else if (item.AlbumId && item.AlbumPrimaryImageTag) { @@ -1116,7 +1133,8 @@ type: "Primary", height: height, width: width, - tag: item.AlbumPrimaryImageTag + tag: item.AlbumPrimaryImageTag, + enableImageEnhancers: enableImageEnhancers }); } @@ -1125,7 +1143,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Thumb", maxWidth: downloadHeight, - tag: item.ImageTags.Thumb + tag: item.ImageTags.Thumb, + enableImageEnhancers: enableImageEnhancers }); } @@ -1134,7 +1153,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Backdrop", maxWidth: downloadHeight, - tag: item.BackdropImageTags[0] + tag: item.BackdropImageTags[0], + enableImageEnhancers: enableImageEnhancers }); } else if (item.ImageTags && item.ImageTags.Thumb) { @@ -1142,7 +1162,8 @@ imgUrl = ApiClient.getScaledImageUrl(item.Id, { type: "Thumb", maxWidth: downloadHeight, - tag: item.ImageTags.Thumb + tag: item.ImageTags.Thumb, + enableImageEnhancers: enableImageEnhancers }); } else if (item.SeriesThumbImageTag) { @@ -1150,14 +1171,16 @@ imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, { type: "Thumb", maxWidth: downloadHeight, - tag: item.SeriesThumbImageTag + tag: item.SeriesThumbImageTag, + enableImageEnhancers: enableImageEnhancers }); } else if (item.ParentThumbItemId) { imgUrl = ApiClient.getThumbImageUrl(item, { type: "Thumb", - maxWidth: downloadHeight + maxWidth: downloadHeight, + enableImageEnhancers: enableImageEnhancers }); } else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") { @@ -1223,7 +1246,13 @@ var dataAttributes = LibraryBrowser.getItemDataAttributes(item, options, i); - var defaultActionAttribute = options.defaultAction ? (' data-action="' + options.defaultAction + '"') : ''; + var defaultAction = options.defaultAction; + if (defaultAction == 'play' || defaultAction == 'playallfromhere') { + if (item.PlayAccess != 'Full') { + defaultAction = null; + } + } + var defaultActionAttribute = defaultAction ? (' data-action="' + defaultAction + '"') : ''; // card html += ''; diff --git a/dashboard-ui/scripts/moviegenres.js b/dashboard-ui/scripts/moviegenres.js index 578ab90874..2129a23663 100644 --- a/dashboard-ui/scripts/moviegenres.js +++ b/dashboard-ui/scripts/moviegenres.js @@ -46,7 +46,8 @@ preferThumb: true, context: 'movies', showItemCounts: true, - centerText: true + centerText: true, + lazy: true }); } else if (view == "ThumbCard") { @@ -58,7 +59,8 @@ context: 'movies', showItemCounts: true, cardLayout: true, - showTitle: true + showTitle: true, + lazy: true }); } else if (view == "Poster") { diff --git a/dashboard-ui/scripts/moviestudios.js b/dashboard-ui/scripts/moviestudios.js index 4f15323522..8f0fb8108c 100644 --- a/dashboard-ui/scripts/moviestudios.js +++ b/dashboard-ui/scripts/moviestudios.js @@ -44,10 +44,11 @@ preferThumb: true, context: 'movies', showItemCounts: true, - centerText: true + centerText: true, + lazy: true }); - var elem = $('#items', page).html(html).trigger('create'); + var elem = $('#items', page).html(html).lazyChildren().trigger('create'); $(pagingHtml).appendTo(elem).trigger('create'); diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 623b4e0fdb..7dbbd9b792 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -649,7 +649,7 @@ var Dashboard = { ensureHeader: function (page) { - if (page.hasClass('standalonePage')) { + if (page.hasClass('standalonePage') && !page.hasClass('noHeaderPage')) { Dashboard.renderHeader(page); } diff --git a/dashboard-ui/scripts/tvgenres.js b/dashboard-ui/scripts/tvgenres.js index b26e84bc5d..9f926d06b1 100644 --- a/dashboard-ui/scripts/tvgenres.js +++ b/dashboard-ui/scripts/tvgenres.js @@ -46,7 +46,8 @@ preferThumb: true, context: 'tv', showItemCounts: true, - centerText: true + centerText: true, + lazy: true }); } else if (view == "ThumbCard") { @@ -58,7 +59,8 @@ context: 'tv', showItemCounts: true, cardLayout: true, - showTitle: true + showTitle: true, + lazy: true }); } else if (view == "Poster") {