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

Remove jquery from autoorganize scripts

This commit is contained in:
softworkz 2016-08-15 05:09:08 +02:00
parent b7eaf270a1
commit cbc8ff2aed
8 changed files with 308 additions and 194 deletions

View file

@ -1,9 +1,8 @@
<div id="libraryFileOrganizerLogPage" data-role="page" class="page type-interior organizePage withTabs fullWidthContent" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize" data-require="jqmtable,scripts/autoorganizelog,detailtablecss"> <div id="libraryFileOrganizerLogPage" data-role="page" class="page type-interior organizePage withTabs fullWidthContent" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize">
<div data-role="content"> <div data-role="content">
<div class="content-primary"> <div class="content-primary">
<div> <div>
<div style="text-align:right;" class="organizeTaskPanel hide"> <div style="text-align:right;" class="organizeTaskPanel hide">
<button is="emby-button" type="button" class="btnClearLog raised subdued"> <button is="emby-button" type="button" class="btnClearLog raised subdued">
<i class="md-icon">clear_all</i><span>${ButtonClear}</span> <i class="md-icon">clear_all</i><span>${ButtonClear}</span>
@ -13,19 +12,21 @@
</div> </div>
<div class="listTopPaging"> <div class="listTopPaging">
</div> </div>
<div class="autoorganizetable">
<table class="tblOrganizationResults table" style="border-collapse:collapse;">
<thead>
<tr>
<th data-priority="1"></th>
<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>
</div> </div>
<table data-role="table" data-mode="reflow" class="tblOrganizationResults stripedTable ui-responsive table-stroke">
<thead>
<tr>
<th data-priority="1"></th>
<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 /> <br />
<div style="text-align: right;vertical-align:middle;" class="legend"> <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> <div style="display: inline-block; height: 10px; width: 10px; background: green;margin-right:1px;"></div>

View file

@ -1,4 +1,4 @@
<div id="libraryFileOrganizerSmartMatchPage" data-role="page" class="page type-interior organizePage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize" data-require="scripts/autoorganizesmart"> <div id="libraryFileOrganizerSmartMatchPage" data-role="page" class="page type-interior organizePage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize">
<div data-role="content"> <div data-role="content">
<div class="content-primary"> <div class="content-primary">

View file

@ -1,5 +1,4 @@
<div id="libraryFileOrganizerPage" data-role="page" class="page type-interior organizePage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize" data-require="emby-collapse,jqmtable,scripts/autoorganizetv,paper-input,paper-checkbox"> <div id="libraryFileOrganizerPage" data-role="page" class="page type-interior organizePage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Auto-Organize">
<div data-role="content"> <div data-role="content">
<div class="content-primary"> <div class="content-primary">

View file

@ -0,0 +1,68 @@
.autoorganizetable > .table {
width: 100%;
}
.autoorganizetable > .table > tbody > tr > td {
padding: 0.4em;
}
.autoorganizetable .fileCell {
word-wrap: break-word;
word-break: break-all;
}
.autoorganizetable > .table > thead > th {
text-align: left;
}
.autoorganizetable tbody tr:nth-child(odd) td,
.autoorganizetable tbody tr:nth-child(odd) th {
background-color: #eeeeee; /* non-RGBA fallback */
background-color: rgba(0,0,0,.04);
}
@media screen and (max-width: 800px) {
.autoorganizetable > .table {
margin-bottom: 0;
background-color: transparent;
}
.autoorganizetable .spinnerCell {
display: none !important;
}
.autoorganizetable > .table > thead,
.autoorganizetable > .table > tfoot {
display: none;
}
.autoorganizetable > .table > tbody {
display: block;
}
.autoorganizetable > .table > tbody > tr {
display: block;
border: 1px solid #e0e0e0;
border-radius: 2px;
margin-bottom: 1.6rem;
}
.autoorganizetable > .table > tbody > tr > td {
background-color: #eeeeee; /* non-RGBA fallback */
background-color: rgba(0,0,0,.04);
display: block;
vertical-align: middle;
text-align: left;
text-overflow: ellipsis;
padding: 0.4em;
}
.autoorganizetable > .table > tbody > tr > td[data-title]:before {
content: attr(data-title);
float: left;
font-size: inherit;
font-weight: bold;
min-width: 20%;
}
}

View file

