1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

auto-organize - support new series

This commit is contained in:
Luke Pulverenti 2016-02-26 01:36:03 -05:00
parent 9cadc0ddff
commit 57684befac
3 changed files with 165 additions and 36 deletions

View file

@ -1,5 +1,10 @@
define(['paperdialoghelper', 'paper-checkbox', 'paper-input', 'paper-button'], function (paperDialogHelper) {
var extractedName;
var extractedYear;
var currentNewItem;
var existingSeriesHtml;
function onApiFailure(e) {
Dashboard.hideLoadingMsg();
@ -24,6 +29,10 @@
$('#txtSeason', context).val(item.ExtractedSeasonNumber);
$('#txtEpisode', context).val(item.ExtractedEpisodeNumber);
$('#txtEndingEpisode', context).val(item.ExtractedEndingEpisodeNumber);
$('.extractedName', context).html(item.ExtractedName);
extractedName = item.ExtractedName;
extractedYear = item.ExtractedYear;
$('#chkRememberCorrection', context).val(false);
@ -36,15 +45,15 @@
}).then(function (result) {
var seriesHtml = result.Items.map(function (s) {
existingSeriesHtml = result.Items.map(function (s) {
return '<option value="' + s.Id + '">' + s.Name + '</option>';
}).join('');
seriesHtml = '<option value=""></option>' + seriesHtml;
existingSeriesHtml = '<option value=""></option>' + existingSeriesHtml;
$('#selectSeries', context).html(seriesHtml);
$('#selectSeries', context).html(existingSeriesHtml);
}, onApiFailure);
}
@ -74,10 +83,35 @@
}, onApiFailure);
}
function showNewSeriesDialog(dlg) {
require(['components/itemidentifier/itemidentifier'], function (itemidentifier) {
itemidentifier.showFindNew(extractedName, extractedYear, 'Series').then(function (newItem) {
currentNewItem = newItem;
var seriesHtml = existingSeriesHtml;
if (currentNewItem != null) {
seriesHtml = seriesHtml + '<option selected value="##NEW##">' + currentNewItem.Name + '</option>';
}
$('#selectSeries', dlg).html(seriesHtml);
});
});
}
return {
show: function (item) {
return new Promise(function (resolve, reject) {
extractedName = null;
extractedYear = null;
currentNewItem = null;
existingSeriesHtml = null;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'components/fileorganizer/fileorganizer.template.html', true);
@ -127,6 +161,11 @@
return false;
});
dlg.querySelector('#btnNewSeries').addEventListener('click', function (e) {
showNewSeriesDialog(dlg);
});
initEpisodeForm(dlg, item);
}

View file

@ -8,9 +8,12 @@
<p><span class="inputFile"></span></p>
<div style="margin: 1em 0 1em; min-width: 250px;">
<label for="selectSeries" class="selectLabel">${LabelSeries}</label>
<select id="selectSeries" data-mini="true" required="required"></select>
<div style="margin: 1em 0 1em;">
<div style="width:85%;display:inline-block;">
<label for="selectSeries" class="selectLabel">${LabelSeries}</label>
<select id="selectSeries" data-mini="true" required="required"></select>
</div>
<paper-icon-button id="btnNewSeries" icon="add" title="${ButtonNew}"></paper-icon-button>
</div>
<div style="margin: 1em 0;">
<paper-input id="txtSeason" type="number" pattern="[0-9]*" required min="0" label="${LabelSeasonNumber}"></paper-input>