async function getAllModules() {
return await $.post(`https://${resName}/getAllModules`);
}
function createDivForModule(moduleType, options) {
const div = $(`
`);
const select = div.find(".module-options");
select.data("moduleType", moduleType);
options.forEach(name => {
const option = $(``);
option.appendTo(select);
});
return div;
}
async function loadModulesSettings(modulesSettings) {
const modulesDiv = $(".modules-dialog");
modulesDiv.empty();
const modules = await getAllModules();
let unselectedModules = [];
modules.forEach(module => {
const div = createDivForModule(module.type, module.options);
div.appendTo(modulesDiv);
if (modulesSettings[module.type] == "not_selected") {
unselectedModules.push(module);
}
});
// For each select, set the value to the value in modulesSettings
modulesDiv.find(".module-options").each((index, select) => {
const moduleType = $(select).data("moduleType");
const moduleName = modulesSettings[moduleType];
$(select).val(moduleName);
});
// For each not_selected module, add it to unselectedModules
if(unselectedModules.length <= 0) return;
let tabs = [];
unselectedModules.forEach(module => {
const tab = {
id: module.type,
title: module.type,
description: "Choose the one you prefer (can be changed later)",
options: module.otions.map(option => { return { label: undefined, value: option } } )
};
tabs.push(tab);
});
const results = await wizard(tabs)
}
function getModulesSettings() {
const modulesSettings = {};
$(".modules-dialog .module-options").each((index, select) => {
const moduleType = $(select).data("moduleType");
const moduleName = $(select).val();
modulesSettings[moduleType] = moduleName;
});
return modulesSettings;
}