@ -1,4 +1,4 @@
define(['jQuery', 'serverNotifications', 'events', 'scripts/taskbutton', 'datetime', 'paper-icon-button-light'], function ($, serverNotifications, events, taskButton, datetime) { define(['serverNotifications', 'events', 'scripts/taskbutton', 'datetime', 'paper-icon-button-light'], function (serverNotifications, events, taskButton, datetime) {
var query = { var query = {
@ -7,6 +7,20 @@
}; };
var currentResult; var currentResult;
var page;
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function showStatusMessage(id) { function showStatusMessage(id) {
@ -167,28 +181,10 @@
return html; return html;
}).join(''); }).join('');
var elem = $('.resultBody', page).html(rows).parents('.tblOrganizationResults').table('refresh').trigger('create'); var resultBody = page.querySelector('.resultBody');
resultBody.innerHTML = rows;
$('.btnShowStatusMessage', elem).on('click', function () { resultBody.addEventListener('click', handleItemClick);
var id = this.getAttribute('data-resultid');
showStatusMessage(id);
});
$('.btnProcessResult', elem).on('click', function () {
var id = this.getAttribute('data-resultid');
organizeFile(page, id);
});
$('.btnDeleteResult', elem).on('click', function () {
var id = this.getAttribute('data-resultid');
deleteOriginalFile(page, id);
});
var pagingHtml = LibraryBrowser.getQueryPagingHtml({ var pagingHtml = LibraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
@ -198,32 +194,43 @@
updatePageSizeSetting: false updatePageSizeSetting: false
}); });
$(page)[0].querySelector('.listTopPaging').innerHTML = pagingHtml; var topPaging = page.querySelector('.listTopPaging');
topPaging.innerHTML = pagingHtml;
if (result.TotalRecordCount > query.Limit && result.TotalRecordCount > 50) { var bottomPaging = page.querySelector('.listBottomPaging');
bottomPaging.innerHTML = pagingHtml;
$('.listBottomPaging', page).html(pagingHtml).trigger('create'); var btnNextTop = topPaging.querySelector(".btnNextPage");
} else { var btnNextBottom = bottomPaging.querySelector(".btnNextPage");
var btnPrevTop = topPaging.querySelector(".btnPreviousPage");
$('.listBottomPaging', page).empty(); var btnPrevBottom = bottomPaging.querySelector(".btnPreviousPage");
}
$('.btnNextPage', page).on('click', function () {
btnNextTop.addEventListener('click', function () {
query.StartIndex += query.Limit; query.StartIndex += query.Limit;
reloadItems(page, true); reloadItems(page, true);
}); });
$('.btnPreviousPage', page).on('click', function () { btnNextBottom.addEventListener('click', function () {
query.StartIndex += query.Limit;
reloadItems(page, true);
});
btnPrevTop.addEventListener('click', function () {
query.StartIndex -= query.Limit; query.StartIndex -= query.Limit;
reloadItems(page, true); reloadItems(page, true);
}); });
btnPrevBottom.addEventListener('click', function () {
query.StartIndex -= query.Limit;
reloadItems(page, true);
});
var btnClearLog = page.querySelector('.btnClearLog');
if (result.TotalRecordCount) { if (result.TotalRecordCount) {
page.querySelector('.btnClearLog').classList.remove('hide'); btnClearLog.classList.remove('hide');
} else { } else {
page.querySelector('.btnClearLog').classList.add('hide'); btnClearLog.classList.add('hide');
} }
} }
@ -236,12 +243,12 @@
html += '<img src="css/images/throbber.gif" alt="" class="syncSpinner' + hide + '" style="vertical-align: middle;" />'; html += '<img src="css/images/throbber.gif" alt="" class="syncSpinner' + hide + '" style="vertical-align: middle;" />';
html += '</td>'; html += '</td>';
html += '<td>'; html += '<td data-title="Date">';
var date = datetime.parseISO8601Date(item.Date, true); var date = datetime.parseISO8601Date(item.Date, true);
html += date.toLocaleDateString(); html += date.toLocaleDateString();
html += '</td>'; html += '</td>';
html += '<td>'; html += '<td data-title="Source" class="fileCell">';
var status = item.Status; var status = item.Status;
if (item.IsInProgress) { if (item.IsInProgress) {
@ -265,7 +272,7 @@
} }
html += '</td>'; html += '</td>';
html += '<td>'; html += '<td data-title="Destination" class="fileCell">';
html += item.TargetPath || ''; html += item.TargetPath || '';
html += '</td>'; html += '</td>';
@ -282,9 +289,33 @@
return html; return html;
} }
function onServerEvent(e, apiClient, data) { function handleItemClick(e) {
var page = $.mobile.activePage; var id;
var buttonStatus = parentWithClass(e.target, 'btnShowStatusMessage');
if (buttonStatus) {
id = buttonStatus.getAttribute('data-resultid');
showStatusMessage(id);
}
var buttonOrganize = parentWithClass(e.target, 'btnProcessResult');
if (buttonOrganize) {
id = buttonOrganize.getAttribute('data-resultid');
organizeFile(e.view, id);
}
var buttonDelete = parentWithClass(e.target, 'btnDeleteResult');
if (buttonDelete) {
id = buttonDelete.getAttribute('data-resultid');
deleteOriginalFile(e.view, id);
}
}
function onServerEvent(e, apiClient, data) {
if (data) { if (data) {
@ -322,49 +353,48 @@
}]; }];
} }
$(document).on('pageinit', "#libraryFileOrganizerLogPage", function () {
var page = this; return function (view, params) {
$('.btnClearLog', page).on('click', function () { page = view;
var clearButton = view.querySelector('.btnClearLog');
clearButton.addEventListener('click', function () {
ApiClient.clearOrganizationLog().then(function () { ApiClient.clearOrganizationLog().then(function () {
reloadItems(page, true); reloadItems(view, true);
}, Dashboard.processErrorResponse); }, Dashboard.processErrorResponse);
}); });
}).on('pageshow', '#libraryFileOrganizerLogPage', function () { view.addEventListener('viewshow', function (e) {
LibraryMenu.setTabs('autoorganize', 0, getTabs); LibraryMenu.setTabs('autoorganize', 0, getTabs);
var page = this; reloadItems(view, true);
reloadItems(page, true); events.on(serverNotifications, 'AutoOrganizeUpdate', onServerEvent);
// on here // on here
taskButton({ taskButton({
mode: 'on', mode: 'on',
progressElem: page.querySelector('.organizeProgress'), progressElem: view.querySelector('.organizeProgress'),
panel: page.querySelector('.organizeTaskPanel'), panel: view.querySelector('.organizeTaskPanel'),
taskKey: 'AutoOrganize', taskKey: 'AutoOrganize',
button: page.querySelector('.btnOrganize') button: view.querySelector('.btnOrganize')
});
}); });
events.on(serverNotifications, 'AutoOrganizeUpdate', onServerEvent); view.addEventListener('viewhide', function (e) {
}).on('pagebeforehide', '#libraryFileOrganizerLogPage', function () { currentResult = null;
var page = this; events.off(serverNotifications, 'AutoOrganizeUpdate', onServerEvent);
currentResult = null; // off here
taskButton({
// off here mode: 'off',
taskButton({ button: view.querySelector('.btnOrganize')
mode: 'off', });
button: page.querySelector('.btnOrganize')
}); });
};
events.off(serverNotifications, 'AutoOrganizeUpdate', onServerEvent);
});
}); });

