From 4d679e90a4f8a5b73ff4bf901d0f096ce866130c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 15 Aug 2014 12:35:41 -0400 Subject: [PATCH] 3.0.5340.20849 --- dashboard-ui/css/card.css | 8 +- dashboard-ui/css/images/clients/nuvue.png | Bin 0 -> 7882 bytes dashboard-ui/css/librarybrowser.css | 62 ++++++++++++- dashboard-ui/css/site.css | 8 +- dashboard-ui/scripts/dashboardpage.js | 4 + dashboard-ui/scripts/itembynamedetailpage.js | 7 +- dashboard-ui/scripts/itemdetailpage.js | 17 +++- dashboard-ui/scripts/librarybrowser.js | 49 ++++++---- dashboard-ui/scripts/librarylist.js | 43 +++++---- dashboard-ui/scripts/livetvchannel.js | 2 +- dashboard-ui/scripts/livetvseriestimer.js | 2 +- dashboard-ui/scripts/metadataimagespage.js | 76 ++++++++-------- dashboard-ui/scripts/playlistedit.js | 3 +- dashboard-ui/scripts/userpassword.js | 36 +++++++- dashboard-ui/scripts/userprofilespage.js | 2 +- dashboard-ui/songs.html | 2 +- .../thirdparty/mediabrowser.apiclient.js | 2 +- dashboard-ui/userpassword.html | 86 ++++++++++++------ 18 files changed, 276 insertions(+), 133 deletions(-) create mode 100644 dashboard-ui/css/images/clients/nuvue.png diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css index a8e51b208..25c6f565f 100644 --- a/dashboard-ui/css/card.css +++ b/dashboard-ui/css/card.css @@ -478,21 +478,21 @@ .detailPageSquareCard { - width: 50%; + width: 33.33%; } @media all and (min-width: 540px) { .detailPageSquareCard { - width: 33.33%; + width: 25%; } } -@media all and (min-width: 800px) { +@media all and (min-width: 600px) { .detailPageSquareCard { - width: 25%; + width: 20%; } } diff --git a/dashboard-ui/css/images/clients/nuvue.png b/dashboard-ui/css/images/clients/nuvue.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff5ec47d6012add1fbfefb1ecc8b7ca8251a755 GIT binary patch literal 7882 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 literal 0 HcmV?d00001 diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 1ddcd415a..3e3e88432 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -1185,15 +1185,20 @@ a.itemTag:hover { } } -.itemsListview { + +.itemsContainer .itemsListview { max-width: 800px; +} + +.itemsListview { margin: 0 auto !important; } .itemsListview .ui-li-aside { - right: 1.3em; - font-weight: normal; + right: 70px; font-size: 13px; + top: 35%; + font-weight: 300 !important; } .itemsListview .ui-li-count { @@ -1217,6 +1222,57 @@ a.itemTag:hover { background-position: center center; } +.listviewIcon { + position: absolute; + left: 0; + top: 0; + width: 70px; + height: 70px; + background-repeat: no-repeat; + background-size: cover; + background-position: center center; +} + +.ui-li-has-icon > .ui-btn { + padding-left: 5.25em !important; + padding-top: 5px !important; + padding-bottom: 5px !important; +} + +.listItem h3 { + font-weight: 400; +} + +.listItem p { + font-weight: 300 !important; +} + +.ui-li-has-icon h3 { + margin-bottom: 10px !important; +} + +.listItem > .ui-btn + .ui-btn { + border: 0 !important; + width: 60px !important; + height: 90% !important; + top: 5% !important; + padding-left: 0 !important; +} + +.listItem a:first-child { + margin-right: 0 !important; + background-color: transparent !important; + border-color: #282828 !important; +} + +.listItem a + a { + background-color: #202020 !important; +} + +.listItem:hover a { + background-color: #333 !important; +} + @media all and (max-width: 600px) { .itemsListview .ui-li-aside { diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 04d6cf45a..befbc43ad 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -120,10 +120,6 @@ h2 { font-weight: 500 !important; } -.ui-listview li h3 { - font-weight: 500; -} - h1 a { text-decoration: none; } @@ -136,6 +132,10 @@ h1 a:hover { text-decoration: underline; } +.ui-listview li h3 { + font-weight: 400; +} + pre, textarea.pre { display: block; padding: 8.5px; diff --git a/dashboard-ui/scripts/dashboardpage.js b/dashboard-ui/scripts/dashboardpage.js index ddd7c93b1..e8b53382e 100644 --- a/dashboard-ui/scripts/dashboardpage.js +++ b/dashboard-ui/scripts/dashboardpage.js @@ -622,6 +622,10 @@ return ""; } + if (clientLowered == "nuvue") { + + return ""; + } if (clientLowered == "roku") { return ""; diff --git a/dashboard-ui/scripts/itembynamedetailpage.js b/dashboard-ui/scripts/itembynamedetailpage.js index 98103c0c7..aebfffc85 100644 --- a/dashboard-ui/scripts/itembynamedetailpage.js +++ b/dashboard-ui/scripts/itembynamedetailpage.js @@ -432,10 +432,9 @@ if (query.IncludeItemTypes == "Audio") { - html += LibraryBrowser.getSongTableHtml(result.Items, { - showAlbum: true, - showArtist: true, - showAlbumArtist: true + html = LibraryBrowser.getListViewHtml({ + items: result.Items, + smallIcon: true }); } diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index b2cfab497..ff3a0369b 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -562,7 +562,7 @@ var options = { userId: Dashboard.getCurrentUserId(), - limit: item.Type == "MusicAlbum" ? 4 : 5, + limit: 5, fields: "PrimaryImageAspectRatio,UserData" }; @@ -724,7 +724,11 @@ if (item.Type == "MusicAlbum") { - $('#childrenContent', page).html(LibraryBrowser.getSongTableHtml(result.Items, { showArtist: true })).trigger('create'); + $('#childrenContent', page).html(LibraryBrowser.getListViewHtml({ + items: result.Items, + smallIcon: true + + })).trigger('create').createCardMenus(); } else { @@ -760,7 +764,7 @@ }); } - $('#childrenContent', page).html(html).createCardMenus(); + $('#childrenContent', page).html(html).trigger('create').createCardMenus(); if (item.Type == "BoxSet") { @@ -996,7 +1000,12 @@ $('#themeSongsCollapsible', page).show(); - $('#themeSongsContent', page).html(LibraryBrowser.getSongTableHtml(items, { showArtist: true, showAlbum: true, showAlbumArtist: true })).trigger('create'); + var html = LibraryBrowser.getListViewHtml({ + items: items, + smallIcon: true + }); + + $('#themeSongsContent', page).html(html).trigger('create'); } else { $('#themeSongsCollapsible', page).hide(); } diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index cb7b59c1f..4147354b1 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -223,8 +223,6 @@ html += ''; - html += LibraryBrowser.getSongHeaderCellHtml('Disc', 'desktopColumn', options.enableColumnSorting); - html += LibraryBrowser.getSongHeaderCellHtml('#', 'desktopColumn', options.enableColumnSorting); html += LibraryBrowser.getSongHeaderCellHtml('Track', '', options.enableColumnSorting, 'Name', options.sortBy, options.sortOrder); if (options.showAlbum) { @@ -252,9 +250,6 @@ html += ''; - html += '' + (item.ParentIndexNumber || "") + ''; - html += '' + (item.IndexNumber || "") + ''; - html += '' + (item.Name || "") + ''; if (options.showAlbum) { @@ -685,7 +680,7 @@ var dataAttributes = LibraryBrowser.getItemDataAttributes(item, options); - var cssClass = 'ui-li-has-thumb listItem'; + var cssClass = options.smallIcon ? 'ui-li-has-icon listItem' : 'ui-li-has-thumb listItem'; if (item.UserData) { cssClass += ' ' + LibraryBrowser.getUserDataCssClass(item.UserData.Key); @@ -696,13 +691,14 @@ var imgUrl; + var downloadWidth = options.smallIcon ? 70 : 80; + // Scaling 400w episode images to 80 doesn't turn out very well + var minScale = item.Type == 'Episode' || item.Type == 'Game' || options.smallIcon ? 2 : 1.5; + if (item.ImageTags.Primary) { - // Scaling 400w episode images to 80 doesn't turn out very well - var minScale = item.Type == 'Episode' || item.Type == 'Game' ? 2 : null; - imgUrl = ApiClient.getScaledImageUrl(item.Id, { - width: 80, + width: downloadWidth, tag: item.ImageTags.Primary, type: "Primary", index: 0, @@ -715,8 +711,9 @@ imgUrl = ApiClient.getScaledImageUrl(item.AlbumId, { type: "Primary", - width: 80, - tag: item.AlbumPrimaryImageTag + width: downloadWidth, + tag: item.AlbumPrimaryImageTag, + minScale: minScale }); } @@ -724,8 +721,9 @@ imgUrl = ApiClient.getScaledImageUrl(item.SeriesId, { type: "Primary", - width: 80, - tag: item.SeriesPrimaryImageTag + width: downloadWidth, + tag: item.SeriesPrimaryImageTag, + minScale: minScale }); } @@ -733,17 +731,26 @@ imgUrl = ApiClient.getImageUrl(item.ParentPrimaryImageItemId, { type: "Primary", - width: 80, - tag: item.ParentPrimaryImageTag + width: downloadWidth, + tag: item.ParentPrimaryImageTag, + minScale: minScale }); } if (imgUrl) { - if (index < 10) { - html += '
'; + if (options.smallIcon) { + if (index < 10) { + html += '
'; + } else { + html += '
'; + } } else { - html += '
'; + if (index < 10) { + html += '
'; + } else { + html += '
'; + } } } @@ -757,6 +764,10 @@ textlines.push(LibraryBrowser.getPosterViewDisplayName(item)); + if (item.Type == 'Audio') { + textlines.push(item.Artists.join(', ') || 'Unknown Artist'); + } + if (item.Type == 'Game') { textlines.push(item.GameSystem || 'Unknown Game System'); } diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index f4540646c..1818ebd15 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -123,12 +123,8 @@ buttonCount++; } - var moreCommands = LibraryBrowser.getMoreCommands(item, currentUser); - - if (moreCommands.length) { - html += ''; - buttonCount++; - } + html += ''; + buttonCount++; html += ''; @@ -153,14 +149,15 @@ function onMoreButtonClick() { - var id = this.getAttribute('data-itemid'); - var commands = this.getAttribute('data-morecommands').split(','); + var card = $(this).parents('.card')[0]; - LibraryBrowser.showMoreCommands(this, id, commands); - - // Used by the tab menu, not the slide up + // Used by the tab menu $('.tapHoldMenu').popup('close'); + showContextMenu(card, { + showPlayOptions: false + }); + return false; } @@ -255,13 +252,13 @@ function onCardTapHold(e) { - showContextMenu(this); + showContextMenu(this, {}); e.preventDefault(); return false; } - function showContextMenu(card) { + function showContextMenu(card, options) { $('.tapHoldMenu').popup("close").remove(); @@ -299,16 +296,18 @@ html += '
  • ' + Globalize.translate('ButtonEdit') + '
  • '; } - if (MediaController.canPlayByAttributes(itemType, mediaType, playAccess, locationType, isPlaceHolder)) { - html += '
  • ' + Globalize.translate('ButtonPlay') + '
  • '; - } + if (options.showPlayOptions !== false) { + if (MediaController.canPlayByAttributes(itemType, mediaType, playAccess, locationType, isPlaceHolder)) { + html += '
  • ' + Globalize.translate('ButtonPlay') + '
  • '; + } - if (playbackPositionTicks && mediaType != "Audio") { - html += '
  • ' + Globalize.translate('ButtonResume') + '
  • '; - } + if (playbackPositionTicks && mediaType != "Audio") { + html += '
  • ' + Globalize.translate('ButtonResume') + '
  • '; + } - if (commands.indexOf('trailer') != -1) { - html += '
  • ' + Globalize.translate('ButtonPlayTrailer') + '
  • '; + if (commands.indexOf('trailer') != -1) { + html += '
  • ' + Globalize.translate('ButtonPlayTrailer') + '
  • '; + } } if (MediaController.canQueueMediaType(mediaType, itemType)) { @@ -356,7 +355,7 @@ function onListViewMenuButtonClick(e) { - showContextMenu(this); + showContextMenu(this, {}); e.preventDefault(); return false; diff --git a/dashboard-ui/scripts/livetvchannel.js b/dashboard-ui/scripts/livetvchannel.js index e6dc27a8e..70258f313 100644 --- a/dashboard-ui/scripts/livetvchannel.js +++ b/dashboard-ui/scripts/livetvchannel.js @@ -68,7 +68,7 @@ html += ''+Globalize.translate('LabelPremiereProgram')+'  '; } else if (program.IsSeries && !program.IsRepeat) { - html += ''+Globalize.translate('newTvProgram')+'  '; + html += ''+Globalize.translate('LabelNewProgram')+'  '; } var minutes = program.RunTimeTicks / 600000000; diff --git a/dashboard-ui/scripts/livetvseriestimer.js b/dashboard-ui/scripts/livetvseriestimer.js index 8820b2bd6..0ddb3fa77 100644 --- a/dashboard-ui/scripts/livetvseriestimer.js +++ b/dashboard-ui/scripts/livetvseriestimer.js @@ -133,7 +133,7 @@ $('.recordingsTab', page).html(LibraryBrowser.getPosterViewHtml({ items: result.Items, - shape: "homePageSquare", + shape: "detailPageSquare", showTitle: true, overlayText: true, coverImage: true diff --git a/dashboard-ui/scripts/metadataimagespage.js b/dashboard-ui/scripts/metadataimagespage.js index d8b3ceb50..c405bc064 100644 --- a/dashboard-ui/scripts/metadataimagespage.js +++ b/dashboard-ui/scripts/metadataimagespage.js @@ -12,7 +12,7 @@ var isChecked = i == 0 ? ' selected="selected"' : ''; - html += ''; + html += ''; } $('#selectItemType', page).html(html).selectmenu('refresh').trigger('change'); @@ -150,7 +150,7 @@ var i, length, plugin, id; - html += '
    Image Fetchers:
    '; + html += '
    ' + Globalize.translate('LabelImageFetchers') + '
    '; html += '
    '; html += '
    '; @@ -177,22 +177,22 @@ html += '
    '; if (i == 0) { - html += ''; - html += ''; + html += ''; + html += ''; } else if (i == (plugins.length - 1)) { - html += ''; - html += ''; + html += ''; + html += ''; } else { - html += ''; - html += ''; + html += ''; + html += ''; } html += '
    '; } } html += '
    '; - html += '
    Enable and rank your preferred image fetchers in order of priority.
    '; + html += '
    ' + Globalize.translate('LabelImageFetchersHelp') + '
    '; var elem = $('.imageFetchers', page).html(html).show().trigger('create'); @@ -238,7 +238,7 @@ } html += '
    '; - html += 'Metadata Savers:'; + html += '' + Globalize.translate('LabelMetadataSavers') + ''; for (var i = 0, length = plugins.length; i < length; i++) { @@ -253,7 +253,7 @@ } html += '
    '; - html += '
    Choose the file formats to save your metadata to.
    '; + html += '
    ' + Globalize.translate('LabelMetadataSaversHelp') + '
    '; $('.metadataSavers', page).html(html).show().trigger('create'); } @@ -273,7 +273,7 @@ var i, length, plugin, id; - html += '
    Metadata Downloaders:
    '; + html += '
    ' + Globalize.translate('LabelMetadataDownloaders') + '
    '; html += '
    '; html += '
    '; @@ -300,22 +300,22 @@ html += '
    '; if (i == 0) { - html += ''; - html += ''; + html += ''; + html += ''; } else if (i == (plugins.length - 1)) { - html += ''; - html += ''; + html += ''; + html += ''; } else { - html += ''; - html += ''; + html += ''; + html += ''; } html += '
    '; } } html += '
    '; - html += '
    Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.
    '; + html += '
    ' + Globalize.translate('LabelMetadataDownloadersHelp') + '
    '; var elem = $('.metadataFetchers', page).html(html).show().trigger('create'); @@ -360,7 +360,7 @@ return; } - html += '
    Metadata Readers:
    '; + html += '
    ' + Globalize.translate('LabelMetadataReaders') + '
    '; html += ''; - html += '
    Rank your preferred local metadata sources in order of priority. The first file found will be read.
    '; + html += '
    ' + Globalize.translate('LabelMetadataReadersHelp') + '
    '; $('.metadataReaders', page).html(html).show().trigger('create'); } @@ -404,24 +404,24 @@ loadTabs(page, [ - { name: 'Movies', type: 'Movie' }, + { name: 'OptionMovies', type: 'Movie' }, //{ name: 'Trailers', type: 'Trailer' }, - { name: 'Collections', type: 'BoxSet' }, - { name: 'TV Series', type: 'Series' }, - { name: 'TV Seasons', type: 'Season' }, - { name: 'TV Episodes', type: 'Episode' }, - { name: 'Games', type: 'Game' }, - { name: 'Game Systems', type: 'GameSystem' }, + { name: 'OptionCollections', type: 'BoxSet' }, + { name: 'OptionSeries', type: 'Series' }, + { name: 'OptionSeasons', type: 'Season' }, + { name: 'OptionEpisodes', type: 'Episode' }, + { name: 'OptionGames', type: 'Game' }, + { name: 'OptionGameSystems', type: 'GameSystem' }, //{ name: 'Game Genres', type: 'GameGenre' }, - { name: 'Music Artists', type: 'MusicArtist' }, - { name: 'Music Albums', type: 'MusicAlbum' }, - { name: 'Music Videos', type: 'MusicVideo' }, + { name: 'OptionMusicArtists', type: 'MusicArtist' }, + { name: 'OptionMusicAlbums', type: 'MusicAlbum' }, + { name: 'OptionMusicVideos', type: 'MusicVideo' }, //{ name: 'Music Genres', type: 'MusicGenre' }, - { name: 'Songs', type: 'Audio' }, - { name: 'Home Videos', type: 'Video' }, - { name: 'Books', type: 'Book' }, - { name: 'Adult Videos', type: 'AdultVideo' }, - { name: 'People', type: 'Person' } + { name: 'OptionSongs', type: 'Audio' }, + { name: 'OptionHomeVideos', type: 'Video' }, + { name: 'OptionBooks', type: 'Book' }, + { name: 'OptionAdultVideos', type: 'AdultVideo' }, + { name: 'OptionPeople', type: 'Person' } //{ name: 'Genres', type: 'Genre' }, //{ name: 'Studios', type: 'Studio' } ]); diff --git a/dashboard-ui/scripts/playlistedit.js b/dashboard-ui/scripts/playlistedit.js index bf42d61b5..bdf226823 100644 --- a/dashboard-ui/scripts/playlistedit.js +++ b/dashboard-ui/scripts/playlistedit.js @@ -74,7 +74,8 @@ sortBy: query.SortBy, showIndex: false, title: item.Name, - showRemoveFromPlaylist: true + showRemoveFromPlaylist: true, + smallIcon: true }); } diff --git a/dashboard-ui/scripts/userpassword.js b/dashboard-ui/scripts/userpassword.js index 1534c2ec7..d90370272 100644 --- a/dashboard-ui/scripts/userpassword.js +++ b/dashboard-ui/scripts/userpassword.js @@ -8,16 +8,19 @@ Dashboard.setPageTitle(user.Name); - if (user.HasPassword) { + if (user.HasConfiguredPassword) { $('#btnResetPassword', page).show(); $('#fldCurrentPassword', page).show(); $('.formheader', page).hide(); + $('.localAccessSection', page).show(); } else { $('#btnResetPassword', page).hide(); $('#fldCurrentPassword', page).hide(); $('.formheader', page).show(); + $('.localAccessSection', page).hide(); } + $('#chkEnableLocalAccessWithoutPassword', page).checked(user.Configuration.EnableLocalPassword).checkboxradio('refresh'); }); $('#txtCurrentPassword', page).val(''); @@ -29,6 +32,24 @@ var userId = getParameterByName("userId"); + ApiClient.getUser(userId).done(function (user) { + + user.Configuration.EnableLocalPassword = $('#chkEnableLocalAccessWithoutPassword', page).checked(); + + ApiClient.updateUser(user).done(function() { + + Dashboard.hideLoadingMsg(); + + Dashboard.alert(Globalize.translate('MessageSettingsSaved')); + loadUser(page); + }); + }); + } + + function savePassword(page) { + + var userId = getParameterByName("userId"); + var currentPassword = $('#txtCurrentPassword', page).val(); var newPassword = $('#txtNewPassword', page).val(); @@ -59,6 +80,19 @@ Dashboard.showLoadingMsg(); + savePassword(page); + + // Disable default form submission + return false; + + }; + + self.onLocalAccessSubmit = function () { + + var page = $.mobile.activePage; + + Dashboard.showLoadingMsg(); + save(page); // Disable default form submission diff --git a/dashboard-ui/scripts/userprofilespage.js b/dashboard-ui/scripts/userprofilespage.js index d4cfae821..5e26731b3 100644 --- a/dashboard-ui/scripts/userprofilespage.js +++ b/dashboard-ui/scripts/userprofilespage.js @@ -41,7 +41,7 @@ html += ""; html += "

    "; - if (user.Configuration.HasPassword) html += '' + Globalize.translate('Password') + ''; + if (user.HasConfiguredPassword) html += '' + Globalize.translate('Password') + ''; if (user.Configuration.IsAdministrator) html += '' + Globalize.translate('Administrator') + ''; html += "

    "; diff --git a/dashboard-ui/songs.html b/dashboard-ui/songs.html index dcc6f93f3..033376a75 100644 --- a/dashboard-ui/songs.html +++ b/dashboard-ui/songs.html @@ -19,7 +19,7 @@
    -
    +
    diff --git a/dashboard-ui/thirdparty/mediabrowser.apiclient.js b/dashboard-ui/thirdparty/mediabrowser.apiclient.js index e715c8c51..60ad3c6f1 100644 --- a/dashboard-ui/thirdparty/mediabrowser.apiclient.js +++ b/dashboard-ui/thirdparty/mediabrowser.apiclient.js @@ -2144,7 +2144,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi function normalizeImageOptions(options) { - var ratio = window.devicePixelRatio; + var ratio = window.devicePixelRatio || 1; if (ratio) { diff --git a/dashboard-ui/userpassword.html b/dashboard-ui/userpassword.html index 339b62826..9cd832134 100644 --- a/dashboard-ui/userpassword.html +++ b/dashboard-ui/userpassword.html @@ -14,37 +14,67 @@ ${TabPassword}
    - -
    -
      - -
    • - - -
    • -
    • - - -
    • -
    • - - -
    • -
    -
    + +
    +
    +

    ${HeaderPassword}

    +
    +
    + +
    +
      + +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    +
    +
    +
    +
    +

    ${HeaderLocalAccess}

    +
    +
    +
    +
      +
    • + + +
      ${LabelAllowLocalAccessWithoutPasswordHelp}
      +
    • +
    • + +
    • +
    +
    +
    +
    +