EVOLUTION-MANAGER
Edit File: crear-usuario.js
document.getElementById('myformulario').addEventListener('submit', function (e) { var formulario = document.getElementById('myformulario'); e.preventDefault(); var name = document.getElementById("name").value; var cedula = document.getElementById("cedula").value; var email = document.getElementById("email").value; var password = document.getElementById("password").value; var password_confirmation = document.getElementById("password_confirmation"); // if (name != "" && cedula != "" && email != "" && password != "" && password_confirmation != "") { if (isValidCI(cedula)) { if (document.getElementById("Informativo-opc") || document.getElementById("Servicios-opc") || document.getElementById("Transparencia-opc")) { var aux = true; if (document.getElementById("Informativo-opc")) { var id = document.getElementById("Informativo-opc").value; if (!validateForm(id)) { aux = false; var alertDiv = document.createElement('div'); alertDiv.className = 'alert alert-danger'; alertDiv.innerHTML = 'Debe seleccionar al menos una función!'; document.getElementById('dynamic-content').appendChild(alertDiv); } } if (document.getElementById("Servicios-opc")) { var id = document.getElementById("Servicios-opc").value; if (!validateForm(id)) { aux = false; var alertDiv = document.createElement('div'); alertDiv.className = 'alert alert-danger'; alertDiv.innerHTML = 'Debe seleccionar al menos una función!'; document.getElementById('dynamic-content').appendChild(alertDiv); } } if (document.getElementById("Transparencia-opc")) { var id = document.getElementById("Transparencia-opc").value; if (!validateForm(id)) { aux = false; var alertDiv = document.createElement('div'); alertDiv.className = 'alert alert-danger'; alertDiv.innerHTML = 'Debe seleccionar al menos una función!'; document.getElementById('dynamic-content').appendChild(alertDiv); } } if (aux) formulario.submit(); } else { var alertDiv = document.createElement('div'); alertDiv.className = 'alert alert-danger'; alertDiv.innerHTML = 'Debe asignar al menos un privilegio!'; document.getElementById('dynamic-content').appendChild(alertDiv); } }else{ Swal.fire({ position: "top-end", icon: "error", title: "El número de cedula es incorrecto", showConfirmButton: false, timer: 2500 }); } } else { Swal.fire({ position: "top-end", icon: "error", title: "Llene todos los campos solicitados", showConfirmButton: false, timer: 2500 }); } }); function validateForm(id) { var checkboxes = document.querySelectorAll('input[type="checkbox"][name="' + id + '-options[]"]'); var checked = Array.prototype.slice.call(checkboxes).some(x => x.checked); if (!checked) { return false; } return true; } function agregar_privilegios() { var select = document.getElementById("seleccion-actual"); var optionValue = select.value; if (optionValue != "") { for (var i = 0; i < select.options.length; i++) { if (select.options[i].value === optionValue) { select.remove(i); break; } } // Datos para las opciones const options = [ { id: optionValue + '-opc1', value: 'Crear', label: 'Crear' }, { id: optionValue + '-opc2', value: 'Editar', label: 'Editar' }, { id: optionValue + '-opc3', value: 'Eliminar', label: 'Eliminar' } ]; // Contenedor principal const container = document.createElement('div'); container.className = 'contenedor-opc-add'; container.id = optionValue; // Contenedor superior con título y botón de quitar const contenedorQuitarOpc = document.createElement('div'); contenedorQuitarOpc.className = 'contenedor-quitar-opc'; const title = document.createElement('p'); title.textContent = 'Privilegios de administrador: ' + optionValue; const hiddenInput = document.createElement('input'); hiddenInput.type = 'text'; hiddenInput.value = optionValue; hiddenInput.name = optionValue; hiddenInput.id = optionValue + '-opc'; hiddenInput.hidden = true; const rightDiv = document.createElement('div'); rightDiv.className = 'right'; rightDiv.id = 'borrar-' + optionValue; const closeButton = document.createElement('span'); closeButton.innerHTML = '×'; rightDiv.appendChild(closeButton); contenedorQuitarOpc.appendChild(title); contenedorQuitarOpc.appendChild(hiddenInput); contenedorQuitarOpc.appendChild(rightDiv); container.appendChild(contenedorQuitarOpc); // Contenedor para los checkboxes const opcAlteracionesPriv = document.createElement('div'); opcAlteracionesPriv.className = 'opc-alteraciones-priv'; options.forEach(option => { const label = document.createElement('label'); label.style.color = 'black'; label.style.fontWeight = '700'; label.className = 'checkbox-container'; const checkbox = document.createElement('input'); checkbox.type = 'checkbox'; checkbox.className = 'checkbox-styles'; checkbox.id = option.id; checkbox.name = optionValue + '-options[]'; checkbox.value = option.value; label.appendChild(checkbox); label.appendChild(document.createTextNode(option.label)); opcAlteracionesPriv.appendChild(label); }); container.appendChild(opcAlteracionesPriv); // Añadir el contenedor principal al div con id="dynamic-content" document.getElementById('dynamic-content').appendChild(container); var borrar = document.getElementById("borrar-" + optionValue) borrar.addEventListener("click", () => { var newOption = document.createElement('option'); newOption.value = optionValue; newOption.text = optionValue; select.appendChild(newOption); var element = document.getElementById(optionValue); if (element) { element.parentNode.removeChild(element); } }); Swal.fire({ position: "top-end", icon: "success", title: "Privilegio agregado", showConfirmButton: false, timer: 1500 }); } } //Validar que la cédula sea correcta function isValidCI(ci) { var isNumeric = true; var total = 0, individual; for (var position = 0; position < 10; position++) { // Obtiene cada posición del número de cédula // Se convierte a string en caso de que 'ci' sea un valor numérico individual = ci.toString().substring(position, position + 1) if (isNaN(individual)) { console.log(ci, position, individual, isNaN(individual)) isNumeric = false; break; } else { // Si la posición es menor a 9 if (position < 9) { // Si la posición es par, osea 0, 2, 4, 6, 8. if (position % 2 == 0) { // Si el número individual de la cédula es mayor a 5 if (parseInt(individual) * 2 > 9) { // Se duplica el valor, se obtiene la parte decimal y se aumenta uno // y se lo suma al total total += 1 + ((parseInt(individual) * 2) % 10); } else { // Si el número individual de la cédula es menor que 5 solo se lo duplica // y se lo suma al total total += parseInt(individual) * 2; } // Si la posición es impar (1, 3, 5, 7) } else { // Se suma el número individual de la cédula al total total += parseInt(individual); } } } } if ((total % 10) != 0) { total = (total - (total % 10) + 10) - total; } else { total = 0; } if (isNumeric) { // La cédula debe contener al menos 10 dígitos if (ci.toString().length != 10) return false; // El número de cédula no debe ser cero if (parseInt(ci, 10) == 0) return false; // El total debe ser igual al último número de la cédula if (total != parseInt(individual)) return false; return true; } // Si no es un número return false; }