$(function() { const setImportExportButtonLabels = (key) => { $(`#btn-import span, #btn-confirm-import`).text((key == 'all') ? i18n.restore : i18n.import); $(`#btn-export span`).text((key == 'all') ? i18n.backup : i18n.export); if (key == 'all') { $(`.import-title`).hide(); $(`.restore-title`).show(); } else { $(`.import-title`).show(); $(`.restore-title`).hide(); } } const updateExportLink = (key) => { if (key === undefined) { console.warn("A key must be provided!"); return; } // create a filename for the selectec config const filename = `${key}_config.json`; const href = new URL(`/lua/rest/v2/export/${key}/config.lua`, location.origin); href.searchParams.set('download', '1'); // update the export button link $(`#btn-export`) .attr("download", filename) .attr("href", href.toString()); } $(`input[name='configuration']`).change(function() { const key = $(this).val(); let label = $(this).parent("div").find("label").text(); if (label.indexOf('(') >= 0) label = label.substr(0, label.indexOf('(')); $(`.selected-item`).text((key == 'all') ? 'ntopng' : label); setImportExportButtonLabels(key); updateExportLink(key); }); $(`#btn-confirm-action_reset-modal`).click(async function() { $(this).attr("disabled", "disabled"); const key = $(`input[name='configuration']:checked`).val(); try { const request = await fetch(`${http_prefix}/lua/rest/v2/reset/${key}/config.lua`); const response = await request.json(); // check if the request failed if (response.rc < 0) { return; } const body = (key == 'all') ? i18n.manage_configurations.messagges.reset_all_success : i18n.manage_configurations.messagges.reset_success; ToastUtils.showToast({ id: 'reset-configuration-alert', level: 'success', title: i18n.success, body: body, delay: 2000 }); $(`#reset-modal`).modal('hide'); } catch (exception) { } finally { $(this).removeAttr("disabled"); } }); // configure import config modal NtopUtils.importModalHelper({ loadConfigXHR: (jsonConf) => { const key = $(`input[name='configuration']:checked`).val(); return $.post(`${http_prefix}/lua/rest/v2/import/${key}/config.lua`, { JSON: jsonConf, csrf: importCSRF}); } }); });