data-search="toto" n'est pas jouable, gros pb de performance sur un gros tableau. les regex OUI mais si pas beaucoup ;-) Il semble indispensable de pouvoir gerer finemement les elements que l'on veut rechercher, dans etre polué par les balises html. Notre json, pour la partie corps du tableau, on ajoute un subdivision : "html" : { mes champs}, comme cela, on peut ajouter une nouvelle cle : "search" : {la valeur des champs qui seront recherchés et filtrés}. Cela alourdit un peu le html, et seulement son poids. La partie html/js est toujours aussi rapide, et meme plus si on utilise cette nouvelle cle. ATTENTION : cela casse la compatibilité |
||
---|---|---|
css | ||
formulaires | ||
inclure | ||
js | ||
lang | ||
prive | ||
.gitignore | ||
gamutable_autorisations.php | ||
gamutable_fonctions.php | ||
gamutable_options.php | ||
gamutable_pipelines.php | ||
gulpfile.js | ||
json_gamutable.json.html | ||
package.json | ||
paquet.xml | ||
README.md | ||
yarn.lock |
gamutable
Configuration
Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev
Utilisation
- Charger l'inclure (2 args possibles)
<INCLURE{fond=inclure/gamutable,env}>
Ou
<INCLURE{fond=inclure/gamutable,env,tparpage=[15,25,50,'Tous']}>
Et / Ou
<INCLURE{fond=inclure/gamutable,env,apiuri=spip.php?page=json_gamutable.json}>
- Surcharcher
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
-
Pour utliser les actions :
- dans
json_gamutable.json.html
[(#SET{statut, #SET{args,#ID_SOUSCRIPTION|concat{-}|concat{#STATUT}} <a class="url_action" data-id="#ID_SOUSCRIPTION" href="[(#URL_ACTION_AUTEUR{changer_statut_souscription,#GET{args}})]"> [(#STATUT|!={publie}|oui) <i title="Souscription en attente" class="fa fa-check fa-2x orange" aria-hidden="true"></i> ] [(#STATUT|=={publie}|oui) <i title="Souscription validée" class="fa fa-check fa-2x verte" aria-hidden="true"></i> ] </a> })] "statut" : [(#GET{statut}|json_encode)],
il faut ajouter data-id="" si on veut recharger que cette ligne
- dans
-
Pour utiliser les crayons, il faut utiliser le pipeline
crayons_vue_affichage_final
/**
* 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'] .= ' <script type="text/javascript"> app.rechargerJson('.$id.'); </script>';
} else {
$flux['data'] .= ' <script type="text/javascript"> app.rechargerJson(); </script>';
}
}
return $flux;
}
Attention Pour les crayons, l'invalidation du cache ne se fait que pour les objets publiés
- Pour utiliser une mediabox ou modalbox,
- Dans le json : ajouter un lien avec la classe mediabox ou modalbox (cf ex de json)
"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)],
- Il faut appeler le formulaire en ajax
- Dans le traiter du formulaire => supprimer la redirection et ajouter :
if ($retour === 'gamutable') { $res['redirect'] = ""; $res['message_ok'] = "gamutable"; }
- Dans le html du formulaire, ajouter :
[(#ENV**{message_ok}|=={gamutable}|oui) <script type="text/javascript"> app.rechargerJson(); $.modalboxclose(); </script> ]
Attention
les Crayons utilise 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
/**
* 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;
}