function openManagementOptions() { $(".main-container").empty(); const actions = [ { label: getLocalizedText("hire_new_employee"), id: "hire" }, { label: getLocalizedText("manage_employees"), id: "manage_employees" }, ] const managementPage = $(`

Dealership

`); managementPage.find(".btn-close").click(function () { display(false); }); $(".main-container").append(managementPage) actions.forEach(action => { const div = $(`
  • ${action.label}

  • `); div.click(function () { $.post(`https://${resName}/employeeMenuAction`, JSON.stringify({ id: action.id, dealershipId: CURRENT_DEALERSHIP_ID })); }); $(".employee-management-list").append(div); }); display(true); } // MANAGEMENT PAGE function showManagementPage(employeesData) { let selectedEmployee = undefined; $(".main-container").empty(); const managementPage = $(`

    ${getLocalizedText("menu:employees_management")}

    ${getLocalizedText("menu:employees")}

    ${employeesData.length} ${getLocalizedText("menu:members")}

    N/A

    ${getLocalizedText("menu:manage_permissions")}

    ${getLocalizedText("menu:fire")}

    ${getLocalizedText("menu:submit")}

    `); managementPage.find(".btn-close").click(function () { display(false); }); $(".main-container").append(managementPage) employeesData.forEach(employeeData => { const { label } = employeeData; const div = $(`
  • ${label}

    Details

  • `); div.click(function () { selectedEmployee = employeeData; $(".employee-element").removeClass("selected"); $(this).addClass("selected"); $("#employee-selected p").html(label) }); $(".employee-management-list").append(div); }); $(".employee-element").first().click(); $(".employee-action").click(async function () { const action = $(this).attr("id"); switch (action) { case "employee-manage": { showPermissionsPage(selectedEmployee); break; } case "employee-fire": { await $.post(`https://${resName}/fireEmployee`, JSON.stringify({ dealershipId: CURRENT_DEALERSHIP_ID, employeeIdentifier: selectedEmployee.identifier })) display(false); break; } case "employee-submit": { display(false); break; } } }); display(true); } function openHireEmployee(closePlayers) { let selectedEmployee = undefined; $(".main-container").empty(); const managementPage = $(`

    ${getLocalizedText("menu:employees_management")}

    ${getLocalizedText("menu:employees")}

    ${closePlayers.length} ${getLocalizedText("menu:nearby")}

    N/A

    ${getLocalizedText("menu:hire")}

    `); managementPage.find(".btn-close").click(function () { display(false); }); $(".main-container").append(managementPage) closePlayers.forEach(employeeData => { const { label } = employeeData; const div = $(`
  • ${label}

    Details

  • `); div.click(function () { selectedEmployee = employeeData; $(".employee-element").removeClass("selected"); $(this).addClass("selected"); $("#employee-selected p").html(label) }); $(".employee-management-list").append(div); }); $(".employee-element").first().click(); $(".employee-action").click(async function () { const action = $(this).attr("id"); switch (action) { case "hire": { await $.post(`https://${resName}/hireEmployee`, JSON.stringify({ dealershipId: CURRENT_DEALERSHIP_ID, identifier: selectedEmployee.identifier })) break; } } }); display(true); } // Permissions Page function showPermissionsPage(employeeData) { const { identifier, permissions, label } = employeeData; $(".management-page").hide(); const div = $(`

    ${label}

    Submit

    `); $(".main-container").append(div); const ALL_PERMISSIONS = [ { permissionId: "purchaseVehicleForStock", label: getLocalizedText("menu:purchaseVehicleForStock") }, { permissionId: "displayVehicleFromStock", label: getLocalizedText("menu:displayVehicleFromStock") }, { permissionId: "addMoneyToDealership", label: getLocalizedText("menu:addMoneyToDealership") }, { permissionId: "removeMoneyFromDealership", label: getLocalizedText("menu:removeMoneyFromDealership") }, { permissionId: "sellVehicleFromStock", label: getLocalizedText("menu:sellVehicleFromStock") }, { permissionId: "updatePriceForModel", label: getLocalizedText("menu:updatePriceForModel") }, { permissionId: "manager", label: getLocalizedText("menu:manager") }, ]; ALL_PERMISSIONS.forEach(permissionData => { // Imposta su false se non definito const { permissionId, label } = permissionData; permissions[permissionId] = permissions[permissionId] || false; // Carica e aggiungi l'elemento dell'autorizzazione alla lista $(".permissions-list").append(`
  • ${label}

  • `); }); updateStates(); $(".permissions-list").on("click", ".permission-switches", function () { let state = !$(this).closest("li").data("state"); $(this).closest("li").data("state", state); updateStates(); }); div.find("#save-permissions").click(async function () { const newPermissions = {}; $(".permissions-element").each(function () { const permissionId = $(this).data("permission"); const state = $(this).data("state"); newPermissions[permissionId] = state; }); await $.post(`https://${resName}/updateEmployeePermissions`, JSON.stringify({ employeeIdentifier: identifier, permissions: newPermissions,dealershipId: CURRENT_DEALERSHIP_ID })); $(".management-page").show(); $(".permissions-page").remove(); }); function updateStates() { $(".permissions-element").each(function () { const state = $(this).data("state"); $(this).find(".permission-switch.switch-on").toggleClass("active", state); $(this).find(".permission-switch.switch-off").toggleClass("active", !state); }); } }