# gamutable ## Configuration Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev ## Utilisation 1. Charger l'inclure (5 args possibles et facultatifs) ```html Ou avec tous les arguments facultatifs ``` >url_sort_asc et url_sort_desc => surcharge possible des icones de tri de colonnes 1. Surcharger `json_gamutable.json.html` en suivant son modele * pour le header c'est de la forme : "champ":"label" * **IMPORTANT** pour le content du json, il que le cle de la KEY de la table soit "id" et non pas "id_souscription" * pour les champs date, pour avoir l'ordre de la col, il faut le format : dd/mm/yyyy ou dd/mm/yy * on peut ajouter une clé classes pour ajouter des classes spécifiques à certaines colonnes ```json "classes":{ "nom": "toto", "email":"toto" } ``` * On peut ajouter des tris par colonne soit avec un select soit avec un input ```json "filtreCol" : { "statut" : "select", "nom": "select", "prenom": "input" } ``` 1. Pour utiliser **les actions** : ```html [(#SET{statut, #SET{args,#ID_SOUSCRIPTION|concat{-}|concat{#STATUT}} [(#STATUT|!={publie}|oui) ] [(#STATUT|=={publie}|oui) ] })] "statut" : [(#GET{statut}|json_encode)], ``` * 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 * si une variable du nom de `nomBlocAjaxReload` est définie, alors, un ajaxReload de ce bloc sera joué dans la fonctione de callback de l'action 4. Pour utiliser **les crayons**, il faut utiliser le pipeline `crayons_vue_affichage_final` ```php /** * injection du reload de vuejs pour les crayons de l'objet souscription * */ function prefixPlugin_crayons_vue_affichage_final($flux){ if ($flux['args']['type'] === 'souscription') { $id = $flux['args']['id']; if ($id = intval($id)) { $flux['data'] .= ' '; } else { $flux['data'] .= ' '; } } return $flux; } ``` ** Attention ** Pour les crayons, l'invalidation du cache ne se fait que pour les objets publiés Les Crayons utilisent l'api modifier_objet de SPIP qui invalide le cache que si objet est publie, il faut donc forcer l'invalidation du cache en passant pour le pipeline post_edition ```php /** * invalider le cache pour l'objet souscription * */ function prefixPlugin_post_edition($flux){ if ($flux['args']['table'] === "spip_souscriptions") { include_spip('inc/invalideur'); suivre_invalideur("id='id_souscription/1'"); } return $flux; } ``` 1. Pour utiliser une **mediabox** ou **modalbox** et rechargement total/partiel de la page: on peut demander à vuejs de recharger tout le json ou simplement une ligne dans le cas d'une modification 1. Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json) ```html "modif" : [(#VAL{}|json_encode)], ``` 2. On charge en ajax le formulaire en l'englobant d'une div avec la classe ajax (du pur spip) 3. Dans le traiter du formulaire => supprimer la redirection et on ajoute : ```php if ($retour === 'gamutable') { $res['redirect'] = ""; // pour recharger que la ligne $id_patate du tableau $res['message_ok'] = gamutable_fermer_modalbox($id_patate); // ou si on veut recharger tout le tableau $res['message_ok'] = gamutable_fermer_modalbox(); } ``` *il faut ajouter data-confirm="Confirmez vous ..." si on veut ajouter une popin de confirmation*