From 56d7a4b41f21e5d16285603c92af46925487c858 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 6 Sep 2014 00:21:23 -0400 Subject: [PATCH] fixes #914 - Add option to save metadata hidden --- dashboard-ui/css/card.css | 8 ++ dashboard-ui/dlnaprofile.html | 44 ++++++++++ dashboard-ui/metadataadvanced.html | 4 + dashboard-ui/scripts/dlnaprofile.js | 84 ++++++++++++++++++++ dashboard-ui/scripts/itembynamedetailpage.js | 16 ++-- dashboard-ui/scripts/itemdetailpage.js | 18 ++--- dashboard-ui/scripts/librarylist.js | 19 ++++- dashboard-ui/scripts/metadataadvanced.js | 4 + 8 files changed, 178 insertions(+), 19 deletions(-) diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css index 25c6f565f8..ea93f1f3bf 100644 --- a/dashboard-ui/css/card.css +++ b/dashboard-ui/css/card.css @@ -419,6 +419,14 @@ } +@media all and (min-width: 1920px) { + + .squareCard { + width: 9.0909090909090909090909090909091%; + } +} + + @media all and (min-width: 1920px) { .portraitCard { diff --git a/dashboard-ui/dlnaprofile.html b/dashboard-ui/dlnaprofile.html index a5953a3c43..d08ac35688 100644 --- a/dashboard-ui/dlnaprofile.html +++ b/dashboard-ui/dlnaprofile.html @@ -219,6 +219,18 @@ +
+

${HeaderXmlSettings}

+
+

+ ${HeaderXmlDocumentAttributes} + +