View file

@ -1,4 +1,4 @@
define(['jQuery', 'listViewStyle'], function ($) { define(['listViewStyle'], function () {
var query = { var query = {
@ -8,6 +8,19 @@
var currentResult; var currentResult;
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function reloadList(page) { function reloadList(page) {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
@ -93,7 +106,8 @@
html += "</div>"; html += "</div>";
} }
$('.divMatchInfos', page).html(html); var matchInfos = page.querySelector('.divMatchInfos');
matchInfos.innerHTML = html;
} }
function getTabs() { function getTabs() {
@ -112,45 +126,47 @@
}]; }];
} }
$(document).on('pageinit', "#libraryFileOrganizerSmartMatchPage", function () { return function (view, params) {
var page = this; var self = this;
$('.divMatchInfos', page).on('click', '.btnDeleteMatchEntry', function () { var divInfos = view.querySelector('.divMatchInfos');
var button = this; divInfos.addEventListener('click', function (e) {
var index = parseInt(button.getAttribute('data-index'));
var matchIndex = parseInt(button.getAttribute('data-matchindex'));
var info = currentResult.Items[index]; var button = parentWithClass(e.target, 'btnDeleteMatchEntry');
var entries = [
{
Name: info.ItemName,
Value: info.MatchStrings[matchIndex]
}];
ApiClient.deleteSmartMatchEntries(entries).then(function () { if (button) {
reloadList(page); var index = parseInt(button.getAttribute('data-index'));
var matchIndex = parseInt(button.getAttribute('data-matchindex'));
}, Dashboard.processErrorResponse); var info = currentResult.Items[index];
var entries = [
{
Name: info.ItemName,
Value: info.MatchStrings[matchIndex]
}];
ApiClient.deleteSmartMatchEntries(entries).then(function () {
reloadList(view);
}, Dashboard.processErrorResponse);
}
}); });
}).on('pageshow', "#libraryFileOrganizerSmartMatchPage", function () { view.addEventListener('viewshow', function (e) {
var page = this; LibraryMenu.setTabs('autoorganize', 2, getTabs);
Dashboard.showLoadingMsg();
LibraryMenu.setTabs('autoorganize', 2, getTabs); reloadList(view);
});
Dashboard.showLoadingMsg(); view.addEventListener('viewhide', function (e) {
reloadList(page);
}).on('pagebeforehide', "#libraryFileOrganizerSmartMatchPage", function () {
var page = this;
currentResult = null;
});
currentResult = null;
});
};
}); });

