(function ($, document, window) { var currentConfig; function remove(page, index) { Dashboard.confirm(Globalize.translate('MessageConfirmPathSubstitutionDeletion'), Globalize.translate('HeaderConfirmDeletion'), function (result) { if (result) { ApiClient.getServerConfiguration().done(function (config) { config.PathSubstitutions.splice(index, 1); ApiClient.updateServerConfiguration(config).done(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 += ''; mapHtml += ''; mapHtml += ''; mapHtml += map.From; mapHtml += ''; mapHtml += ''; mapHtml += map.To; mapHtml += ''; mapHtml += ''; index++; return mapHtml; }); var elem = $('.tbodyPathSubstitutions', page).html(html.join('')).parents('table').table('refresh').trigger('create'); $('.btnDeletePath', elem).on('click', function () { remove(page, parseInt(this.getAttribute('data-index'))); }); if (config.PathSubstitutions.length) { $('#tblPaths', page).show(); } else { $('#tblPaths', page).hide(); } } function loadPage(page, config) { currentConfig = config; reloadPathMappings(page, config); Dashboard.hideLoadingMsg(); } function reload(page) { $('#txtFrom', page).val(''); $('#txtTo', page).val(''); ApiClient.getServerConfiguration().done(function (config) { loadPage(page, config); }); } function onSubmit() { Dashboard.showLoadingMsg(); var form = this; var page = $(form).parents('.page'); ApiClient.getServerConfiguration().done(function (config) { addSubstitution(page, config); ApiClient.updateServerConfiguration(config).done(function () { reload(page); }); }); // Disable default form submission return false; } $(document).on('pageinitdepends', "#libraryPathMappingPage", function () { $('.libraryPathMappingForm').off('submit', onSubmit).on('submit', onSubmit); }).on('pageshowready', "#libraryPathMappingPage", function () { Dashboard.showLoadingMsg(); var page = this; ApiClient.getServerConfiguration().done(function (config) { loadPage(page, config); }); }).on('pagebeforehide', "#libraryPathMappingPage", function () { currentConfig = null; }); })(jQuery, document, window);