diff --git a/dashboard-ui/components/fileorganizer/fileorganizer.js b/dashboard-ui/components/fileorganizer/fileorganizer.js index 22e01fc4ff..6baacf079d 100644 --- a/dashboard-ui/components/fileorganizer/fileorganizer.js +++ b/dashboard-ui/components/fileorganizer/fileorganizer.js @@ -29,6 +29,7 @@ context.querySelector('#txtSeason').value = item.ExtractedSeasonNumber; context.querySelector('#txtEpisode').value = item.ExtractedEpisodeNumber; context.querySelector('#txtEndingEpisode').value = item.ExtractedEndingEpisodeNumber; + context.querySelector('.extractedName').value = item.ExtractedName; extractedName = item.ExtractedName; extractedYear = item.ExtractedYear; @@ -54,6 +55,43 @@ context.querySelector('#selectSeries').innerHTML = existingSeriesHtml; + ApiClient.getVirtualFolders().then(function (result) { + + //var movieLocations = []; + var seriesLocations = []; + + for (var n = 0; n < result.length; n++) { + + var virtualFolder = result[n]; + + for (var i = 0, length = virtualFolder.Locations.length; i < length; i++) { + var location = { + value: virtualFolder.Locations[i], + display: virtualFolder.Name + ': ' + virtualFolder.Locations[i] + }; + + //if (virtualFolder.CollectionType == 'movies') { + // movieLocations.push(location); + //} + if (virtualFolder.CollectionType == 'tvshows') { + seriesLocations.push(location); + } + } + } + + var seriesFolderHtml = seriesLocations.map(function (s) { + return ''; + }).join(''); + + if (seriesLocations.length > 1) { + // If the user has multiple folders, add an empty item to enforce a manual selection + seriesFolderHtml = '' + seriesFolderHtml; + } + + context.querySelector('#selectSeriesFolder').innerHTML = seriesFolderHtml; + + }, onApiFailure); + }, onApiFailure); } @@ -62,14 +100,32 @@ Dashboard.showLoadingMsg(); var resultId = dlg.querySelector('#hfResultId').value; + var seriesId = dlg.querySelector('#selectSeries').value; + + var targetFolder; + var newProviderIds; + var newSeriesName; + var newSeriesYear; + + if (seriesId == "##NEW##" && currentNewItem != null) { + seriesId = null; + newProviderIds = JSON.stringify(currentNewItem.ProviderIds); + newSeriesName = currentNewItem.Name; + newSeriesYear = currentNewItem.ProductionYear; + targetFolder = dlg.querySelector('#selectSeriesFolder').value; + } var options = { - SeriesId: dlg.querySelector('#selectSeries').value, + SeriesId: seriesId, SeasonNumber: dlg.querySelector('#txtSeason').value, EpisodeNumber: dlg.querySelector('#txtEpisode').value, EndingEpisodeNumber: dlg.querySelector('#txtEndingEpisode').value, - RememberCorrection: dlg.querySelector('#chkRememberCorrection').checked + RememberCorrection: dlg.querySelector('#chkRememberCorrection').checked, + NewSeriesProviderIds: newProviderIds, + NewSeriesName: newSeriesName, + NewSeriesYear: newSeriesYear, + TargetFolder: targetFolder }; ApiClient.performEpisodeOrganization(resultId, options).then(function () { @@ -93,11 +149,23 @@ var seriesHtml = existingSeriesHtml; seriesHtml = seriesHtml + ''; dlg.querySelector('#selectSeries').innerHTML = seriesHtml; + selectedSeriesChanged(dlg); } }); }); } + function selectedSeriesChanged(dlg) { + var seriesId = dlg.querySelector('#selectSeries').value; + + if (seriesId == "##NEW##") { + dlg.querySelector('.fldSelectSeriesFolder').classList.remove('hide'); + } + else { + dlg.querySelector('.fldSelectSeriesFolder').classList.add('hide'); + } + } + return { show: function (item) { return new Promise(function (resolve, reject) { @@ -161,6 +229,11 @@ showNewSeriesDialog(dlg); }); + dlg.querySelector('#selectSeries').addEventListener('change', function (e) { + + selectedSeriesChanged(dlg); + }); + initEpisodeForm(dlg, item); } diff --git a/dashboard-ui/components/fileorganizer/fileorganizer.template.html b/dashboard-ui/components/fileorganizer/fileorganizer.template.html index 1f75246685..98372ff305 100644 --- a/dashboard-ui/components/fileorganizer/fileorganizer.template.html +++ b/dashboard-ui/components/fileorganizer/fileorganizer.template.html @@ -15,6 +15,12 @@ +
+
+ + +
+
@@ -27,7 +33,7 @@

- ${OptionRememberOrganizeCorrection} + ${OptionRememberOrganizeCorrection}