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/_datosPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoItems.php index 2745c180..9aa9fefe 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoItems.php @@ -173,4 +173,4 @@ - \ No newline at end of file + 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 71c11fdb..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 @@ -214,65 +214,49 @@ section("additionalInlineJs") ?> - // Obtener todos los campos de entrada del formulario - const formInputs = document.querySelectorAll('input, textarea, select'); +$(window).on('load', function() { - //console.log(formInputs) - - // Crear un objeto para almacenar los valores originales - 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 + $('input[type="text"]').on('input', function() { + showBreadCrumbSaveButton(true); }); - - // Agregar un evento de cambio a cada campo de entrada - formInputs.forEach(function(input) { - 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(); - }); - } + // Detectar cambios en inputs de texto + $('input[type="number"]').on('input', function() { + showBreadCrumbSaveButton(true); }); - function verificarCambios() { - // Verificar si hay cambios con respecto a los originales - var cambiosDetectados = Array.from(formInputs).some(function(input) { - return input.type === 'checkbox' - ? input.checked !== originalValues[input.id] - : input.tagName.toLowerCase() === 'select' - ? $(input).val() !== originalValues[input.id] - : input.value !== originalValues[input.id]; - }); + // Detectar cambios en select + $('select').change(function() { + showBreadCrumbSaveButton(true); + }); - // Mostrar alerta solo si hay cambios - if (cambiosDetectados) { - showBreadCrumbSaveButton(true); - }else{ - showBreadCrumbSaveButton(false); - } - } + // Detectar cambios en checkboxes + $('input[type="checkbox"]').change(function() { + showBreadCrumbSaveButton(true); + }); - $('#bc-save').on( "click", function() { - showBreadCrumbSaveButton(false); - $('#saveForm').click() - } ); + // Detectar cambios en textareas + $('textarea').on('input', function() { + 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() +} ); 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)) {