From d6e2beae49e8846755b1fdca1c5f68c7e5d899ab Mon Sep 17 00:00:00 2001 From: nicod_ <nicod@lerebooteux.fr> Date: Wed, 24 May 2023 16:41:22 +0200 Subject: [PATCH] =?UTF-8?q?Refactoring=20pour=20=C3=A9dition=20en=20ajax?= =?UTF-8?q?=20(ajout/modification)=20qui=20fonctionne=20aussi=20sans=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/editer_block.html | 9 ++-- formulaires/editer_block.php | 9 ++-- javascript/gestion_listes_blocks.js.html | 33 ++++++-------- lang/block_fr.php | 1 + prive/squelettes/inclure/ajouter_block.html | 3 -- prive/squelettes/inclure/block.html | 48 +++++++++++++++++++++ prive/squelettes/inclure/blocks_objet.html | 45 +------------------ 7 files changed, 73 insertions(+), 75 deletions(-) delete mode 100644 prive/squelettes/inclure/ajouter_block.html create mode 100644 prive/squelettes/inclure/block.html diff --git a/formulaires/editer_block.html b/formulaires/editer_block.html index 36958b2..e2b5b57 100644 --- a/formulaires/editer_block.html +++ b/formulaires/editer_block.html @@ -2,11 +2,14 @@ [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] - <form method='post' action='[(#ENV{action}|ancre_url{[formulaire_#ENV{form}-(#ENV{id,nouveau})]})]' enctype='multipart/form-data'><div> + <form method='post' action='[(#ENV{action}|ancre_url{block_#ENV{id_block,new}})]' enctype='multipart/form-data'><div> #ACTION_FORMULAIRE{#ENV{action}} - [(#ENV{include}|et{#ENV{id_blocktype}|non}) - <p class="titre_ajouter" [style="background-image:url\((#CHEMIN_IMAGE{block-xx.svg})\);"]><:block:texte_ajouter_block:/></p> + [(#ENV{include}|oui) + <p class="titre_ajouter" [style="background-image:url\((#CHEMIN_IMAGE{block-xx.svg})\);"]> + [(#ENV{id_block}|intval|?{<:block:texte_modifier_block:/>,<:block:texte_ajouter_block:/>})] + [(#ENV{id_blocktype}|oui) : #INFO_TITRE{blocktype,#ENV{id_blocktype}} ] + </p> <span class="toggle_box_link" style="display:none;"> <button type="button" class="btn btn_mini"><:block:texte_ajouter_block:/></button> </span> diff --git a/formulaires/editer_block.php b/formulaires/editer_block.php index 2ae4134..e148310 100644 --- a/formulaires/editer_block.php +++ b/formulaires/editer_block.php @@ -243,15 +243,14 @@ function formulaires_editer_block_traiter_dist($id_block = 'new', $objet = null, objet_instituer('block', $id_block, ['statut' => 'publie']); } - if ($include && isset($retours['redirect'])) { - $retours['redirect'] = ancre_url($retours['redirect'], 'block' . $id_block); + if (isset($retours['redirect'])) { + $retours['redirect'] = parametre_url($retours['redirect'],'id_blocktype',''); + $retours['redirect'] = ancre_url($retours['redirect'], 'block_' . $id_block); } } } - if ($retour && (_request('ajouter') || _request('annuler'))) { - $retours['redirect'] = $retour; - } + if (_request('annuler')) { $retours['redirect'] = parametre_url($retour,'id_blocktype',''); } diff --git a/javascript/gestion_listes_blocks.js.html b/javascript/gestion_listes_blocks.js.html index e1b129e..7139a4c 100644 --- a/javascript/gestion_listes_blocks.js.html +++ b/javascript/gestion_listes_blocks.js.html @@ -84,31 +84,22 @@ if (window.jQuery) { $(function() { - // édition en place des blocs - $('.objet_blocks .actions .editer_block').on('click', function(e) { - e.preventDefault(); - let $parent = $(this).parents('.objetblock').first(); - let $content = $parent.find('.objetblock__content'); - let dest = $(this).attr('href'); - dest = parametre_url(dest, 'var_zajax', 'contenu'); - dest = parametre_url(dest, 'include', '1'); - $.post( - { - url: dest, - cache: false, - } - ).done(function(data) { - $content.html(data).addClass('objetblock__content--edit'); + function gestion_boutons_blocks() { + // édition en place des blocs + $('.objet_blocks .actions .editer_block').on('click', function(e) { + e.preventDefault(); + var id_block = $(this).data('id_block'); + ajaxReload('block_' + id_block, {args: {edit_bloc: 1}}); }); - }); - // boutons "Annuler" - function annuler_ajouter_block() { + // boutons "Annuler" $('.formulaire_editer_block button[name="annuler"]').on('click', function(e) { e.preventDefault(); - ajaxReload('ajouter_block'); + var id_block = $(this).data('id_block'); + ajaxReload('block_'+id_block); }); } - annuler_ajouter_block(); - onAjaxLoad(annuler_ajouter_block); + gestion_boutons_blocks(); + onAjaxLoad(gestion_boutons_blocks); + }); diff --git a/lang/block_fr.php b/lang/block_fr.php index 8efbea0..df38478 100644 --- a/lang/block_fr.php +++ b/lang/block_fr.php @@ -43,6 +43,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = [ // T 'texte_ajouter_block' => 'Ajouter un bloc', + 'texte_modifier_block' => 'Modifier un bloc', 'texte_changer_statut_block' => 'Ce bloc est :', 'texte_creer_associer_block' => 'Créer et associer un bloc', 'texte_definir_comme_traduction_block' => 'Ce bloc est une traduction du bloc numéro :', diff --git a/prive/squelettes/inclure/ajouter_block.html b/prive/squelettes/inclure/ajouter_block.html deleted file mode 100644 index 9c8eb60..0000000 --- a/prive/squelettes/inclure/ajouter_block.html +++ /dev/null @@ -1,3 +0,0 @@ -<div class="ajax ajout_block" id="ajout_block"> -[(#FORMULAIRE_EDITER_BLOCK{#ENV{id_block,new}, #OBJET, #ID_OBJET, #SELF#ajout_block, 1})] -</div> diff --git a/prive/squelettes/inclure/block.html b/prive/squelettes/inclure/block.html new file mode 100644 index 0000000..7e34115 --- /dev/null +++ b/prive/squelettes/inclure/block.html @@ -0,0 +1,48 @@ +<BOUCLE(BLOCKS) {id_block} {statut?} {si #ENV{edit_bloc}|non}> + <div class="objetblock statut_#STATUT" id="block_#ID_BLOCK" data-id="#ID_BLOCK"> + <div class="objetblock__header"> + <h3 class="titrem objetblock__type"> + [(#CHEMIN_IMAGE{block-16.png}|balise_img)] + #INFO_TITRE{blocktypes,#ID_BLOCKTYPE} + </h3> + <div class="actions groupe-btns"> + <div class="btn"> + [(#STATUT|puce_statut{block,#ID_BLOCK})] + </div> + [(#AUTORISER{modifier,block,#ID_BLOCK}) + <div class="btn move deplacer_block"> + [(#CHEMIN_IMAGE{formulaire-action-deplacer-16.png}|balise_img{<:block:icone_deplacer_block:/>})] + </div> + <a href="[(#URL_ECRIRE{block_edit,id_block=#ID_BLOCK}|parametre_url{redirect,#SELF#block#ID_BLOCK})]" + class="btn editer_block" data-id_block="#ID_BLOCK"> + [(#CHEMIN_IMAGE{formulaire-action-configurer-16.png}|balise_img{<:block:icone_modifier_block:/>})] + </a> + ] + <!-- + [(#AUTORISER{creer,block,#ID_BLOCK}) + <button type="submit" class="submit noscroll dupliquer_saisie" name="dupliquer_block" value="#ID_BLOCK"> + [(#CHEMIN_IMAGE{formulaire-action-dupliquer-16.png}|balise_img{<:saisies:construire_action_dupliquer:/>})] + </button> + ] + --> + + [(#AUTORISER{supprimer,block,#ID_BLOCK}) + <a href="#URL_ACTION_AUTEUR{supprimer_block, #ID_BLOCK, #SELF}" class="ajax btn noscroll" onclick="javascript:return confirm('<:block:confirmer_supprimer_block:/>');"> + [(#CHEMIN_IMAGE{formulaire-action-supprimer-16.png}|balise_img{<:block:supprimer_block:/>})] + </a> + ] + </div> + </div> + + <div class="objetblock__content"[ id="(#ANCRE)"]> + #GENERER_BLOCK + </div> + + </div> +</BOUCLE> + +[(#ENV{edit_bloc}|oui) +<div class="ajax ajout_block" id="block_#ENV{id_block,new}"> + [(#FORMULAIRE_EDITER_BLOCK{#ENV{id_block,new}, #OBJET, #ID_OBJET, #SELF|ancre_url{block_#ENV{id_block,new}}, 1})] +</div> +] diff --git a/prive/squelettes/inclure/blocks_objet.html b/prive/squelettes/inclure/blocks_objet.html index b3ccae8..d3a11bc 100644 --- a/prive/squelettes/inclure/blocks_objet.html +++ b/prive/squelettes/inclure/blocks_objet.html @@ -1,56 +1,15 @@ <B> [<h2>(#GRAND_TOTAL|singulier_ou_pluriel{block:info_1_block,block:info_nb_blocks})</h2>] - <div class="objet_blocks"[ data-lien="(#ENV{objet})/#ENV{id_objet}"]> <div class="sortable"> <BOUCLE(BLOCKS) {objet}{id_objet} {statut?} {par rang_lien}> - <div class="objetblock statut_#STATUT" id="block#ID_BLOCK" data-id="#ID_BLOCK"> - <div class="objetblock__header"> - <h3 class="titrem objetblock__type"> - [(#CHEMIN_IMAGE{block-16.png}|balise_img)] - #INFO_TITRE{blocktypes,#ID_BLOCKTYPE} - </h3> - <div class="actions groupe-btns"> - <div class="btn"> - [(#STATUT|puce_statut{block,#ID_BLOCK})] - </div> - [(#AUTORISER{modifier,block,#ID_BLOCK}) - <div class="btn move deplacer_block"> - [(#CHEMIN_IMAGE{formulaire-action-deplacer-16.png}|balise_img{<:block:icone_deplacer_block:/>})] - </div> - <a href="[(#URL_ECRIRE{block_edit,id_block=#ID_BLOCK}|parametre_url{redirect,#SELF#block#ID_BLOCK})]" - class="btn editer_block" data-id_block="#ID_BLOCK"> - [(#CHEMIN_IMAGE{formulaire-action-configurer-16.png}|balise_img{<:block:icone_modifier_block:/>})] - </a> - ] - <!-- - [(#AUTORISER{creer,block,#ID_BLOCK}) - <button type="submit" class="submit noscroll dupliquer_saisie" name="dupliquer_block" value="#ID_BLOCK"> - [(#CHEMIN_IMAGE{formulaire-action-dupliquer-16.png}|balise_img{<:saisies:construire_action_dupliquer:/>})] - </button> - ] - --> - - [(#AUTORISER{supprimer,block,#ID_BLOCK}) - <a href="#URL_ACTION_AUTEUR{supprimer_block, #ID_BLOCK, #SELF}" class="ajax btn noscroll" onclick="javascript:return confirm('<:block:confirmer_supprimer_block:/>');"> - [(#CHEMIN_IMAGE{formulaire-action-supprimer-16.png}|balise_img{<:block:supprimer_block:/>})] - </a> - ] - </div> - </div> - - <div class="objetblock__content"[ id="(#ANCRE)"]> - #GENERER_BLOCK - </div> - - </div> + <INCLURE{fond=prive/squelettes/inclure/block, id_block, env, ajax=block_#ID_BLOCK}> </BOUCLE> </div> </div> - </B> -<INCLURE{fond=prive/squelettes/inclure/ajouter_block, env, ajax=ajouter_block}> +<INCLURE{fond=prive/squelettes/inclure/block, edit_bloc=1, env, ajax=block_new}> <script type="text/javascript"> /* Gestion du tri des blocks */ -- GitLab