diff --git a/ci4/app/Views/themes/_commonPartialsBs/_alertBoxes.php b/ci4/app/Views/themes/_commonPartialsBs/_alertBoxes.php index 9c195cfb..6f0ddc22 100755 --- a/ci4/app/Views/themes/_commonPartialsBs/_alertBoxes.php +++ b/ci4/app/Views/themes/_commonPartialsBs/_alertBoxes.php @@ -22,7 +22,7 @@ if (session()->has('error')) { -section('additionalInlineJs') ?> +section('globalJsFunctions') ?> function popAlert(message, alertClass, alertIcon, containerId = 'sk-alert'){ var htmlString = ` diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js index 9557bf8c..a7e48a22 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosEnvios.js @@ -220,6 +220,7 @@ $(document).on('click', '.delete-add-row', function(e) { update_resumen: true, update_tiradas_alternativas: true }) + showBreadCrumbSaveButton(true); }) diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js index a8860fa7..c403406c 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosServiciosItems.js @@ -2,7 +2,6 @@ * Seccion para las funciones generales de la pagina ***************************************************************************************/ - $('.nav-servicios button').on('shown.bs.tab', function(){ $("#tableOfServiciosEncuadernacion").DataTable().columns.adjust(); $("#tableOfServiciosPreimpresion").DataTable().columns.adjust(); @@ -16,6 +15,7 @@ $('#serv_default').on('click', function(){ get_tarifas_enc('default').then( get_tarifas_manipulado('default') ) + showBreadCrumbSaveButton(true); }) // Delete row @@ -73,6 +73,7 @@ $(document).on('click', '.btn-delete-serv', function(e) { update_tiradas_alternativas: true }) //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'); } check_serv_acabado_error(); + showBreadCrumbSaveButton(true); + }) @@ -1298,13 +1301,16 @@ function servicioFerro(){ } $('#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){ - if($('#tableOfServiciosPreimpresion tr > td:contains(' + tarifa_text + ')').length == 0) - get_tarifas_preimpresion($('#add_servicio_preimpresion_list').select2('data')[0].id); - else{ - popErrorAlert(window.Presupuestos.errores.error_servicios_duplicados, 'serv-preimpresion-alert') + + let data = $('#add_servicio_preimpresion_list').select2('data'); + if (data.length > 0) { + const tarifa_text = data[0].text.trim(); + if (tarifa_text.length > 0) { + 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() diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_tiradasAlternativasItems.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_tiradasAlternativasItems.js index 5314410f..912bbd85 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_tiradasAlternativasItems.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_tiradasAlternativasItems.js @@ -61,6 +61,7 @@ $('#add_tirada_alt').on('click', function () { const tirada_alt = parseInt($('#tirada_alt').val()); add_tirada_alternativa(tirada_alt); + showBreadCrumbSaveButton(true); }); @@ -274,6 +275,7 @@ $(document).on('click', '.btn-delete-tirada', function (e) { tableTiradas.row(row) .remove() .draw(); + showBreadCrumbSaveButton(true); }) diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php index 2e24d20e..13af1fbd 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php @@ -218,117 +218,45 @@ $(window).on('load', function() { // Detectar cambios en inputs de texto $('input[type="text"]').on('input', function() { - console.log("El campo de texto con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); // Detectar cambios en inputs de texto $('input[type="number"]').on('input', function() { - console.log("El campo de texto con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); // Detectar cambios en select $('select').change(function() { - console.log("El campo select con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); // Detectar cambios en checkboxes $('input[type="checkbox"]').change(function() { - console.log("El checkbox con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); // Detectar cambios en textareas $('textarea').on('input', function() { - console.log("El textarea con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); - // Detectar cambios en otros tipos de input (por ejemplo, radio buttons) + // Detectar cambios en otros tipos de input $('input[type="radio"]').change(function() { - console.log("El radio button con ID '" + $(this).attr('id') + "' ha cambiado."); + showBreadCrumbSaveButton(true); }); - // Detectar cambios en otros tipos de input (por ejemplo, radio buttons) + // Detectar cambios en otros tipos de input $('input:not([type])').on('input', function() { - console.log("El valor de un input sin tipo ha cambiado: " + $(this).val()); + showBreadCrumbSaveButton(true); }); }); - - -/* - - // Obtener todos los campos de entrada del formulario - const formInputs = document.querySelectorAll('input, textarea, select'); - - //console.log(formInputs) - - // Crear un objeto para almacenar los valores originales - const originalValues = {}; - - // Guardar los valores originales - function saveOriginalValues(inputs) { - inputs.forEach(input => { - if (!input.id) return; - - 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; - } - }); - } - - - // Agregar un evento de cambio a cada campo de entrada - function addChangeEvent(inputs) { - inputs.forEach(input => { - if (!input.id) return; - - if (input.tagName.toLowerCase() === 'select' && $(input).data('select2')) { - // Para elementos select2 - $(input).on('change', verificarCambios); - } else { - // Para otros tipos de campos - input.addEventListener('input', verificarCambios); - } - }); - } - - function verificarCambios() { - // Verificar si hay cambios con respecto a los originales - let cambiosDetectados = Array.from(formInputs).some(input => { - if (!input.id) return false; - - return input.type === 'checkbox' - ? input.checked !== originalValues[input.id] - : input.tagName.toLowerCase() === 'select' - ? $(input).val() !== originalValues[input.id] - : input.value !== originalValues[input.id]; - }); - - console.log(cambiosDetectados); - - // Mostrar alerta solo si hay cambios - showBreadCrumbSaveButton(cambiosDetectados); - } - - $('#bc-save').on( "click", function() { - showBreadCrumbSaveButton(false); - $('#saveForm').click() - } ); - - // Llamar a funciones principales - saveOriginalValues(formInputs); - addChangeEvent(formInputs); - -*/ - - $('#bc-save').on( "click", function() { - //showBreadCrumbSaveButton(false); - $('#saveForm').click() - } ); +$('#bc-save').on( "click", function() { + showBreadCrumbSaveButton(false); + $('#saveForm').click() +} ); endSection() ?> diff --git a/ci4/app/Views/themes/backend/vuexy/main/breadcrumbs.php b/ci4/app/Views/themes/backend/vuexy/main/breadcrumbs.php index 99fa8a46..732cac8f 100755 --- a/ci4/app/Views/themes/backend/vuexy/main/breadcrumbs.php +++ b/ci4/app/Views/themes/backend/vuexy/main/breadcrumbs.php @@ -39,7 +39,7 @@ -section('additionalInlineJs') ?> +section('globalJsFunctions') ?> function showBreadCrumbSaveButton(showIt = false){ if(showIt === true){ diff --git a/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php b/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php index ae2649f7..5b9294a5 100755 --- a/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php +++ b/ci4/app/Views/themes/backend/vuexy/main/defaultlayout.php @@ -346,6 +346,7 @@ if (isset($global_js_variables)) {