function validarForm(id_modal){ if(id_modal.indexOf("#") === -1){ id_modal = "#" + id_modal; } if($(id_modal + " .valid").length > 0 && $(id_modal + " .error").length === 0){ console.log("valido"); return true; }else{ console.log("valido"); return false; } } function getRandomInt(min, max){ return Math.floor(Math.random() * (max - min + 1)) + min; } function modalRegistro(){ $.ajax({ url: '/modal/registro.php', // Asegúrate de que la ruta sea correcta method: 'GET', success: function(formHtml){ // Mostrar el formulario en un modal con jQuery Confirm $.confirm({ title: 'Registro de Usuario', content: formHtml, buttons: { formSubmit: { text: 'Registrarse', btnClass: 'btn-blue', action: function(){ var name = this.$content.find('.name').val(); var email = this.$content.find('.email').val(); var phone = this.$content.find('.phone').val(); var password = this.$content.find('.password').val(); if(!name || !email || !phone || !password){ $.alert('Por favor complete todos los campos'); return false; } // Aquí agregaría el código para procesar el formulario (ej. AJAX) $.alert('Registro completado con éxito: ' + name); } }, cancelar: function(){ // cierra el modal }, }, onContentReady: function(){ // Vincular eventos de formulario var jc = this; this.$content.find('form').on('submit', function(e){ e.preventDefault(); jc.$$formSubmit.trigger('click'); // referencia al botón y clic en él }); } }); }, error: function(){ $.alert('Error al cargar el formulario de registro'); } }); } function modalNuevoMovimiento(){ $.ajax({ url: '/modal/nuevo-movimiento.php', // Asegúrate de que la ruta sea correcta method: 'GET', success: function(formHtml){ // Mostrar el formulario en un modal con jQuery Confirm $.confirm({ title: 'Nuevo Movimiento', content: formHtml, buttons: { formSubmit: { text: 'Guardar movimiento', btnClass: 'btn-blue', action: function(){ var cuenta = this.$content.find('.cuenta').val(); var divisa = this.$content.find('.divisa').val(); var fecha = this.$content.find('.fecha').val(); var monto = this.$content.find('.monto').val(); var tipoMovimiento = this.$content.find('.tipoMovimiento').val(); var comentario = this.$content.find('.comentario').val(); if(!cuenta || !divisa || !fecha || !monto || !tipoMovimiento){ $.alert('Por favor complete todos los campos obligatorios'); return false; } // Aquí agregaría el código para procesar el formulario (ej. AJAX) $.alert('Movimiento guardado con éxito'); } }, cancelar: function(){ // cierra el modal }, }, onContentReady: function(){ // Vincular eventos de formulario var jc = this; // Inicializar el datepicker this.$content.find('.fecha').datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: '2000:2050' }); this.$content.find('form').on('submit', function(e){ e.preventDefault(); jc.$$formSubmit.trigger('click'); // referencia al botón y clic en él }); } }); }, error: function(){ $.alert('Error al cargar el formulario de nuevo movimiento'); } }); } function modalCategorizarEntrada($id_movimiento){ let id_modal = "#modal_" + getRandomInt(10000, 99999); $.confirm({ animationSpeed: 200, title: 'Categorizar gasto para ', content: "url:/modal/categorizar_gasto.php", type: "red", typeAnimated: true, boxWidth: "", useBootstrap: true, columnClass: 'col-12 col-md-8 col-lg-6', buttons: { boton1: { text: 'Guardar categoría para este comercio', btnClass: 'btn-black', action: function(){ if(validarForm(id_modal)){ postearModal(id_modal, true); }else{ return false; } } }, boton2: { text: 'Cancelar', btnClass: 'btn-default', action: function(){ void (0); } } }, onContentReady: function(){ var self = this; setTimeout(function(){ self.setContentAppend(' '); }, 500); }, contentLoaded: function(){ var self = this; setTimeout(function(){ self.setContentAppend(' '); }, 500); } }); return false; } function modalCategorizarSalida($id_movimiento){ let id_modal = "#modal_" + getRandomInt(10000, 99999); $.confirm({ animationSpeed: 200, title: 'Categorizar gasto para ', content: "url:/modal/categorizar_gasto.php", type: "red", typeAnimated: true, boxWidth: "", useBootstrap: true, columnClass: 'col-12 col-md-8 col-lg-6', buttons: { boton1: { text: 'Guardar categoría para este comercio', btnClass: 'btn-black', action: function(){ if(validarForm(id_modal)){ postearModal(id_modal, true); }else{ return false; } } }, boton2: { text: 'Cancelar', btnClass: 'btn-default', action: function(){ void (0); } } }, onContentReady: function(){ var self = this; setTimeout(function(){ self.setContentAppend(' '); }, 500); }, contentLoaded: function(){ var self = this; setTimeout(function(){ self.setContentAppend(' '); }, 500); } }); return false; }