define(['jQuery', 'listViewStyle'], function ($) { 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); page.querySelector('.labelFromHelp').innerHTML = Globalize.translate('LabelFromHelp', 'D:\\Movies'); }).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; }); });