Merge branch 'bug/guardar_presupuesto' into 'main'

Cambiado esquema de deteccion, ahora no se lleva memoria, solo ser cosciente...

See merge request jjimenez/safekat!217
This commit is contained in:
Ignacio Martinez Navajas
2024-04-17 13:14:47 +00:00
8 changed files with 55 additions and 61 deletions

View File

@ -22,7 +22,7 @@ if (session()->has('error')) {
</div> </div>
<?= $this->section('additionalInlineJs') ?> <?= $this->section('globalJsFunctions') ?>
function popAlert(message, alertClass, alertIcon, containerId = 'sk-alert'){ function popAlert(message, alertClass, alertIcon, containerId = 'sk-alert'){
var htmlString = ` var htmlString = `

View File

@ -220,6 +220,7 @@ $(document).on('click', '.delete-add-row', function(e) {
update_resumen: true, update_resumen: true,
update_tiradas_alternativas: true update_tiradas_alternativas: true
}) })
showBreadCrumbSaveButton(true);
}) })

View File

@ -2,7 +2,6 @@
* Seccion para las funciones generales de la pagina * Seccion para las funciones generales de la pagina
***************************************************************************************/ ***************************************************************************************/
$('.nav-servicios button').on('shown.bs.tab', function(){ $('.nav-servicios button').on('shown.bs.tab', function(){
$("#tableOfServiciosEncuadernacion").DataTable().columns.adjust(); $("#tableOfServiciosEncuadernacion").DataTable().columns.adjust();
$("#tableOfServiciosPreimpresion").DataTable().columns.adjust(); $("#tableOfServiciosPreimpresion").DataTable().columns.adjust();
@ -16,6 +15,7 @@ $('#serv_default').on('click', function(){
get_tarifas_enc('default').then( get_tarifas_enc('default').then(
get_tarifas_manipulado('default') get_tarifas_manipulado('default')
) )
showBreadCrumbSaveButton(true);
}) })
// Delete row // Delete row
@ -73,6 +73,7 @@ $(document).on('click', '.btn-delete-serv', function(e) {
update_tiradas_alternativas: true update_tiradas_alternativas: true
}) })
//updateTotales(false, true, false) //updateTotales(false, true, false)
showBreadCrumbSaveButton(true);
}); });
@ -369,6 +370,8 @@ $('#insertar_serv_acabado').on('click', function(){
popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-acabado-alert'); popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-acabado-alert');
} }
check_serv_acabado_error(); check_serv_acabado_error();
showBreadCrumbSaveButton(true);
}) })
@ -1298,13 +1301,16 @@ function servicioFerro(){
} }
$('#insertar_serv_preimpresion').on('click', function(){ $('#insertar_serv_preimpresion').on('click', function(){
const tarifa_text = $('#add_servicio_preimpresion_list').select2('data')[0].text.trim()
if( $('#add_servicio_preimpresion_list').select2('data')[0].text.trim().length > 0){ let data = $('#add_servicio_preimpresion_list').select2('data');
if($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0) if (data.length > 0) {
get_tarifas_preimpresion($('#add_servicio_preimpresion_list').select2('data')[0].id); const tarifa_text = data[0].text.trim();
else{ if (tarifa_text.length > 0) {
popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert') if ($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0)
get_tarifas_preimpresion(data[0].id);
else {
popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert');
}
} }
} }
check_serv_preimpresion_error() check_serv_preimpresion_error()

View File

@ -61,6 +61,7 @@ $('#add_tirada_alt').on('click', function () {
const tirada_alt = parseInt($('#tirada_alt').val()); const tirada_alt = parseInt($('#tirada_alt').val());
add_tirada_alternativa(tirada_alt); add_tirada_alternativa(tirada_alt);
showBreadCrumbSaveButton(true);
}); });
@ -274,6 +275,7 @@ $(document).on('click', '.btn-delete-tirada', function (e) {
tableTiradas.row(row) tableTiradas.row(row)
.remove() .remove()
.draw(); .draw();
showBreadCrumbSaveButton(true);
}) })

View File

@ -214,65 +214,49 @@
<!-------------------------------------------------------> <!------------------------------------------------------->
<?= $this->section("additionalInlineJs") ?> <?= $this->section("additionalInlineJs") ?>
// Obtener todos los campos de entrada del formulario $(window).on('load', function() {
const formInputs = document.querySelectorAll('input, textarea, select');
//console.log(formInputs) // Detectar cambios en inputs de texto
$('input[type="text"]').on('input', function() {
// Crear un objeto para almacenar los valores originales showBreadCrumbSaveButton(true);
const originalValues = {};
// Guardar los valores originales
formInputs.forEach(function(input) {
if (input.type === 'checkbox') {
originalValues[input.id] = input.checked;
} else {
originalValues[input.id] = input.tagName.toLowerCase() === 'select'
? $(input).val() // jQuery para obtener el valor de un select2
: input.value;
}
}); });
// Detectar cambios en inputs de texto
// Agregar un evento de cambio a cada campo de entrada $('input[type="number"]').on('input', function() {
formInputs.forEach(function(input) { showBreadCrumbSaveButton(true);
if (input.tagName.toLowerCase() === 'select' && $(input).data('select2')) {
// Para elementos select2
$(input).on('change', function() {
verificarCambios();
});
} else {
// Para otros tipos de campos
input.addEventListener('input', function() {
verificarCambios();
});
}
}); });
function verificarCambios() { // Detectar cambios en select
// Verificar si hay cambios con respecto a los originales $('select').change(function() {
var cambiosDetectados = Array.from(formInputs).some(function(input) { showBreadCrumbSaveButton(true);
return input.type === 'checkbox' });
? input.checked !== originalValues[input.id]
: input.tagName.toLowerCase() === 'select'
? $(input).val() !== originalValues[input.id]
: input.value !== originalValues[input.id];
});
// Mostrar alerta solo si hay cambios // Detectar cambios en checkboxes
if (cambiosDetectados) { $('input[type="checkbox"]').change(function() {
showBreadCrumbSaveButton(true); showBreadCrumbSaveButton(true);
}else{ });
showBreadCrumbSaveButton(false);
}
}
$('#bc-save').on( "click", function() { // Detectar cambios en textareas
showBreadCrumbSaveButton(false); $('textarea').on('input', function() {
$('#saveForm').click() showBreadCrumbSaveButton(true);
} ); });
// Detectar cambios en otros tipos de input
$('input[type="radio"]').change(function() {
showBreadCrumbSaveButton(true);
});
// Detectar cambios en otros tipos de input
$('input:not([type])').on('input', function() {
showBreadCrumbSaveButton(true);
});
});
$('#bc-save').on( "click", function() {
showBreadCrumbSaveButton(false);
$('#saveForm').click()
} );
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -39,7 +39,7 @@
</div> </div>
<?php } ?> <?php } ?>
<?= $this->section('additionalInlineJs') ?> <?= $this->section('globalJsFunctions') ?>
function showBreadCrumbSaveButton(showIt = false){ function showBreadCrumbSaveButton(showIt = false){
if(showIt === true){ if(showIt === true){

View File

@ -346,6 +346,7 @@ if (isset($global_js_variables)) {
<script type="text/javascript"> <script type="text/javascript">
<?= $this->renderSection('globalJsFunctions') ?>
var theTable; var theTable;
var <?=csrf_token() ?? 'token'?>v = '<?= csrf_hash() ?>'; var <?=csrf_token() ?? 'token'?>v = '<?= csrf_hash() ?>';