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`
|
- `proteger`
|
||||||
- `charger_js_titre` oui par defaut => permet de ne pas charger le js d'ajout de l'input titre
|
- `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
|
- `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
|
- `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
|
- `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,36 @@
|
||||||
[(#ENV{objet_ok}|oui)
|
[(#ENV{objet_ok}|oui)
|
||||||
<div class="formulaire_spip formulaire_#FORM">
|
<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)
|
||||||
[(#ENV*{message_ok}|oui)
|
<script>
|
||||||
<script>
|
//ajaxReload("#ENV*{message_ok}");
|
||||||
ajaxReload("#ENV*{message_ok}");
|
|
||||||
</script>
|
|
||||||
]
|
|
||||||
|
|
||||||
|
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>
|
<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}}
|
#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 = []) {
|
function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) {
|
||||||
|
|
||||||
$options = [];
|
$options = [];
|
||||||
if (array_key_exists('proteger', $args)) {
|
if (array_key_exists('proteger', $args)) {
|
||||||
$options['proteger'] = true;
|
$options['proteger'] = true;
|
||||||
|
@ -82,7 +81,13 @@ function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mo
|
||||||
$retour['redirect'] = $args['redirect'];
|
$retour['redirect'] = $args['redirect'];
|
||||||
}
|
}
|
||||||
if (!empty($args['ajaxReload'])) {
|
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;
|
return $retour;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,8 +87,10 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
|
||||||
autoriser_exception('associerdocuments', $type, $id_objet);
|
autoriser_exception('associerdocuments', $type, $id_objet);
|
||||||
$autorisation_temp = true;
|
$autorisation_temp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
||||||
$Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode);
|
$Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode);
|
||||||
|
|
||||||
if ($autorisation_temp) {
|
if ($autorisation_temp) {
|
||||||
autoriser_exception('associerdocuments', $type, $id_objet, false);
|
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');
|
include_spip('inc/bigform_obfusquer_doc');
|
||||||
bigform_obfusquer_doc($Tid_doc);
|
bigform_obfusquer_doc($Tid_doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// si tout s'est bien passé, on supprime le/les anciens logos
|
// si tout s'est bien passé, on supprime le/les anciens logos
|
||||||
|
|
Loading…
Add table
Reference in a new issue