From da237475f05181e3b8a1ec8177667f0e73e80b80 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 6 Dec 2016 03:24:29 -0500 Subject: [PATCH] update series queries --- .../emby-apiclient/.bower.json | 8 +- .../emby-apiclient/connectionmanager.js | 2 +- .../libraryoptionseditor.js | 6 +- .../libraryoptionseditor.template.html | 8 + dashboard-ui/components/tvproviders/xmltv.js | 2 +- dashboard-ui/dashboard/librarydisplay.js | 4 - dashboard-ui/dashboard/librarysettings.js | 4 - dashboard-ui/librarypathmapping.html | 22 --- dashboard-ui/metadatanfo.html | 1 - dashboard-ui/mypreferencesdisplay.html | 2 +- dashboard-ui/scripts/itembynamedetailpage.js | 4 + dashboard-ui/scripts/itemdetailpage.js | 2 +- dashboard-ui/scripts/librarypathmapping.js | 160 ------------------ dashboard-ui/scripts/medialibrarypage.js | 4 - dashboard-ui/scripts/mypreferencesdisplay.js | 2 +- dashboard-ui/scripts/secondaryitems.js | 2 +- dashboard-ui/scripts/site.js | 11 +- dashboard-ui/strings/en-US.json | 7 +- 18 files changed, 34 insertions(+), 217 deletions(-) delete mode 100644 dashboard-ui/librarypathmapping.html delete mode 100644 dashboard-ui/scripts/librarypathmapping.js diff --git a/dashboard-ui/bower_components/emby-apiclient/.bower.json b/dashboard-ui/bower_components/emby-apiclient/.bower.json index 90a4eff73..b199d3aa1 100644 --- a/dashboard-ui/bower_components/emby-apiclient/.bower.json +++ b/dashboard-ui/bower_components/emby-apiclient/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.1.95", - "_release": "1.1.95", + "version": "1.1.96", + "_release": "1.1.96", "_resolution": { "type": "version", - "tag": "1.1.95", - "commit": "e8acc2b7fb936b9e8d54a1eda726a16806258639" + "tag": "1.1.96", + "commit": "d510fead0ace4166990b22f3f6c9fa0deb537bed" }, "_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_target": "^1.1.51", diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index fdd0934b1..14fad2451 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -216,7 +216,7 @@ return connectUser; }; - var minServerVersion = '3.0.7000'; + var minServerVersion = '3.0.7300'; self.minServerVersion = function (val) { if (val) { diff --git a/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.js b/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.js index d7dca92ca..dda02c73e 100644 --- a/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.js +++ b/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.js @@ -60,8 +60,10 @@ if (contentType == 'tvshows') { parent.querySelector('.chkImportMissingEpisodesContainer').classList.remove('hide'); + parent.querySelector('.chkAutomaticallyGroupSeriesContainer').classList.remove('hide'); } else { parent.querySelector('.chkImportMissingEpisodesContainer').classList.add('hide'); + parent.querySelector('.chkAutomaticallyGroupSeriesContainer').classList.add('hide'); } } @@ -76,7 +78,8 @@ DownloadImagesInAdvance: parent.querySelector('#chkDownloadImagesInAdvance').checked, EnableInternetProviders: parent.querySelector('#chkEnableInternetProviders').checked, ImportMissingEpisodes: parent.querySelector('#chkImportMissingEpisodes').checked, - SaveLocalMetadata: parent.querySelector('#chkSaveLocal').checked + SaveLocalMetadata: parent.querySelector('#chkSaveLocal').checked, + EnableAutomaticSeriesGrouping: parent.querySelector('.chkAutomaticallyGroupSeries').checked }; return options; @@ -93,6 +96,7 @@ parent.querySelector('#chkEnableInternetProviders').checked = options.EnableInternetProviders; parent.querySelector('#chkSaveLocal').checked = options.SaveLocalMetadata; parent.querySelector('#chkImportMissingEpisodes').checked = options.ImportMissingEpisodes; + parent.querySelector('.chkAutomaticallyGroupSeries').checked = options.EnableAutomaticSeriesGrouping; } return { diff --git a/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.template.html b/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.template.html index 205aa485d..6d59be3b1 100644 --- a/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.template.html +++ b/dashboard-ui/components/libraryoptionseditor/libraryoptionseditor.template.html @@ -68,3 +68,11 @@
${OptionDetectArchiveFilesAsMediaHelp}
+ +
+ +
${OptionAutomaticallyGroupSeriesHelp}
+
diff --git a/dashboard-ui/components/tvproviders/xmltv.js b/dashboard-ui/components/tvproviders/xmltv.js index 2416f2809..aba03764e 100644 --- a/dashboard-ui/components/tvproviders/xmltv.js +++ b/dashboard-ui/components/tvproviders/xmltv.js @@ -107,7 +107,7 @@ }, function () { Dashboard.hideLoadingMsg(); Dashboard.alert({ - message: Globalize.translate('ErrorAddingListingsToSchedulesDirect') + message: Globalize.translate('ErrorAddingXmlTvFile') }); }); diff --git a/dashboard-ui/dashboard/librarydisplay.js b/dashboard-ui/dashboard/librarydisplay.js index a6cce7be1..b95d0c928 100644 --- a/dashboard-ui/dashboard/librarydisplay.js +++ b/dashboard-ui/dashboard/librarydisplay.js @@ -11,10 +11,6 @@ href: 'librarydisplay.html', name: globalize.translate('TabDisplay') }, - { - href: 'librarypathmapping.html', - name: globalize.translate('TabPathSubstitution') - }, { href: 'librarysettings.html', name: globalize.translate('TabAdvanced') diff --git a/dashboard-ui/dashboard/librarysettings.js b/dashboard-ui/dashboard/librarysettings.js index 6370dafcb..59ddd6fd6 100644 --- a/dashboard-ui/dashboard/librarysettings.js +++ b/dashboard-ui/dashboard/librarysettings.js @@ -87,10 +87,6 @@ href: 'librarydisplay.html', name: Globalize.translate('TabDisplay') }, - { - href: 'librarypathmapping.html', - name: Globalize.translate('TabPathSubstitution') - }, { href: 'librarysettings.html', name: Globalize.translate('TabAdvanced') diff --git a/dashboard-ui/librarypathmapping.html b/dashboard-ui/librarypathmapping.html deleted file mode 100644 index 158306548..000000000 --- a/dashboard-ui/librarypathmapping.html +++ /dev/null @@ -1,22 +0,0 @@ -
- -
-
-
-

${PathSubstitutionHelp}

- -
-
- -
- -

- Path Substitutions can no longer be added. This feature is being replaced by the network share setup. -

-

- To configure network shares, edit an existing media library, then click on one of the existing folders. You'll then be able to map a network path to a library path. -

- -
-
-
\ No newline at end of file diff --git a/dashboard-ui/metadatanfo.html b/dashboard-ui/metadatanfo.html index f2c991aa1..2a3ea2c52 100644 --- a/dashboard-ui/metadatanfo.html +++ b/dashboard-ui/metadatanfo.html @@ -32,7 +32,6 @@
${LabelKodiMetadataEnablePathSubstitutionHelp}
-
${LabelKodiMetadataEnablePathSubstitutionHelp2}
diff --git a/dashboard-ui/mypreferencesdisplay.html b/dashboard-ui/mypreferencesdisplay.html index debf19a59..5a5054f47 100644 --- a/dashboard-ui/mypreferencesdisplay.html +++ b/dashboard-ui/mypreferencesdisplay.html @@ -58,7 +58,7 @@
${LabelEnableBackdropsHelp}
diff --git a/dashboard-ui/scripts/itembynamedetailpage.js b/dashboard-ui/scripts/itembynamedetailpage.js index 5be329b44..a1e4798c7 100644 --- a/dashboard-ui/scripts/itembynamedetailpage.js +++ b/dashboard-ui/scripts/itembynamedetailpage.js @@ -332,6 +332,10 @@ return 'secondaryitems.html?type=' + type + '&artistId=' + item.Id; } + if (item.Type == 'Person') { + return 'secondaryitems.html?type=' + type + '&personId=' + item.Id; + } + return 'secondaryitems.html?type=' + type + '&parentId=' + item.Id; } diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index d2ab686d8..260605d43 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -119,7 +119,7 @@ if (dom.getWindowSize().innerWidth >= 800) { backdrop.setBackdrops([item], { - blur: 30 + blur: 27 }, false); } else { backdrop.clear(); diff --git a/dashboard-ui/scripts/librarypathmapping.js b/dashboard-ui/scripts/librarypathmapping.js deleted file mode 100644 index 75af27619..000000000 --- a/dashboard-ui/scripts/librarypathmapping.js +++ /dev/null @@ -1,160 +0,0 @@ -define(['jQuery', 'listViewStyle'], function ($) { - 'use strict'; - - var currentConfig; - - function remove(page, index) { - - require(['confirm'], function (confirm) { - - confirm(Globalize.translate('MessageConfirmPathSubstitutionDeletion'), Globalize.translate('HeaderConfirmDeletion')).then(function () { - - ApiClient.getServerConfiguration().then(function (config) { - - config.PathSubstitutions.splice(index, 1); - - ApiClient.updateServerConfiguration(config).then(function () { - - reload(page); - }); - }); - }); - }); - } - - function addSubstitution(page, config) { - - config.PathSubstitutions.push({ - From: $('#txtFrom', page).val(), - To: $('#txtTo', page).val() - }); - - } - - function reloadPathMappings(page, config) { - - var index = 0; - - var html = config.PathSubstitutions.map(function (map) { - - var mapHtml = ''; - mapHtml += '
'; - - mapHtml += 'folder'; - - mapHtml += '
'; - - mapHtml += "

" + map.From + "

"; - mapHtml += "
" + Globalize.translate('HeaderTo') + "
"; - mapHtml += "
" + map.To + "
"; - - mapHtml += '
'; - - mapHtml += ''; - - mapHtml += '
'; - - index++; - - return mapHtml; - - }).join(''); - - if (config.PathSubstitutions.length) { - html = '
' + html + '
'; - } - - var elem = $('.pathSubstitutions', page).html(html); - - $('.btnDeletePath', elem).on('click', function () { - - remove(page, parseInt(this.getAttribute('data-index'))); - }); - } - - function loadPage(page, config) { - - currentConfig = config; - - reloadPathMappings(page, config); - Dashboard.hideLoadingMsg(); - } - - function reload(page) { - - $('#txtFrom', page).val(''); - $('#txtTo', page).val(''); - - ApiClient.getServerConfiguration().then(function (config) { - - loadPage(page, config); - - }); - } - - function onSubmit() { - Dashboard.showLoadingMsg(); - - var form = this; - var page = $(form).parents('.page'); - - ApiClient.getServerConfiguration().then(function (config) { - - addSubstitution(page, config); - ApiClient.updateServerConfiguration(config).then(function () { - - reload(page); - }); - }); - - // Disable default form submission - return false; - } - - function getTabs() { - return [ - { - href: 'library.html', - name: Globalize.translate('HeaderLibraries') - }, - { - href: 'librarydisplay.html', - name: Globalize.translate('TabDisplay') - }, - { - href: 'librarypathmapping.html', - name: Globalize.translate('TabPathSubstitution') - }, - { - href: 'librarysettings.html', - name: Globalize.translate('TabAdvanced') - }]; - } - - - $(document).on('pageinit', "#libraryPathMappingPage", function () { - - var page = this; - - $('.libraryPathMappingForm').off('submit', onSubmit).on('submit', onSubmit); - - }).on('pageshow', "#libraryPathMappingPage", function () { - - LibraryMenu.setTabs('librarysetup', 2, getTabs); - Dashboard.showLoadingMsg(); - - var page = this; - - ApiClient.getServerConfiguration().then(function (config) { - - loadPage(page, config); - - }); - - }).on('pagebeforehide', "#libraryPathMappingPage", function () { - - currentConfig = null; - - }); - -}); diff --git a/dashboard-ui/scripts/medialibrarypage.js b/dashboard-ui/scripts/medialibrarypage.js index 2f5caa2af..728038b21 100644 --- a/dashboard-ui/scripts/medialibrarypage.js +++ b/dashboard-ui/scripts/medialibrarypage.js @@ -443,10 +443,6 @@ href: 'librarydisplay.html', name: Globalize.translate('TabDisplay') }, - { - href: 'librarypathmapping.html', - name: Globalize.translate('TabPathSubstitution') - }, { href: 'librarysettings.html', name: Globalize.translate('TabAdvanced') diff --git a/dashboard-ui/scripts/mypreferencesdisplay.js b/dashboard-ui/scripts/mypreferencesdisplay.js index cb996bb74..541318b98 100644 --- a/dashboard-ui/scripts/mypreferencesdisplay.js +++ b/dashboard-ui/scripts/mypreferencesdisplay.js @@ -15,7 +15,7 @@ page.querySelector('.chkDisplayUnairedEpisodes').checked = user.Configuration.DisplayUnairedEpisodes || false; page.querySelector('#chkThemeSong').checked = userSettings.enableThemeSongs(); - page.querySelector('#selectBackdrop').value = appStorage.getItem('enableBackdrops-' + user.Id) || ''; + page.querySelector('#selectBackdrop').value = appStorage.getItem('enableBackdrops-' + user.Id) || '0'; page.querySelector('#selectLanguage').value = userSettings.language() || ''; diff --git a/dashboard-ui/scripts/secondaryitems.js b/dashboard-ui/scripts/secondaryitems.js index f5bdb4c5a..1f97b4469 100644 --- a/dashboard-ui/scripts/secondaryitems.js +++ b/dashboard-ui/scripts/secondaryitems.js @@ -223,7 +223,7 @@ function getItemPromise() { - var id = params.genreId || params.studioId || params.artistId || params.parentId; + var id = params.genreId || params.studioId || params.artistId || params.personId || params.parentId; if (id) { return ApiClient.getItem(Dashboard.getCurrentUserId(), id); diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 1b8477ef1..3556059d8 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -466,7 +466,7 @@ var Dashboard = { divider: true, name: Globalize.translate('TabLibrary'), href: "library.html", - pageIds: ['mediaLibraryPage', 'libraryPathMappingPage', 'librarySettingsPage', 'libraryDisplayPage'], + pageIds: ['mediaLibraryPage', 'librarySettingsPage', 'libraryDisplayPage'], icon: 'folder', color: '#38c' }, { @@ -821,7 +821,7 @@ var Dashboard = { if (enableVlcAudio) { profile.DirectPlayProfiles.push({ - Container: "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac", + Container: "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a", Type: 'Audio' }); @@ -2130,13 +2130,6 @@ var AppInfo = {}; controller: 'dashboard/librarydisplay' }); - defineRoute({ - path: '/librarypathmapping.html', - dependencies: [], - autoFocus: false, - roles: 'admin' - }); - defineRoute({ path: '/librarysettings.html', dependencies: ['emby-collapse', 'emby-input', 'emby-button', 'emby-select'], diff --git a/dashboard-ui/strings/en-US.json b/dashboard-ui/strings/en-US.json index f102e8b76..3929312bb 100644 --- a/dashboard-ui/strings/en-US.json +++ b/dashboard-ui/strings/en-US.json @@ -1208,7 +1208,7 @@ "OptionPlayNextEpisodeAutomatically": "Play next episode automatically", "OptionDownloadImagesInAdvance": "Download images in advance", "SettingsSaved": "Settings saved.", - "OptionDownloadImagesInAdvanceHelp": "By default, most images are only downloaded when requested by an Emby app. Enable this option to download all images in advance, as new media is imported.", + "OptionDownloadImagesInAdvanceHelp": "By default, most images are only downloaded when requested by an Emby app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.", "Users": "Users", "Delete": "Delete", "Password": "Password", @@ -1942,5 +1942,8 @@ "HeaderRecordingPostProcessing": "Recording Post Processing", "LabelPostProcessorArguments": "Post-processor command line arguments:", "LabelPostProcessorArgumentsHelp": "Use {path} as the path to the recording file.", - "LabelPostProcessor": "Post-processing application:" + "LabelPostProcessor": "Post-processing application:", + "ErrorAddingXmlTvFile": "There was an error accessing the XmlTV file. Please ensure the file exists and try again.", + "OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders", + "OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series." }