pour les action / mediabox / modalbox, si on ajoute data-confirm="mon

texte", au clique sur le lien, on ajoute un confirm js
This commit is contained in:
Christophe 2020-05-14 23:27:09 +02:00
parent e1a82baddb
commit 25f0d4d42c
3 changed files with 67 additions and 20 deletions

View file

@ -19,7 +19,6 @@ Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev
> >
> * pour les champs date, pour avoir l'ordre de la col, il faut le format : dd/mm/yyyy ou dd/mm/yy > * pour les champs date, pour avoir l'ordre de la col, il faut le format : dd/mm/yyyy ou dd/mm/yy
3. Pour utliser **les actions** : 3. Pour utliser **les actions** :
1. dans `json_gamutable.json.html`
```html ```html
[(#SET{statut, [(#SET{statut,
#SET{args,#ID_SOUSCRIPTION|concat{-}|concat{#STATUT}} #SET{args,#ID_SOUSCRIPTION|concat{-}|concat{#STATUT}}
@ -34,9 +33,10 @@ Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev
})] })]
"statut" : [(#GET{statut}|json_encode)], "statut" : [(#GET{statut}|json_encode)],
``` ```
> il faut ajouter data-id="" si on veut recharger que cette ligne > * il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter un popin de confirmation
> * il faut ajouter data-id="" si on veut recharger que cette ligne
4. Pour utiliser **les crayons**, il faut utiliser le pipeline `crayons_vue_affichage_final` 1. Pour utiliser **les crayons**, il faut utiliser le pipeline `crayons_vue_affichage_final`
```php ```php
/** /**
* injection du reload de vuejs pour les crayons de l'objet souscription * injection du reload de vuejs pour les crayons de l'objet souscription
@ -55,7 +55,7 @@ function prefixPlugin_crayons_vue_affichage_final($flux){
} }
``` ```
> **Attention** Pour les crayons, l'invalidation du cache ne se fait que pour les objets publiés > **Attention** Pour les crayons, l'invalidation du cache ne se fait que pour les objets publiés
5. Pour utiliser une **mediabox** ou **modalbox**, 2. Pour utiliser une **mediabox** ou **modalbox**,
1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json) 1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json)
```html ```html
"modif" : [(#VAL{<a class="modalbox" href="[(#URL_PAGE{souscrire}|parametre_url{id_souscription,#ID_SOUSCRIPTION}|parametre_url{redirect,gamutable})]"><i class="fa fa-pencil"></i></a>}|json_encode)], "modif" : [(#VAL{<a class="modalbox" href="[(#URL_PAGE{souscrire}|parametre_url{id_souscription,#ID_SOUSCRIPTION}|parametre_url{redirect,gamutable})]"><i class="fa fa-pencil"></i></a>}|json_encode)],
@ -77,6 +77,7 @@ function prefixPlugin_crayons_vue_affichage_final($flux){
</script> </script>
] ]
``` ```
> * il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter un popin de confirmation
## Attention ## Attention
> les Crayons utilise l'api modifier_objet de SPIP qui invalide le cache que si objet est publie, > les Crayons utilise l'api modifier_objet de SPIP qui invalide le cache que si objet est publie,

View file

@ -1,7 +1,15 @@
jQuery(function () { jQuery(function () {
// pour les #URL_ACTION_AUTEUR
// il faut ajouter une class : url_action
$('#app').on('click', '.url_action', function (e) { $('#app').on('click', '.url_action', function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
let confirmation = $(this).data('confirm');
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
let url = $(this).attr('href'); let url = $(this).attr('href');
let id = $(this).data('id'); let id = $(this).data('id');
console.time('Chargement de VueJs APRES Ajax'); console.time('Chargement de VueJs APRES Ajax');
@ -17,15 +25,27 @@ jQuery(function () {
}); });
}); });
// lancement d'une modalbox
$('#app').on('click', '.modalbox', function (e) { $('#app').on('click', '.modalbox', function (e) {
e.preventDefault(); e.preventDefault();
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
let url = $(this).attr('href'); let url = $(this).attr('href');
url += '&var_zajax=content'; url += '&var_zajax=content';
$.modalbox(url); $.modalbox(url);
}); });
// lancement d'une médiabox
$('#app').on('click', '.mediabox', function (e) { $('#app').on('click', '.mediabox', function (e) {
e.preventDefault(); e.preventDefault();
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
let href = $(this).attr('href'); let href = $(this).attr('href');
$.fn.mediabox({ href }); $.fn.mediabox({ href });
}); });

View file

@ -17,9 +17,19 @@ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) ||
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
jQuery(function () { jQuery(function () {
// pour les #URL_ACTION_AUTEUR
// il faut ajouter une class : url_action
$('#app').on('click', '.url_action', function (e) { $('#app').on('click', '.url_action', function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
var confirmation = $(this).data('confirm');
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
var url = $(this).attr('href'); var url = $(this).attr('href');
var id = $(this).data('id'); var id = $(this).data('id');
console.time('Chargement de VueJs APRES Ajax'); console.time('Chargement de VueJs APRES Ajax');
@ -33,15 +43,31 @@ jQuery(function () {
app.rechargerJson(); app.rechargerJson();
} }
}); });
}); }); // lancement d'une modalbox
$('#app').on('click', '.modalbox', function (e) { $('#app').on('click', '.modalbox', function (e) {
e.preventDefault(); e.preventDefault();
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
var url = $(this).attr('href'); var url = $(this).attr('href');
url += '&var_zajax=content'; url += '&var_zajax=content';
$.modalbox(url); $.modalbox(url);
}); }); // lancement d'une médiabox
$('#app').on('click', '.mediabox', function (e) { $('#app').on('click', '.mediabox', function (e) {
e.preventDefault(); e.preventDefault();
if (confirmation) {
if (!confirm(confirmation)) {
return;
}
}
var href = $(this).attr('href'); var href = $(this).attr('href');
$.fn.mediabox({ $.fn.mediabox({
href: href href: href