View file

@ -1,13 +1,4 @@
define(['jQuery'], function ($) { define([], function () {
function updateSeasonPatternHelp(page, value) {
var resultValue = value.replace('%s', '1').replace('%0s', '01').replace('%00s', '001');
var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', resultValue);
$('.seasonFolderFieldDescription', page).html(replacementHtmlResult);
}
function getEpisodeFileName(value, enableMultiEpisode) { function getEpisodeFileName(value, enableMultiEpisode) {
@ -38,70 +29,50 @@
.replace('%00e', '004'); .replace('%00e', '004');
} }
function updateEpisodePatternHelp(page, value) { function loadPage(view, config) {
value = getEpisodeFileName(value, false);
var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value);
$('.episodePatternDescription', page).html(replacementHtmlResult);
}
function updateMultiEpisodePatternHelp(page, value) {
value = getEpisodeFileName(value, true);
var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value);
$('.multiEpisodePatternDescription', page).html(replacementHtmlResult);
}
function loadPage(page, config) {
var tvOptions = config.TvOptions; var tvOptions = config.TvOptions;
$('#chkEnableTvSorting', page).checked(tvOptions.IsEnabled); view.querySelector('#chkEnableTvSorting').checked = tvOptions.IsEnabled;
$('#chkOverwriteExistingEpisodes', page).checked(tvOptions.OverwriteExistingEpisodes); view.querySelector('#chkOverwriteExistingEpisodes').checked = tvOptions.OverwriteExistingEpisodes;
$('#chkDeleteEmptyFolders', page).checked(tvOptions.DeleteEmptyFolders); view.querySelector('#chkDeleteEmptyFolders').checked = tvOptions.DeleteEmptyFolders;
$('#txtMinFileSize', page).val(tvOptions.MinFileSizeMb); view.querySelector('#txtMinFileSize').value = tvOptions.MinFileSizeMb;
$('#txtSeasonFolderPattern', page).val(tvOptions.SeasonFolderPattern).trigger('change'); view.querySelector('#txtSeasonFolderPattern').value = tvOptions.SeasonFolderPattern;
$('#txtSeasonZeroName', page).val(tvOptions.SeasonZeroFolderName); view.querySelector('#txtSeasonZeroName').value = tvOptions.SeasonZeroFolderName;
$('#txtWatchFolder', page).val(tvOptions.WatchLocations[0] || ''); view.querySelector('#txtWatchFolder').value = tvOptions.WatchLocations[0] || '';
$('#txtEpisodePattern', page).val(tvOptions.EpisodeNamePattern).trigger('change'); view.querySelector('#txtEpisodePattern').value = tvOptions.EpisodeNamePattern;
$('#txtMultiEpisodePattern', page).val(tvOptions.MultiEpisodeNamePattern).trigger('change'); view.querySelector('#txtMultiEpisodePattern').value = tvOptions.MultiEpisodeNamePattern;
$('#txtDeleteLeftOverFiles', page).val(tvOptions.LeftOverFileExtensionsToDelete.join(';')); view.querySelector('#txtDeleteLeftOverFiles').value = tvOptions.LeftOverFileExtensionsToDelete.join(';');
$('#copyOrMoveFile', page).val(tvOptions.CopyOriginalFile.toString());
view.querySelector('#copyOrMoveFile').value = tvOptions.CopyOriginalFile.toString();
} }
function onSubmit() { function onSubmit(view) {
var form = this;
ApiClient.getNamedConfiguration('autoorganize').then(function (config) { ApiClient.getNamedConfiguration('autoorganize').then(function (config) {
var tvOptions = config.TvOptions; var tvOptions = config.TvOptions;
tvOptions.IsEnabled = view.querySelector('#chkEnableTvSorting').checked;
tvOptions.OverwriteExistingEpisodes = view.querySelector('#chkOverwriteExistingEpisodes').checked;
tvOptions.DeleteEmptyFolders = view.querySelector('#chkDeleteEmptyFolders').checked;
tvOptions.IsEnabled = $('#chkEnableTvSorting', form).checked(); tvOptions.MinFileSizeMb = view.querySelector('#txtMinFileSize').value;
tvOptions.OverwriteExistingEpisodes = $('#chkOverwriteExistingEpisodes', form).checked(); tvOptions.SeasonFolderPattern = view.querySelector('#txtSeasonFolderPattern').value;
tvOptions.DeleteEmptyFolders = $('#chkDeleteEmptyFolders', form).checked(); tvOptions.SeasonZeroFolderName = view.querySelector('#txtSeasonZeroName').value;
tvOptions.MinFileSizeMb = $('#txtMinFileSize', form).val(); tvOptions.EpisodeNamePattern = view.querySelector('#txtEpisodePattern').value;
tvOptions.SeasonFolderPattern = $('#txtSeasonFolderPattern', form).val(); tvOptions.MultiEpisodeNamePattern = view.querySelector('#txtMultiEpisodePattern').value;
tvOptions.SeasonZeroFolderName = $('#txtSeasonZeroName', form).val();
tvOptions.EpisodeNamePattern = $('#txtEpisodePattern', form).val(); tvOptions.LeftOverFileExtensionsToDelete = view.querySelector('#txtDeleteLeftOverFiles').value.split(';');
tvOptions.MultiEpisodeNamePattern = $('#txtMultiEpisodePattern', form).val();
tvOptions.LeftOverFileExtensionsToDelete = $('#txtDeleteLeftOverFiles', form).val().split(';'); var watchLocation = view.querySelector('#txtWatchFolder').value;
var watchLocation = $('#txtWatchFolder', form).val();
tvOptions.WatchLocations = watchLocation ? [watchLocation] : []; tvOptions.WatchLocations = watchLocation ? [watchLocation] : [];
tvOptions.CopyOriginalFile = $('#copyOrMoveFile', form).val(); tvOptions.CopyOriginalFile = view.querySelector('#copyOrMoveFile').value;
ApiClient.updateNamedConfiguration('autoorganize', config).then(Dashboard.processServerConfigurationUpdateResult, Dashboard.processErrorResponse); ApiClient.updateNamedConfiguration('autoorganize', config).then(Dashboard.processServerConfigurationUpdateResult, Dashboard.processErrorResponse);
}); });
@ -125,29 +96,40 @@
}]; }];
} }
$(document).on('pageinit', "#libraryFileOrganizerPage", function () { return function (view, params) {
var page = this;
$('#txtSeasonFolderPattern', page).on('change keyup', function () { function updateSeasonPatternHelp() {
updateSeasonPatternHelp(page, this.value); var value = view.querySelector('#txtSeasonFolderPattern').value;
value = value.replace('%s', '1').replace('%0s', '01').replace('%00s', '001');
}); var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value);
$('#txtEpisodePattern', page).on('change keyup', function () { view.querySelector('.seasonFolderFieldDescription').innerHTML = replacementHtmlResult;
}
updateEpisodePatternHelp(page, this.value); function updateEpisodePatternHelp() {
}); var value = view.querySelector('#txtEpisodePattern').value;
var fileName = getEpisodeFileName(value, false);
$('#txtMultiEpisodePattern', page).on('change keyup', function () { var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', fileName);
updateMultiEpisodePatternHelp(page, this.value); view.querySelector('.episodePatternDescription').innerHTML = replacementHtmlResult;
}
}); function updateMultiEpisodePatternHelp() {
$('#btnSelectWatchFolder', page).on("click.selectDirectory", function () { var value = view.querySelector('#txtMultiEpisodePattern').value;
var fileName = getEpisodeFileName(value, false);
var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', fileName);
view.querySelector('.multiEpisodePatternDescription').innerHTML = replacementHtmlResult;
}
function selectWatchFolder(e) {
require(['directorybrowser'], function (directoryBrowser) { require(['directorybrowser'], function (directoryBrowser) {
@ -158,28 +140,42 @@
callback: function (path) { callback: function (path) {
if (path) { if (path) {
$('#txtWatchFolder', page).val(path);
view.querySelector('#txtWatchFolder').value = path;
} }
picker.close(); picker.close();
}, },
header: Globalize.translate('HeaderSelectWatchFolder'), header: Globalize.translate('HeaderSelectWatchFolder'),
instruction: Globalize.translate('HeaderSelectWatchFolderHelp') instruction: Globalize.translate('HeaderSelectWatchFolderHelp')
}); });
}); });
}
view.querySelector('#txtSeasonFolderPattern').addEventListener('change', updateSeasonPatternHelp);
view.querySelector('#txtSeasonFolderPattern').addEventListener('keyup', updateSeasonPatternHelp);
view.querySelector('#txtEpisodePattern').addEventListener('change', updateEpisodePatternHelp);
view.querySelector('#txtEpisodePattern').addEventListener('keyup', updateEpisodePatternHelp);
view.querySelector('#txtMultiEpisodePattern').addEventListener('change', updateMultiEpisodePatternHelp);
view.querySelector('#txtMultiEpisodePattern').addEventListener('keyup', updateMultiEpisodePatternHelp);
view.querySelector('#btnSelectWatchFolder').addEventListener('click', selectWatchFolder);
view.querySelector('.libraryFileOrganizerForm').addEventListener('submit', function (e) {
e.preventDefault();
onSubmit(view);
return false;
}); });
$('.libraryFileOrganizerForm').off('submit', onSubmit).on('submit', onSubmit); view.addEventListener('viewshow', function (e) {
}).on('pageshow', "#libraryFileOrganizerPage", function () { LibraryMenu.setTabs('autoorganize', 1, getTabs);
var page = this; ApiClient.getNamedConfiguration('autoorganize').then(function (config) {
loadPage(view, config);
LibraryMenu.setTabs('autoorganize', 1, getTabs); updateSeasonPatternHelp();
updateEpisodePatternHelp();
ApiClient.getNamedConfiguration('autoorganize').then(function (config) { updateMultiEpisodePatternHelp();
loadPage(page, config); });
}); });
}); };
}); });

