diff --git a/Js/fonctions.js b/Js/fonctions.js index ab1afee9..834fcdc9 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -47493,19 +47493,15 @@ function chargerFichiersTable() { type: 'post', data: { id: idTable }, success: function(data) { - // Fermeture de tout formulaire d'édition ouvert - if (typeof fermeFormulaire === "function") fermeFormulaire(); - - // Injection des données cachées (nom du fichier lister, etc.) - $('#div_fichiers_table').html(data); - - // 4. Lancement de l'affichage du formulaire et de la liste - // On récupère le nom du fichier depuis le champ caché injecté dans 'data' - const fichierLister = $('#fichier_lister').val(); - - // Affiche le formulaire de saisie (à gauche) et la liste (à droite) - afficheDonneesTableChoisie(fichierLister); - }, + // 1. On ferme le formulaire précédent (ce qui affiche le bouton AJOUTER) + fermeFormulaire(); + + // 2. On injecte les fichiers de configuration (hidden inputs) + $('#div_fichiers_table').html(data); + + // 3. On affiche les données + afficheDonneesTableChoisie($('#fichier_lister').val()); + }, error: function(xhr) { toastr.error((codeLangue === "en_US") ? "Error accessing table files" : "Erreur d'accès aux fichiers de la table"); console.error(xhr.responseText); @@ -47568,182 +47564,96 @@ function afficheDonneesTableChoisie(fichier) { } // Gère l'affichage des boutons en entête des formulaires -function afficheBoutons($idData){ - - - var div = $('#div_maj_table').children().length; - var codeLangue = $("#codeLangue").val(); - - - if($idData == 0){ - donnees = ''; - }else{ - donnees = 'id='+$idData; - - - if(codeLangue=="en_US") - { - $('#btn-action').text('Save'); - } - else - { - $('#btn-action').text('Enregistrer'); - } - } +function afficheBoutons($idData) { + const racineWeb = $("#racineWeb").val(); + const codeLangue = $("#codeLangue").val(); + const donnees = ($idData == 0) ? '' : { id: $idData }; - $.ajax({ - url: $("#racineWeb").val()+"Ajaxentete/", - type : 'post', - data: donnees, - error: function(errorData){ - alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - - - $('#div_entete_table').html(data); - - if(($('#btn-action').text() == 'Ajouter' || $('#btn-action').text() == 'Add') && div == 0){ - $('#btn-fermer').hide(); - }else{ - $('#btn-fermer').show(); - if(codeLangue=="en_US") - { - $('#btn-action').text('Save'); - } - else - { - $('#btn-action').text('Enregistrer'); - } - } - }, - complete: function(){ - - } - }); - + $.ajax({ + url: racineWeb + "Ajaxentete/", + type: 'post', + data: donnees, + success: function(data) { + // On injecte les boutons dans l'emplacement dédié + $('#div_entete_table').html(data); + + // Si on est en mode "Initial" ($idData == 0) + if($idData == 0) { + $('#btn-action').html(' ' + (codeLangue == "en_US" ? "Add" : "Ajouter")); + $('#btn-fermer').hide(); + } else { + $('#btn-fermer').show(); + $('#btn-action').html(' ' + (codeLangue == "en_US" ? "Save" : "Enregistrer")); + } + } + }); } + // Ferme le formulaire affiché -function fermeFormulaire(){ - $('#div_maj_table').empty(); - - afficheBoutons(0); - +function fermeFormulaire() { + $('#div_maj_table').empty(); + // On repasse l'ID à 0 pour réafficher le bouton "Ajouter" + afficheBoutons(0); } // Affiche le formulaire d'ajout de données -function formAjoutTableRef(){ - - var codeLangue = $("#codeLangue").val(); - var fichier_ajouter = $('#fichier_ajouter').val(), - btn = $('#btn-action').text(); - - //alert(fichier_ajouter); - //return; - if(fichier_ajouter != '' && fichier_ajouter != undefined){ - if(btn == 'Ajouter' || btn == 'Add'){ - donnees = ''; - $('#btn-fermer').show(); - - if(codeLangue=="en_US") - { - $('#btn-action').text('Save'); - } - else - { - $('#btn-action').text('Enregistrer'); - } +function formAjoutTableRef() { + const codeLangue = $("#codeLangue").val(); + const $btn = $('#btn-action'); + const libelleBtn = $btn.text().trim().toLowerCase(); + + // Si le bouton est déjà en mode "Enregistrer/Save", on lance la mise à jour + if (libelleBtn === 'enregistrer' || libelleBtn === 'save') { + update_table(); + return; + } - $.ajax({ - url: fichier_ajouter+"/", - type: 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - - $('#div_maj_table').html(data); - stylechampsRequis(); - $(".datepicker").datepicker(); - $('.selectpicker').selectpicker(); - if(typeof $('#div_maj_table input:first').attr('type') == 'string'){ - $('#div_maj_table input:first').focus(); - }else{ - $('#div_maj_table select:first').focus(); - } - }, - complete: function(){ - } - }); - }else{ - update_table(); - } - }else{ - var nomForm = $('#nomForm').val(); - - if(nomForm == 'frmbaremegarant'){ - fichier_ajouter = 'Ajaxajouterbaremeaccessoiregarant'; - }else if(nomForm == 'frmtrancheaccessoire'){ - fichier_ajouter = 'Ajaxtbajouterbaremeaccessoireavenant'; - }else if(nomForm == 'frmtauxAjustement'){ - fichier_ajouter = 'Ajaxtbajoutertableauajustement'; - }else if(nomForm == 'frmtauxAjustementgarant'){ - fichier_ajouter = 'Ajaxtbajoutertableauajustementgarant'; - }else if(nomForm == 'frmacteconsultation'){ - fichier_ajouter = 'Ajaxtbajouteracteconsultation'; - } - - - if(btn == 'Ajouter' || btn == 'Add'){ - donnees = ''; - if(nomForm == 'frmtauxAjustementgarant'){ - donnees = 'codeGcAssureur='+$("#codeGcAssureur").val(); - } - - $('#btn-fermer').show(); - - if(codeLangue=="en_US") - { - $('#btn-action').text('Save'); - } - else - { - $('#btn-action').text('Enregistrer'); - } - - $.ajax({ - url: fichier_ajouter+"/", - type: 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - $('#div_maj_table').html(data); - $(".datepicker").datepicker(); - $(".selectpicker").selectpicker(); - stylechampsRequis(); - if(typeof $('#div_maj_table input:first').attr('type') == 'string'){ - $('#div_maj_table input:first').focus(); - }else{ - $('#div_maj_table select:first').focus(); - } - - }, - complete: function(){ - } - }); - }else{ - update_table(); - } - - } + // Détermination du fichier + let fichier_ajouter = $('#fichier_ajouter').val(); + if (!fichier_ajouter) { + const mapping = { + 'frmbaremegarant': 'Ajaxajouterbaremeaccessoiregarant', + 'frmtrancheaccessoire': 'Ajaxtbajouterbaremeaccessoireavenant', + 'frmtauxAjustement': 'Ajaxtbajoutertableauajustement', + 'frmtauxAjustementgarant': 'Ajaxtbajoutertableauajustementgarant', + 'frmacteconsultation': 'Ajaxtbajouteracteconsultation' + }; + fichier_ajouter = mapping[$('#nomForm').val()]; + } + if (!fichier_ajouter) { + toastr.warning("Action non configurée pour cette table."); + return; + } + + // Préparation des données spécifiques + let donnees = {}; + if ($('#nomForm').val() == 'frmtauxAjustementgarant') { + donnees.codeGcAssureur = $("#codeGcAssureur").val(); + } + + // UI : Passage en mode enregistrement + $('#btn-fermer').show(); + $btn.html(' ' + (codeLangue == "en_US" ? "Save" : "Enregistrer")); + + $.ajax({ + url: $("#racineWeb").val() + fichier_ajouter + "/", + type: 'post', + data: donnees, + success: function(data) { + $('#div_maj_table').html(data); + + // Init composants + $(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' }); + $(".selectpicker").selectpicker('refresh'); + + // Focus + setTimeout(() => { + $('#div_maj_table input:not([type="hidden"]), #div_maj_table select').first().focus(); + }, 100); + } + }); } // Filtrer la liste des villes par pays @@ -47837,7 +47747,6 @@ function formModifTableRef($idData){ { $('#btn-action').text('Enregistrer'); } - } donnees = 'id='+$idData; diff --git a/Vue/Ajaxentete/index.php b/Vue/Ajaxentete/index.php index 8ad1b549..40c59778 100755 --- a/Vue/Ajaxentete/index.php +++ b/Vue/Ajaxentete/index.php @@ -1,22 +1,8 @@ - - - - - - - - - - - - - -
- - - - - - - -
\ No newline at end of file +
+ + +
\ No newline at end of file