diff --git a/dashboard-ui/apiclient/apiclient.js b/dashboard-ui/apiclient/apiclient.js index c465512ba..ee97b79e7 100644 --- a/dashboard-ui/apiclient/apiclient.js +++ b/dashboard-ui/apiclient/apiclient.js @@ -2577,9 +2577,19 @@ options.imageType = "thumb"; - var itemId = item.ImageTags && item.ImageTags.Thumb ? item.Id : item.ParentThumbItemId; + if (item.ImageTags && item.ImageTags.Thumb) { - return itemId ? self.getImageUrl(itemId, options) : null; + options.tag = item.ImageTags.Thumb; + return self.getImageUrl(item.Id, options); + } + else if (item.ParentThumbItemId) { + + options.tag = item.ImageTags.ParentThumbImageTag; + return self.getImageUrl(item.ParentThumbItemId, options); + + } else { + return null; + } }; /** diff --git a/dashboard-ui/scripts/actionsheet.js b/dashboard-ui/scripts/actionsheet.js index 72a2f4c05..576fd0c64 100644 --- a/dashboard-ui/scripts/actionsheet.js +++ b/dashboard-ui/scripts/actionsheet.js @@ -2,132 +2,130 @@ function show(options) { - require(['paperbuttonstyle'], function () { - // items - // positionTo - // showCancel - // title - var id = 'dlg' + new Date().getTime(); - var html = ''; + // items + // positionTo + // showCancel + // title + var id = 'dlg' + new Date().getTime(); + var html = ''; - var style = ""; + var style = ""; - var windowHeight = $(window).height(); + var windowHeight = $(window).height(); - // If the window height is under a certain amount, don't bother trying to position - // based on an element. - if (options.positionTo && windowHeight >= 540) { + // If the window height is under a certain amount, don't bother trying to position + // based on an element. + if (options.positionTo && windowHeight >= 540) { - var pos = $(options.positionTo).offset(); + var pos = $(options.positionTo).offset(); - pos.top += $(options.positionTo).innerHeight() / 2; - pos.left += $(options.positionTo).innerWidth() / 2; + pos.top += $(options.positionTo).innerHeight() / 2; + pos.left += $(options.positionTo).innerWidth() / 2; - // Account for margins - pos.top -= 24; - pos.left -= 24; + // Account for margins + pos.top -= 24; + pos.left -= 24; - // Account for popup size - we can't predict this yet so just estimate - pos.top -= (55 * options.items.length) / 2; - pos.left -= 80; + // Account for popup size - we can't predict this yet so just estimate + pos.top -= (55 * options.items.length) / 2; + pos.left -= 80; - // Account for scroll position - pos.top -= $(window).scrollTop(); - pos.left -= $(window).scrollLeft(); + // Account for scroll position + pos.top -= $(window).scrollTop(); + pos.left -= $(window).scrollLeft(); - // Avoid showing too close to the bottom - pos.top = Math.min(pos.top, $(window).height() - 300); - pos.left = Math.min(pos.left, $(window).width() - 300); + // Avoid showing too close to the bottom + pos.top = Math.min(pos.top, $(window).height() - 300); + pos.left = Math.min(pos.left, $(window).width() - 300); - // Do some boundary checking - pos.top = Math.max(pos.top, 0); - pos.left = Math.max(pos.left, 0); + // Do some boundary checking + pos.top = Math.max(pos.top, 0); + pos.left = Math.max(pos.left, 0); - style += 'position:fixed;top:' + pos.top + 'px;left:' + pos.left + 'px'; + style += 'position:fixed;top:' + pos.top + 'px;left:' + pos.left + 'px'; + } + + html += ''; + + if (options.title) { + html += '

'; + html += options.title; + html += '

'; + } + + // There seems to be a bug with this in safari causing it to immediately roll up to 0 height + var isScrollable = !$.browser.safari; + + if (isScrollable) { + html += ''; + } + + // If any items have an icon, give them all an icon just to make sure they're all lined up evenly + var renderIcon = options.items.filter(function (o) { + return o.ironIcon; + }).length; + + html += ''; + for (var i = 0, length = options.items.length; i < length; i++) { + + var option = options.items[i]; + + html += ''; + + if (option.ironIcon) { + html += ''; } - - html += ''; - - if (options.title) { - html += '

'; - html += options.title; - html += '

'; + else if (renderIcon) { + html += ''; } + html += '' + option.name + ''; + html += '
'; + } + html += '
'; - // There seems to be a bug with this in safari causing it to immediately roll up to 0 height - var isScrollable = !$.browser.safari; + if (isScrollable) { + html += '
'; + } - if (isScrollable) { - html += ''; - } + if (options.showCancel) { + html += '
'; + html += '' + Globalize.translate('ButtonCancel') + ''; + html += '
'; + } - // If any items have an icon, give them all an icon just to make sure they're all lined up evenly - var renderIcon = options.items.filter(function (o) { - return o.ironIcon; - }).length; + html += '
'; - html += ''; - for (var i = 0, length = options.items.length; i < length; i++) { + $(document.body).append(html); - var option = options.items[i]; + setTimeout(function () { + var dlg = document.getElementById(id); - html += ''; + dlg.open(); - if (option.ironIcon) { - html += ''; - } - else if (renderIcon) { - html += ''; - } - html += '' + option.name + ''; - html += ''; - } - html += ''; + // Has to be assigned a z-index after the call to .open() + $(dlg).on('iron-overlay-closed', function () { + $(this).remove(); + }); - if (isScrollable) { - html += ''; - } + // Seeing an issue in some non-chrome browsers where this is requiring a double click + var eventName = $.browser.chrome ? 'click' : 'mousedown'; - if (options.showCancel) { - html += '
'; - html += '' + Globalize.translate('ButtonCancel') + ''; - html += '
'; - } + $('.actionSheetMenuItem', dlg).on(eventName, function () { - html += ''; + var selectedId = this.getAttribute('data-id'); - $(document.body).append(html); + // Add a delay here to allow the click animation to finish, for nice effect + setTimeout(function () { - setTimeout(function () { - var dlg = document.getElementById(id); + dlg.close(); - dlg.open(); + if (options.callback) { + options.callback(selectedId); + } - // Has to be assigned a z-index after the call to .open() - $(dlg).on('iron-overlay-closed', function () { - $(this).remove(); - }); - - // Seeing an issue in some non-chrome browsers where this is requiring a double click - var eventName = $.browser.chrome ? 'click' : 'mousedown'; - - $('.actionSheetMenuItem', dlg).on(eventName, function () { - - var selectedId = this.getAttribute('data-id'); - - // Add a delay here to allow the click animation to finish, for nice effect - setTimeout(function () { - - dlg.close(); - - if (options.callback) { - options.callback(selectedId); - } - - }, 100); - }); - }, 100); - }); + }, 100); + }); + }, 100); } window.ActionSheetElement = { diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js index ce03f49eb..89f6b6390 100644 --- a/dashboard-ui/scripts/edititemmetadata.js +++ b/dashboard-ui/scripts/edititemmetadata.js @@ -23,7 +23,7 @@ currentItem = item; - if (item.Type == "UserRootFolder") { + if (!LibraryBrowser.supportsEditing(item.Type)) { $('.editPageInnerContent', page)[0].style.visibility = 'hidden'; Dashboard.hideLoadingMsg(); return; diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 2c6cac104..e413a9c93 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -680,6 +680,15 @@ }); }, + supportsEditing: function (itemType) { + + if (itemType == "UserRootFolder" || /*itemType == "CollectionFolder" ||*/ itemType == "UserView") { + return false; + } + + return true; + }, + getMoreCommands: function (item, user) { var commands = []; @@ -701,7 +710,9 @@ if (user.Policy.IsAdministrator) { - commands.push('edit'); + if (LibraryBrowser.supportsEditing(item.Type)) { + commands.push('edit'); + } if (item.MediaType == 'Video' && item.Type != 'TvChannel' && item.Type != 'Program' && item.LocationType != 'Virtual') { commands.push('editsubtitles'); @@ -1469,7 +1480,9 @@ // itemCommands.push('playmenu'); //} - itemCommands.push('edit'); + if (LibraryBrowser.supportsEditing(item.Type)) { + itemCommands.push('edit'); + } if (item.LocalTrailerCount) { itemCommands.push('trailer');