View file

@ -1758,6 +1758,7 @@ var AppInfo = {};
define("livetvcss", ['css!css/livetv.css']); define("livetvcss", ['css!css/livetv.css']);
define("detailtablecss", ['css!css/detailtable.css']); define("detailtablecss", ['css!css/detailtable.css']);
define("autoorganizetablecss", ['css!css/autoorganizetable.css']);
define("buttonenabled", ["legacy/buttonenabled"]); define("buttonenabled", ["legacy/buttonenabled"]);
@ -1905,20 +1906,23 @@ var AppInfo = {};
defineRoute({ defineRoute({
path: '/autoorganizelog.html', path: '/autoorganizelog.html',
dependencies: [], dependencies: ['scripts/taskbutton', 'autoorganizetablecss'],
controller: 'scripts/autoorganizelog',
roles: 'admin' roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/autoorganizesmart.html', path: '/autoorganizesmart.html',
dependencies: [], dependencies: [],
controller: 'scripts/autoorganizesmart',
autoFocus: false, autoFocus: false,
roles: 'admin' roles: 'admin'
}); });
defineRoute({ defineRoute({
path: '/autoorganizetv.html', path: '/autoorganizetv.html',
dependencies: [], dependencies: ['jqmtable', 'paper-input', 'paper-checkbox'],
controller: 'scripts/autoorganizetv',
autoFocus: false, autoFocus: false,
roles: 'admin' roles: 'admin'
}); });