Feat : ajout d'un paramètre ajaxCallback qui permet d'indiquer une fonction JS appellée en callback de l'ajaxReload à la fin du traiter. Le retour[message_ok] du traiter est maintenant un array encodé en JSon
This commit is contained in:
parent
ae7665ef2f
commit
e44c854b7a
4 changed files with 39 additions and 9 deletions
|
@ -19,6 +19,7 @@
|
|||
- `proteger`
|
||||
- `charger_js_titre` oui par defaut => permet de ne pas charger le js d'ajout de l'input titre
|
||||
- `ajaxReload` le nom d'un bloc ajax à recharger via ajaxReload. dans ce cas, charger_js_titre = non
|
||||
- `ajaxCallback` le nom d'une fonction JS qui sera appellée en callback de l'ajaxReload (/!\ le JS de cette fonction doit être dans le bloc rechargé)
|
||||
- `boutonSubmit` non par défaut (= bouton masqué) => oui permet d'afficher le bouton submit du FORMULAIRE_BIGFORM
|
||||
- `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant
|
||||
|
||||
|
|
|
@ -1,13 +1,36 @@
|
|||
[(#ENV{objet_ok}|oui)
|
||||
<div class="formulaire_spip formulaire_#FORM">
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
|
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||
[(#ENV*{message_ok}|oui)
|
||||
<script>
|
||||
ajaxReload("#ENV*{message_ok}");
|
||||
</script>
|
||||
]
|
||||
[(#ENV*{message_ok}|oui)
|
||||
<script>
|
||||
//ajaxReload("#ENV*{message_ok}");
|
||||
|
||||
var aa = '#ENV*{message_ok}';
|
||||
if (aa) {
|
||||
try {
|
||||
aa = JSON.parse(aa);
|
||||
} catch (e) {
|
||||
// utiliser le catch pour la compat descendante = ENV{message_ok} est une simple string avec le nom du bloc à recharger
|
||||
ajaxReload(aa);
|
||||
}
|
||||
}
|
||||
//console.log(aa);
|
||||
|
||||
if (aa.bloc_ajax !== undefined) {
|
||||
let bb = '';
|
||||
if (aa.callback_ajax !== undefined) {
|
||||
bb = aa.callback_ajax;
|
||||
}
|
||||
ajaxReload(
|
||||
aa.bloc_ajax,
|
||||
{
|
||||
callback: eval(bb)
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
||||
]
|
||||
<form class="form_bigform" id="form_bigform[_(#ENV{objet})][_(#ENV{id_objet})]" name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
|
||||
|
|
|
@ -52,7 +52,6 @@ function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $a
|
|||
}
|
||||
|
||||
function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) {
|
||||
|
||||
$options = [];
|
||||
if (array_key_exists('proteger', $args)) {
|
||||
$options['proteger'] = true;
|
||||
|
@ -82,7 +81,13 @@ function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mo
|
|||
$retour['redirect'] = $args['redirect'];
|
||||
}
|
||||
if (!empty($args['ajaxReload'])) {
|
||||
$retour['message_ok'] = $args['ajaxReload'];
|
||||
//$retour['message_ok'] = $args['ajaxReload'];
|
||||
|
||||
$Tretour = ['bloc_ajax' => $args['ajaxReload']];
|
||||
if (!empty($args['ajaxCallback'])) {
|
||||
$Tretour['callback_ajax'] = $args['ajaxCallback'];
|
||||
}
|
||||
$retour['message_ok'] = json_encode($Tretour);
|
||||
}
|
||||
return $retour;
|
||||
}
|
||||
|
|
|
@ -87,8 +87,10 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
|
|||
autoriser_exception('associerdocuments', $type, $id_objet);
|
||||
$autorisation_temp = true;
|
||||
}
|
||||
|
||||
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
||||
$Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode);
|
||||
|
||||
if ($autorisation_temp) {
|
||||
autoriser_exception('associerdocuments', $type, $id_objet, false);
|
||||
}
|
||||
|
@ -106,7 +108,6 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
|
|||
include_spip('inc/bigform_obfusquer_doc');
|
||||
bigform_obfusquer_doc($Tid_doc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// si tout s'est bien passé, on supprime le/les anciens logos
|
||||
|
|
Loading…
Add table
Reference in a new issue