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

When a filename cannot be auto-matched to an existing series name, the organization must be performed manually. Unfortunately not just once, but again and again for each episode coming in. This change proposes a simple but solid method to optionally persist the matching condition from within the manual organization dialog. This approach will make Emby "learn" how to organize files in the future without user interaction.
105 lines
5.5 KiB
HTML
105 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>${TitleAutoOrganize}</title>
|
|
</head>
|
|
<body>
|
|
<div id="libraryFileOrganizerLogPage" data-role="page" class="page type-interior organizePage" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize" data-require="jqmtable,jqmpopup,scripts/autoorganizelog,scripts/taskbutton,detailtablecss">
|
|
|
|
<div data-role="content">
|
|
<div class="content-primary">
|
|
|
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
|
<a href="#" data-role="button" class="ui-btn-active">${TabActivityLog}</a>
|
|
<a href="autoorganizetv.html" data-role="button">${TabTV}</a>
|
|
<a href="autoorganizesmart.html" data-role="button">${TabSmartMatch}</a>
|
|
</div>
|
|
|
|
<div style="margin: -25px 0 1em; text-align: right;">
|
|
<div class="listTopPaging" style="float: left; position: relative; top: 15px;">
|
|
</div>
|
|
|
|
<div style="float: right; position: relative; top: 15px;margin-top: -5px;display:none;" class="organizeTaskPanel">
|
|
<paper-button type="button" class="btnClearLog" raised><iron-icon icon="clear-all"></iron-icon><span>${ButtonClear}</span></paper-button>
|
|
<paper-button type="button" class="btnOrganize" raised><iron-icon icon="check"></iron-icon><span>${ButtonOrganize}</span></paper-button>
|
|
<progress max="100" min="0" style="width:100px;display:none;" class="organizeProgress"></progress>
|
|
</div>
|
|
<br />
|
|
|
|
<div style="clear: both;"></div>
|
|
</div>
|
|
<table data-role="table" data-mode="reflow" class="tblOrganizationResults stripedTable ui-responsive table-stroke">
|
|
<thead>
|
|
<tr>
|
|
<th data-priority="2">${HeaderDate}</th>
|
|
<th data-priority="1">${HeaderSource}</th>
|
|
<th data-priority="3">${HeaderDestination}</th>
|
|
<th data-priority="1"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="resultBody"></tbody>
|
|
</table>
|
|
<br />
|
|
<div style="text-align: right;vertical-align:middle;" class="legend">
|
|
<div style="display: inline-block; height: 10px; width: 10px; background: green;margin-right:1px;"></div>
|
|
<span>${LabelCompleted}</span>
|
|
<div style="display: inline-block; height: 10px; width: 10px; background: red; margin-left: 1em;margin-right:1px;"></div>
|
|
<span>${LabelFailed}</span>
|
|
<div style="display: inline-block; height: 10px; width: 10px; background: blue; margin-left: 1em;margin-right:1px;"></div>
|
|
<span>${LabelSkipped}</span>
|
|
</div>
|
|
<div class="listBottomPaging">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div data-role="popup" class="popup episodeCorrectionPopup">
|
|
|
|
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
|
|
<h3>${HeaderEpisodeOrganization}</h3>
|
|
</div>
|
|
|
|
<div data-role="content">
|
|
<form class="episodeCorrectionForm">
|
|
|
|
<p><span class="inputFile"></span></p>
|
|
|
|
<div style="margin: 1em 0 1em; min-width: 250px;">
|
|
<label for="selectSeries">${LabelSeries}</label>
|
|
<select id="selectSeries" data-mini="true" required="required"></select>
|
|
</div>
|
|
<div style="margin: 1em 0;">
|
|
<label for="txtSeason">${LabelSeasonNumber}</label>
|
|
<input id="txtSeason" type="number" pattern="[0-9]*" required="required" min="0" />
|
|
</div>
|
|
<div style="margin: 1em 0;">
|
|
<label for="txtEpisode">${LabelEpisodeNumber}</label>
|
|
<input id="txtEpisode" type="number" pattern="[0-9]*" required="required" min="0" />
|
|
</div>
|
|
<div style="margin: 1em 0;">
|
|
<label for="txtEndingEpisode">${LabelEndingEpisodeNumber}</label>
|
|
<input id="txtEndingEpisode" type="number" pattern="[0-9]*" min="0" />
|
|
<div class="fieldDescription">${LabelEndingEpisodeNumberHelp}</div>
|
|
</div>
|
|
<div style="margin: 1em 0;">
|
|
<label>${TabSmartMatch}</label>
|
|
<input type="checkbox" id="chkRememberCorrection" name="chkRememberCorrection" data-mini="true" />
|
|
<label for="chkRememberCorrection">${LabelOrganizeSmartMatchOption} '<span class="extractedName" />' </label>
|
|
</div>
|
|
|
|
<p>
|
|
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
|
${ButtonOk}
|
|
</button>
|
|
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');" data-mini="true">
|
|
${ButtonCancel}
|
|
</button>
|
|
</p>
|
|
<input id="hfResultId" type="hidden" />
|
|
</form>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|