+
+
${XmlDocumentAttributeListHelp}
+
+
+
@@ -642,6 +654,37 @@
+ + diff --git a/dashboard-ui/metadataadvanced.html b/dashboard-ui/metadataadvanced.html index e395096f52..317be06958 100644 --- a/dashboard-ui/metadataadvanced.html +++ b/dashboard-ui/metadataadvanced.html @@ -28,6 +28,10 @@
${LabelMetadataPathHelp}
+
  • + + +
  • diff --git a/dashboard-ui/scripts/dlnaprofile.js b/dashboard-ui/scripts/dlnaprofile.js index f7b9c54c98..59f389cb98 100644 --- a/dashboard-ui/scripts/dlnaprofile.js +++ b/dashboard-ui/scripts/dlnaprofile.js @@ -45,6 +45,8 @@ $('#chkEnableAlbumArtInDidl', page).checked(profile.EnableAlbumArtInDidl).checkboxradio('refresh'); + renderXmlDocumentAttributes(page, profile.XmlRootAttributes || []); + var idInfo = profile.Identification || {}; renderIdentificationHeaders(page, idInfo.Headers || []); @@ -173,6 +175,73 @@ $('#identificationHeaderPopup', page).popup('close'); } + function renderXmlDocumentAttributes(page, attribute) { + + var index = 0; + + var html = ''; + + var elem = $('.xmlDocumentAttributeList', page).html(html).trigger('create'); + + $('.btnDeleteXmlAttribute', elem).on('click', function () { + + var itemIndex = parseInt(this.getAttribute('data-index')); + + currentProfile.XmlRootAttributes.splice(itemIndex, 1); + + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + }); + } + + function editXmlDocumentAttribute(page, attribute) { + + isSubProfileNew = attribute == null; + attribute = attribute || {}; + currentSubProfile = attribute; + + var popup = $('#xmlAttributePopup', page); + + $('#txtXmlAttributeName', popup).val(attribute.Name || ''); + $('#txtXmlAttributeValue', popup).val(attribute.Value || ''); + + popup.popup('open'); + } + + function saveXmlDocumentAttribute(page) { + + currentSubProfile.Name = $('#txtXmlAttributeName', page).val(); + currentSubProfile.Value = $('#txtXmlAttributeValue', page).val(); + + if (isSubProfileNew) { + + currentProfile.XmlRootAttributes.push(currentSubProfile); + } + + renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); + + currentSubProfile = null; + + $('#xmlAttributePopup', page).popup('close'); + } + function renderSubProfiles(page, profile) { renderDirectPlayProfiles(page, profile.DirectPlayProfiles); @@ -907,6 +976,11 @@ editIdentificationHeader(page); }); + $('.btnAddXmlDocumentAttribute', page).on('click', function () { + + editXmlDocumentAttribute(page); + }); + }).on('pageshow', "#dlnaProfilePage", function () { var page = this; @@ -991,6 +1065,16 @@ saveIdentificationHeader(page); + return false; + }, + + onXmlAttributeFormSubmit: function () { + + var form = this; + var page = $(form).parents('.page'); + + saveXmlDocumentAttribute(page); + return false; } }; diff --git a/dashboard-ui/scripts/itembynamedetailpage.js b/dashboard-ui/scripts/itembynamedetailpage.js index d7f12c6db6..aa15ae1a8d 100644 --- a/dashboard-ui/scripts/itembynamedetailpage.js +++ b/dashboard-ui/scripts/itembynamedetailpage.js @@ -148,49 +148,49 @@ if (item.MovieCount) { - html += ''; + html += ''; html += ''; } if (item.SeriesCount) { - html += ''; + html += ''; html += ''; } if (item.EpisodeCount) { - html += ''; + html += ''; html += ''; } if (item.TrailerCount) { - html += ''; + html += ''; html += ''; } if (item.GameCount) { - html += ''; + html += ''; html += ''; } if (item.AlbumCount) { - html += ''; + html += ''; html += ''; } if (item.SongCount) { - html += ''; + html += ''; html += ''; } if (item.MusicVideoCount) { - html += ''; + html += ''; html += ''; } diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 8db46db1a8..0a126a9dc4 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1275,23 +1275,23 @@ html += '
    '; } - if (version.Size) { + if (version.Container) { + html += '
    Container' + version.Container + '
    '; + } - var size = (version.Size / (1024 * 1024)).toFixed(0); - - html += '
    Size' + size + ' MB
    '; + if (version.Formats && version.Formats.length) { + //html += '
    Format' + version.Formats.join(',') + '
    '; } if (version.Path) { html += '
    Path' + version.Path + '
    '; } - if (version.Container) { - //html += '
    Container' + version.Container + '
    '; - } + if (version.Size) { - if (version.Formats && version.Formats.length) { - //html += '
    Format' + version.Formats.join(',') + '
    '; + var size = (version.Size / (1024 * 1024)).toFixed(0); + + html += '
    Size' + size + ' MB
    '; } return html; diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index d711a43ad5..a89d90ab97 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -112,9 +112,8 @@ if (MediaController.canPlay(item)) { var resumePosition = (item.UserData || {}).PlaybackPositionTicks || 0; - var onPlayClick = 'LibraryBrowser.showPlayMenu(this, \'' + item.Id + '\', \'' + item.Type + '\', ' + item.IsFolder + ', \'' + item.MediaType + '\', ' + resumePosition + ');return false;'; - html += ''; + html += ''; buttonCount++; } @@ -152,6 +151,21 @@ return false; } + function onPlayItemButtonClick() { + + var id = this.getAttribute('data-itemid'); + var type = this.getAttribute('data-itemtype'); + var isFolder = this.getAttribute('data-isfolder') == 'true'; + var mediaType = this.getAttribute('data-mediatype'); + var resumePosition = parseInt(this.getAttribute('data-resumeposition')); + + closeContextMenu(); + + LibraryBrowser.showPlayMenu(this, id, type, isFolder, mediaType, resumePosition); + + return false; + } + function onMoreButtonClick() { var card = $(this).parents('.card')[0]; @@ -549,6 +563,7 @@ innerElem.html(getOverlayHtml(item, user, elem, commands)).trigger('create'); + $('.btnPlayItem', innerElem).on('click', onPlayItemButtonClick); $('.btnPlayTrailer', innerElem).on('click', onTrailerButtonClick); $('.btnMoreCommands', innerElem).on('click', onMoreButtonClick); }); diff --git a/dashboard-ui/scripts/metadataadvanced.js b/dashboard-ui/scripts/metadataadvanced.js index 7b6081f102..fb21295415 100644 --- a/dashboard-ui/scripts/metadataadvanced.js +++ b/dashboard-ui/scripts/metadataadvanced.js @@ -2,6 +2,8 @@ function loadAdvancedConfig(page, config) { + $('#chkSaveMetadataHidden', page).checked(config.SaveMetadataHidden).checkboxradio("refresh"); + $('#chkEnableTmdbPersonUpdates', page).checked(config.EnableTmdbUpdates).checkboxradio("refresh"); $('#chkEnableTvdbUpdates', page).checked(config.EnableTvDbUpdates).checkboxradio("refresh"); $('#chkEnableFanartUpdates', page).checked(config.EnableFanArtUpdates).checkboxradio("refresh"); @@ -174,6 +176,8 @@ ApiClient.getServerConfiguration().done(function (config) { + config.SaveMetadataHidden = $('#chkSaveMetadataHidden', form).checked(); + config.EnableTvDbUpdates = $('#chkEnableTvdbUpdates', form).checked(); config.EnableTmdbUpdates = $('#chkEnableTmdbPersonUpdates', form).checked(); config.EnableFanArtUpdates = $('#chkEnableFanartUpdates', form).checked();