diff --git a/css/gamutable.css b/css/gamutable.css index 5cb44cf..b7e5634 100644 --- a/css/gamutable.css +++ b/css/gamutable.css @@ -6,7 +6,7 @@ font-size: 1.2rem; } -div.vue-input > input { +div.vue-input>input { font-size: 1.2rem; } @@ -18,6 +18,7 @@ div.vue-input > input { font-size: 1.2rem; padding: 5px 5px !important; } + .gamutable__input--filtrer:valid { font-size: 1.2rem; background-color: rgb(153, 153, 153); @@ -47,9 +48,11 @@ th .vue-select { .gamutable--surTable input { margin-bottom: 0; } + .gamutable--surTable .gamutable-nbrMax { margin-left: 2rem; } + .gamutable--surTable .includespip { margin-left: 2rem; } @@ -65,10 +68,12 @@ th .vue-select { display: -ms-flexbox; display: flex; } + .gamutable--pagination .page-item { display: -ms-flexbox; display: flex; } + .gamutable--pagination .page-link { margin: 0 0.2rem; background-color: #eee; @@ -84,9 +89,11 @@ th .vue-select { font-size: 1em; table-layout: auto; } + .gamutable table thead { border: 1px solid rgb(119, 119, 119); } + .gamutable table .gt_labels { display: -ms-flexbox; display: flex; @@ -95,30 +102,37 @@ th .vue-select { -ms-flex-align: center; align-items: center; } -.gamutable table th > div { + +.gamutable table th>div { display: -ms-flexbox; display: flex; } + .gamutable table .label_tete_colonne { -ms-flex-positive: 1; flex-grow: 1; } + .gamutable table .iconeTri { float: right; width: calc(1em + 4px); } + .gamutable table .iconeTri .fa { padding: 2px 5px; cursor: pointer; } + .gamutable table .tri_col { cursor: pointer; fill: #cecece; } -.gamutable table .iconeTri > .active { + +.gamutable table .iconeTri>.active { fill: rgb(220, 53, 69); color: rgb(220, 53, 69); } + .gamutable table tbody tr:hover { background-color: rgba(179, 209, 67, 0.27); } @@ -139,18 +153,19 @@ th.icone { tr.filtreColonne th { padding: 0; } + tr.filtreColonne th select { margin: 0; } -td.icone > * { +td.icone>* { width: 100%; display: block; padding: 0.5rem; text-align: center; } -.gamutable .url_action { +.gamutable .url_action:not(.sans_css) { padding: 0.2rem; display: -ms-inline-flexbox; display: inline-flex; @@ -158,6 +173,7 @@ td.icone > * { border: 1px solid #cecece; border-radius: 5px; } + .gamutable .url_action:hover { background-color: #cecece; } @@ -876,4 +892,5 @@ td.icone i { .maxw1140p { max-width: 1140px; } + /*# sourceMappingURL=gamutable.css.map */ diff --git a/dist/assets/gamutable-756785b2.js b/dist/assets/gamutable-371e82bf.js similarity index 96% rename from dist/assets/gamutable-756785b2.js rename to dist/assets/gamutable-371e82bf.js index 7491e08..d94a8cb 100644 --- a/dist/assets/gamutable-756785b2.js +++ b/dist/assets/gamutable-371e82bf.js @@ -1 +1 @@ -import{i as Ne,r as v,o as Fe,c as Se,w as le,n as Ge,a as u,b as f,d as r,e as E,v as ze,u as s,f as q,F as N,g as F,t as G,h as xe,j,k as H,l as O,m as B,p as Ke,q as Qe,s as We,Y as Xe,x as Ye,y as $e,V as je}from"./vendor-f73869ed.js";(function(){const g=document.createElement("link").relList;if(g&&g.supports&&g.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))b(n);new MutationObserver(n=>{for(const h of n)if(h.type==="childList")for(const V of h.addedNodes)V.tagName==="LINK"&&V.rel==="modulepreload"&&b(V)}).observe(document,{childList:!0,subtree:!0});function i(n){const h={};return n.integrity&&(h.integrity=n.integrity),n.referrerpolicy&&(h.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?h.credentials="include":n.crossorigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function b(n){if(n.ep)return;n.ep=!0;const h=i(n);fetch(n.href,h)}})();function oe(d,g){let i=-1;return d.forEach((b,n)=>{b.html.id===parseInt(g)&&(i=n)}),i}function Ie(d){try{return JSON.parse(d)}catch(g){return console.log("erreur recupJson ",g),!1}}function Ze(d,g){let i=document.createElement("a");i.href=d,g&&i.setAttribute("target","_blank"),i.click()}function et(d,g){if((Number.isInteger(d)||parseInt(d)==d)&&(Number.isInteger(g)||parseInt(g)==g))return parseInt(d)-parseInt(g);{let i=toString(d).toLowerCase(),b=toString(g).toLowerCase();return ib?1:0}}const Oe=(d,g,i,b)=>d.sort((n,h)=>g.reduce((V,w,A)=>{if(V===0){let[_,S]=i&&i[A]==="desc"?[h[b][w],n[b][w]]:[n[b][w],h[b][w]];_=typeof _=="string"?_.toLowerCase():_,S=typeof S=="string"?S.toLowerCase():S;let M=/^(\d{2})\/(\d{2})\/(\d{2,4})$/;if(typeof _!="number"){let L=_.match(M);Array.isArray(L)&&(_=L[3]+L[2]+L[1]);let m=S.match(M);Array.isArray(m)&&(S=m[3]+m[2]+m[1])}V=_>S?1:_{localforage.setDriver(localforage[i.stockage.toUpperCase()]),W("maj"),i.urlvuebloc&&fetch(i.urlvuebloc).then(l=>l.text()).then(l=>{re.value=l})});const Te=Se(()=>{if(Q.value){const[l,e]=Q.value.split(" "),[t,a,o]=l.split("-"),[c,y,k]=e.split(":");return`${o}/${a}/${t} à ${c}h${y}min${k}sec`}else return""}),J=Se(()=>{if(Re(),!z.value&&!ue.value)return ke(n.value);let l=n.value.filter(e=>{let t=!(Object.values(e[x.value]).toString().toLowerCase().indexOf(z.value.toLowerCase())<0);return t?(Object.keys(m.value).forEach(a=>{if(t){let o=m.value[a];if(o!==null){Array.isArray(o)||(o=[o]);let c=[];o.forEach(y=>{Number.isInteger(y)&&c.push(y),y.length>0&&c.push(y.toLowerCase())}),c.length&&(L.value[a]==="select"?c.some(k=>{if(Number.isInteger(k)){if(parseInt(e[x.value][a])===k)return!0}else if(ie[a]){if(e[x.value][a]!==void 0&&!(e[x.value][a].toString().toLowerCase().toString().indexOf(k)===-1||!e[x.value][a].toString().toLowerCase()))return!0}else if(e[x.value][a]!==void 0&&!(k.indexOf(e[x.value][a].toString().toLowerCase().toString())===-1||!e[x.value][a].toString().toLowerCase()))return!0})||(t=!1):e[x.value][a].toString().toLowerCase().indexOf(c.toString())===-1&&(t=!1))}}}),t):!1});return ke(l)});le(m,()=>{ee()}),le(R,l=>{parseInt(l)?D.value=l:D.value=n.value.length,sessionStorage.setItem("nbItems",D.value),sessionStorage.setItem("nbItemsChaine",R.value)}),le(n,()=>{ee(),localforage.setItem(T,JSON.stringify(n.value))}),le(J,()=>{i.filtrecolmulti==="non"&&M.value.forEach(l=>{let e=[];J.value.forEach(t=>{let a=t[x.value][l];e.indexOf(a)===-1&&(e.push(a),filtreColValOk.value=!0)}),ae.value[l]=e})}),le(m,()=>{let l=[];m.value&&Object.entries(m.value).forEach(([e,t])=>{Array.isArray(t)||(t=[t]),l.push({champ:e,valeurs:t})}),ce||localStorage.setItem("filtreselect_"+T,JSON.stringify(l))},{deep:!0});function he(l){h.value=l.header,l.crayons!==void 0&&(V.value=l.crayons),l.maj!==void 0&&(Q.value=l.maj),l.classes!==void 0&&(w.value=l.classes),l.checkbox!==void 0&&(A.value=l.checkbox,Object.keys(A.value).forEach(t=>{_.value[t]=[]})),l.ordreCol!==void 0&&(S.value=l.ordreCol);let e=[];return l.filtreCol!==void 0&&(e=l.filtreCol),l.filtreColValeurs!==void 0&&(ie=l.filtreColValeurs),ee(),e}function Ve(l,e=null){if(parseInt(e)>0)if(l.length>0){let t=oe(n.value,e);t>=0?n.value[t]=l[0]:n.value.unshift(l[0])}else{let t=oe(n.value,e);n.value.splice(t,1)}else e==="maj"?l.length&&(l[0]&&l[0].search&&(x.value="search"),l.length>0&&l.forEach((t,a)=>{let o=oe(n.value,t.html.id);o>=0?n.value[o]=l[a]:n.value.unshift(l[a])})):(n.value=l,l[0]&&l[0].search&&(x.value="search"));localforage.setItem(T,JSON.stringify(n.value))}function ge(l){l!==void 0&&(L.value=l,M.value=[],Object.keys(L.value).forEach(e=>{if(M.value.push(e),ie[e])ae.value[e]=ie[e];else{let t=[];n.value.forEach(a=>{let o=a[x.value][e];o&&t.indexOf(o)===-1&&t.push(o)}),ae.value[e]=t.sort()}m.value[e]=[]}))}function Ee(l){l.a_supprimer&&l.a_supprimer.forEach(e=>{let t=oe(n.value,e);t!==-1&&n.value.splice(t,1)})}function W(l){console.log("chargerJson pour ",l),ne.value=!0;let e=i.apiuri;if(parseInt(l)>0)e+="&id="+l;else{let t=localStorage.getItem("header_"+T);t=Ie(t),t&&t.header!==void 0&&n.value.length===0&&(console.log("charge LS"),localforage.getItem(T).then(function(a){a=Ie(a);let o=he(t);n.value=a,ge(o),i.nomblocajaxreload&&ajaxReload(i.nomblocajaxreload)}).catch(function(a){console.log(a)})),l==="maj"&&(Q.value?e+="&maj="+Q.value:t&&t.maj?e+="&maj="+t.maj:l=null)}fetch(e).then(t=>t.json()).then(t=>{let a=t.shift();Ee(a);let o=he(a);Ve(t,l),ge(o),Ge(()=>{ne.value=!1;const c=localStorage.getItem("filtreselect_"+T),y=localStorage.getItem("triCol_"+T);let k=[];if(i.filtreselect?(i.filtreselect.split(",").forEach(C=>{const[I,...P]=C.split("|"),X=k.findIndex(pe=>pe.champ===I);X===-1?k.push({champ:I,valeurs:P}):k[X].valeurs.push(P[0])}),localStorage.setItem("filtreselect_"+T,JSON.stringify(k))):c&&(k=JSON.parse(c)),k.forEach(C=>{M.value.includes(C.champ)&&(m.value[C.champ]=[...m.value[C.champ],...C.valeurs])}),ue.value++,ce=!1,fe&&i.tparpage.includes(fe)&&(R.value=fe),de?(de.split(",").forEach(C=>{const[I,P]=C.split("|");M.value.includes(I)&&te(I,P)}),localStorage.setItem("triCol_"+T,de)):y&&y.split(",").forEach(C=>{const[I,P]=C.split("|");M.value.includes(I)&&te(I,P)}),parseInt(i._id)>0){let C=parseInt(i._id),I=parseInt(D.value);if(parseInt(I)){let P=0;if(Object.values(n.value).forEach((X,pe)=>{C===X.html.id&&(P=pe+1)}),P>I){let X=parseInt(P/I)+1;p.value=X}}be(C,"id")}i.nomblocajaxreload&&ajaxReload(i.nomblocajaxreload),S.value&&Object.entries(S.value).forEach(([C,I])=>{te(C,I)}),$("td.crayon-init").removeClass("crayon-init")})}).catch(t=>console.log(t))}function ee(){let l={header:h.value,crayons:V.value,classes:w.value,filtreCol:L.value,ordreCol:S.value,maj:Q.value};localStorage.setItem("header_"+T,JSON.stringify(l))}function we(l){m.value[l]=[],ee()}function Me(){ue.value++}function Pe(){return i.apiuri?i.apiuri.match(/.*page=(.*)/)[1]+"&gamuId="+i.id_auteur:""}function Je(l,e){let t=e.crayons!==void 0&&e.crayons[l]!==void 0?e.crayons[l]:e.html.id;if(Object.keys(V.value).indexOf(l)!==-1)return`crayon ${V.value[l]}-${l}-${t}`}function te(l,e=!1){const t=Y.value.indexOf(l);t!==-1?(e||(e="asc",K.value[t]==="asc"&&(e="desc")),K.value[t]=e):(e||(e="asc"),Y.value.push(l),K.value.push(e)),n.value=Oe(n.value,Y.value,K.value,x.value),S.value[l]=e,ee()}function me(l,e){const t=Y.value.indexOf(l);if(t!==-1&&K.value[t]===e)return"active"}function Be(){n.value=Oe(n.value,["id"],"",x.value),K.value=[],Y.value=[],S.value=[],Object.keys(L.value).forEach(l=>{m.value[l]=[]}),localStorage.removeItem("filtreselect_"+T),localStorage.removeItem("filtreCol_"+T),localStorage.removeItem("triCol_"+T)}function be(l,e){if(e==="id"&&parseInt(l)){let t=se.value.indexOf(l);t!==-1?se.value.splice(t,1):se.value.push(l)}}function _e(l="tableau"){let e=[],t=J.value;l==="table"&&(t=n.value),Object.values(t).forEach(c=>{e.push(c.html)});const a={fichierpdf:i.fichierpdf,namepdf:i.namepdf,header:h.value,arg:i.argpdf,Tdata:e};$.ajax({url:i.pdfuri,type:"POST",dataType:"text",data:a}).done(function(c){c&&Ze(c,!0)})}function ye(l="tableau"){let e=[],t=[],a=[],o=J.value;l==="table"&&(o=n.value),Object.keys(h.value).forEach(c=>t.push(c)),a=o.reduce((c,y)=>{let k=[];return Object.values(y[i.champcsv]).forEach(C=>k.push(C)),[...c,[...k]]},[]),e=[[...t],...a],Ue(e,i.delimitercsv,i.namecsv)}function Ae(l){let e=re.value;return Object.keys(l).forEach(t=>{e=e.replace(`@@${t}@@`,l[t])}),e}function Ce(l){Z.value=l}function De(l){_.value[l]!==void 0&&_.value[l].length?_.value[l]=[]:(_.value[l]=[],J.value.forEach(e=>{_.value[l].push(e.html.id)}))}function He(l,e){let t="page";if(e.includes("action=")&&(t="action"),t==="action")$.ajax({url:e,data:{data:_.value[l]},type:"POST"}).done(function(){W("maj")});else{const a=encodeURIComponent(JSON.stringify(_.value[l]));e+="&data="+a,e+="&var_zajax=content";const o={};o.onClose=()=>{W("maj")},$.modalbox(e,o)}}function ke(l){let e=p.value*D.value-D.value,t=p.value*D.value;return l.slice(e,t)}function Re(){let l=Math.ceil(n.value.length/D.value);U.value=[];for(let e=1;e<=l;e++)U.value.push(e)}function Ue(l,e,t){t.includes(".csv")&&(t=t.split(".")[0]);let a="";e?a=b.unparse(l,{delimiter:e}):a=b.unparse(l),b.download(a,t)}function qe(l,e=!0){console.log("rechargerJson"),ce=e,W(l)}return g({rechargerJson:qe}),(l,e)=>(u(),f("div",tt,[r("div",lt,[E(r("select",{id:"parPage","onUpdate:modelValue":e[0]||(e[0]=t=>q(R)?R.value=t:R=t)},[(u(!0),f(N,null,F(d.tparpage,t=>(u(),f("option",{key:t},G(t),1))),128))],512),[[ze,s(R)]]),E(r("input",{class:"gamutable--rechercher",type:"text","onUpdate:modelValue":e[1]||(e[1]=t=>q(z)?z.value=t:z=t),placeholder:"Rechercher"},null,512),[[xe,s(z)]]),r("button",{class:"btn gamutable--resetOrderBy",type:"button",onClick:e[2]||(e[2]=j(t=>Be(),["stop"])),title:"Réinitialiser les tris des colonnes"},nt),r("button",{class:"btn var_gamutable rouge",type:"button",onClick:e[3]||(e[3]=j(t=>W(),["stop"])),title:"Rechargement complet du tableau"},it),r("button",{class:"btn var_gamutable",type:"button",onClick:e[4]||(e[4]=j(t=>W("maj"),["stop"])),title:"Mise à jour du tableau - dernière version de la base de donnée le : "+s(Te)},ct,8,ot),s(re)?E((u(),f("button",{key:0,class:"btn gamutable--vueTable",title:"Switcher en Vue tableau",onClick:e[5]||(e[5]=j(t=>Ce("tableau"),["stop"]))},dt,512)),[[H,s(Z)==="bloc"]]):O("",!0),s(re)?E((u(),f("button",{key:1,class:"btn gamutable--vueBloc",title:"Switcher en Vue Bloc",onClick:e[6]||(e[6]=j(t=>Ce("bloc"),["stop"]))},vt,512)),[[H,s(Z)==="tableau"]]):O("",!0),E(r("button",{class:"btn gamutable--exportCSV",type:"button",onClick:e[7]||(e[7]=j(t=>ye(),["stop"])),title:"Exporter le tableau affiché en csv"},gt,512),[[H,d.namecsv]]),E(r("button",{class:"btn",type:"button",onClick:e[8]||(e[8]=j(t=>_e(),["stop"])),title:"Générer le PDF du tableau affiché"},bt,512),[[H,d.fichierpdf]]),E(r("button",{class:"btn gamutable--exportCSV",type:"button",onClick:e[9]||(e[9]=j(t=>ye("table"),["stop"])),title:"Exporter le tableau complet en csv"},yt,512),[[H,d.namecsv]]),E(r("button",{class:"btn",type:"button",onClick:e[10]||(e[10]=j(t=>_e("table"),["stop"])),title:"Générer le PDF du tableau complet"},kt,512),[[H,d.fichierpdf]]),E(r("span",St,jt,512),[[H,s(ne)]]),E(r("span",It,Lt,512),[[H,!s(ne)]]),r("span",{class:"gamutable-nbrMax","data-nbrmax":s(n).length},G(s(J).length)+" / "+G(s(n).length)+" éléments",9,Tt),r("span",{class:"includespip",innerHTML:d.includespip},null,8,Vt)]),s(Z)==="bloc"?(u(),f("div",Et,[(u(!0),f(N,null,F(s(J),t=>(u(),f("div",{class:"vueBlocs-unbloc",key:t.id,innerHTML:Ae(t.html)},null,8,wt))),128))])):O("",!0),s(Z)==="tableau"?(u(),f("table",Mt,[r("thead",null,[r("tr",null,[(u(!0),f(N,null,F(s(h),(t,a,o)=>(u(),f("th",{key:"head_"+o,class:B([a,s(w)[a]])},[r("span",Pt,[r("span",{innerHTML:t},null,8,Jt),r("span",Bt,[r("i",{class:B(["fa fa-sort-asc fa-sort-up",me(a,"asc")]),"aria-hidden":"true",onClick:j(c=>te(a,"asc"),["stop"])},null,10,At),r("i",{class:B(["fa fa-sort-desc fa-sort-down",me(a,"desc")]),"aria-hidden":"true",onClick:j(c=>te(a,"desc"),["stop"])},null,10,Dt)])])],2))),128))]),s(M).length||Object.keys(s(A)).length?(u(),f("tr",Ht,[(u(!0),f(N,null,F(s(h),(t,a,o)=>(u(),f("th",{key:"filtreCol_"+o,class:B(a)},[s(A)[a]!==void 0?(u(),f("div",{key:0,id:"filtreCol_"+a,class:B([s(w)[a],"flex justify-between"])},[r("input",{class:"ml-2",type:"checkbox",onClick:j(c=>De(a),["stop"])},null,8,Ut),r("button",{onClick:j(c=>He(a,s(A)[a]),["stop"])},Ft,8,qt)],10,Rt)):O("",!0),s(M).indexOf(a)!==-1?(u(),f("div",{key:1,id:"filtreCol_"+a,class:B(s(w)[a])},[s(L)[a]==="select"?(u(),Ke(s(Xe),{key:0,modelValue:s(m)[a],"onUpdate:modelValue":c=>s(m)[a]=c,options:s(ae)[a].sort(s(et)),"hide-selected":"",multiple:"",taggable:"","close-on-select":"","clear-on-close":"",searchable:"",onSelected:Me,"onSearch:focus":e[11]||(e[11]=()=>{})},{tag:Qe(({option:c,remove:y})=>[r("div",zt,[We(G(c)+" ",1),r("span",{class:"tag--remove pointer",title:"Cliquer pour supprimer ",onClick:j(y,["stop"])},"x",8,Kt)])]),_:2},1032,["modelValue","onUpdate:modelValue","options"])):O("",!0),s(L)[a]==="input"?E((u(),f("input",{key:1,class:"gamutable__input--filtrer","onUpdate:modelValue":c=>s(m)[a]=c,type:"text",placeholder:"Rechercher",onKeydown:e[12]||(e[12]=()=>{})},null,40,Qt)),[[xe,s(m)[a]]]):O("",!0),s(L)[a]==="input"&&s(m)[a].length!==0?(u(),f("button",{key:2,onClick:j(c=>we(a),["stop"]),title:"Vider ce champ",class:"gamutable__input--filtrer"}," X ",8,Wt)):O("",!0)],10,Gt)):O("",!0)],2))),128))])):O("",!0)]),r("tbody",null,[(u(!0),f(N,null,F(s(J),t=>(u(),f("tr",{key:t.html.id,class:B(s(se).indexOf(t.html.id)!==-1?"select":"")},[(u(!0),f(N,null,F(t.html,(a,o,c)=>(u(),f("td",{key:"td_"+c,class:B([Je(o,t),o,s(w)[o],t.classes!==void 0?t.classes[o]:""]),onClick:y=>be(t.html.id,o)},[s(A)[o]!==void 0?(u(),f("div",Yt,[a.split("-")[0]==="dataid"?(u(),f("div",Zt,[r("label",null,[E(r("input",{type:"checkbox","onUpdate:modelValue":y=>s(_)[o]=y,value:a.split("-")[1]},null,8,el),[[Ye,s(_)[o]]])])])):(u(),f("div",{key:1,innerHTML:a},null,8,tl))])):(u(),f("div",{key:1,innerHTML:a},null,8,ll))],10,Xt))),128))],2))),128))])])):O("",!0),r("div",al,[r("div",sl,G(s(J).length)+" / "+G(s(n).length)+" éléments ",1),r("div",nl,[r("div",rl,[s(p)!=1?(u(),f("button",{key:0,type:"button",class:"page-link",onClick:e[13]||(e[13]=t=>q(p)?p.value=1:p=1)}," Premier ")):O("",!0),s(p)!=1?(u(),f("button",{key:1,type:"button",class:"page-link",onClick:e[14]||(e[14]=t=>q(p)?p.value--:p--)}," Précédent ")):O("",!0)]),r("div",il,[(u(!0),f(N,null,F(s(U).slice(s(p)-4<0?0:s(p)-4,s(p)+3),t=>(u(),f("button",{type:"button",class:B(["page-link",{on:t===s(p)}]),onClick:a=>q(p)?p.value=t:p=t},G(t),11,ol))),256))]),r("div",ul,[s(p)q(p)?p.value++:p++),class:"page-link"}," Suivant ")):O("",!0),s(p)q(p)?p.value=s(U).length:p=s(U).length),class:"page-link"}," Dernier ")):O("",!0)])])])]))}},Le={GamuTable:cl};let ve=1;for(const d of document.getElementsByClassName("vue-gamutable"))ve===1?(window.app=$e({components:Le,mounted(){app.rechargerJson=this.$refs.montableau.rechargerJson}}),app.use(je),app.provide("$papa",app.config.globalProperties.$papa),app.mount(d)):ve===2&&(window.app_deux=$e({components:Le,mounted(){app_deux.rechargerJson=this.$refs.montableau_deux.rechargerJson}}),app_deux.use(je),app_deux.provide("$papa",app_deux.config.globalProperties.$papa),app_deux.mount(d)),ve++;$("#vueGamutable").on("click",".url_action",function(d){d.preventDefault(),d.stopPropagation();let g=$(this).data("confirm");if(g!==void 0&&!confirm(g))return;let i=$(this).attr("href"),b=$(this).data("id");$(this).has("i.icon, i.fa")&&$(this).find("i.icon, i.fa").eq(0).replaceWith('');let n=$(this).data("ajaxreload");$.ajax({url:i,dataType:"json",async:!0}).done(function(h){!$.isEmptyObject(h)&&!$.isEmptyObject(h.message_erreur)?alert(h.message_erreur):(parseInt(b)>0?app.rechargerJson(b):app.rechargerJson("maj"),n!==void 0&&ajaxReload(n,{args:{id:b},callback:function(){}}))})}); +import{i as Ne,r as v,o as Fe,c as Se,w as le,n as Ge,a as u,b as f,d as r,e as E,v as ze,u as s,f as q,F as N,g as F,t as G,h as xe,j,k as H,l as O,m as B,p as Ke,q as Qe,s as We,Y as Xe,x as Ye,y as $e,V as je}from"./vendor-f73869ed.js";(function(){const g=document.createElement("link").relList;if(g&&g.supports&&g.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))b(n);new MutationObserver(n=>{for(const h of n)if(h.type==="childList")for(const V of h.addedNodes)V.tagName==="LINK"&&V.rel==="modulepreload"&&b(V)}).observe(document,{childList:!0,subtree:!0});function i(n){const h={};return n.integrity&&(h.integrity=n.integrity),n.referrerpolicy&&(h.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?h.credentials="include":n.crossorigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function b(n){if(n.ep)return;n.ep=!0;const h=i(n);fetch(n.href,h)}})();function oe(d,g){let i=-1;return d.forEach((b,n)=>{b.html.id===parseInt(g)&&(i=n)}),i}function Ie(d){try{return JSON.parse(d)}catch(g){return console.log("erreur recupJson ",g),!1}}function Ze(d,g){let i=document.createElement("a");i.href=d,g&&i.setAttribute("target","_blank"),i.click()}function et(d,g){if((Number.isInteger(d)||parseInt(d)==d)&&(Number.isInteger(g)||parseInt(g)==g))return parseInt(d)-parseInt(g);{let i=toString(d).toLowerCase(),b=toString(g).toLowerCase();return ib?1:0}}const Oe=(d,g,i,b)=>d.sort((n,h)=>g.reduce((V,w,A)=>{if(V===0){let[_,S]=i&&i[A]==="desc"?[h[b][w],n[b][w]]:[n[b][w],h[b][w]];_=typeof _=="string"?_.toLowerCase():_,S=typeof S=="string"?S.toLowerCase():S;let M=/^(\d{2})\/(\d{2})\/(\d{2,4})$/;if(typeof _!="number"){let L=_.match(M);Array.isArray(L)&&(_=L[3]+L[2]+L[1]);let m=S.match(M);Array.isArray(m)&&(S=m[3]+m[2]+m[1])}V=_>S?1:_{localforage.setDriver(localforage[i.stockage.toUpperCase()]),W("maj"),i.urlvuebloc&&fetch(i.urlvuebloc).then(l=>l.text()).then(l=>{re.value=l})});const Te=Se(()=>{if(Q.value){const[l,e]=Q.value.split(" "),[t,a,o]=l.split("-"),[c,y,k]=e.split(":");return`${o}/${a}/${t} à ${c}h${y}min${k}sec`}else return""}),J=Se(()=>{if(Re(),!z.value&&!ue.value)return ke(n.value);let l=n.value.filter(e=>{let t=!(Object.values(e[x.value]).toString().toLowerCase().indexOf(z.value.toLowerCase())<0);return t?(Object.keys(m.value).forEach(a=>{if(t){let o=m.value[a];if(o!==null){Array.isArray(o)||(o=[o]);let c=[];o.forEach(y=>{Number.isInteger(y)&&c.push(y),y.length>0&&c.push(y.toLowerCase())}),c.length&&(L.value[a]==="select"?c.some(k=>{if(Number.isInteger(k)){if(parseInt(e[x.value][a])===k)return!0}else if(ie[a]){if(e[x.value][a]!==void 0&&!(e[x.value][a].toString().toLowerCase().toString().indexOf(k)===-1||!e[x.value][a].toString().toLowerCase()))return!0}else if(e[x.value][a]!==void 0&&!(k.indexOf(e[x.value][a].toString().toLowerCase().toString())===-1||!e[x.value][a].toString().toLowerCase()))return!0})||(t=!1):e[x.value][a].toString().toLowerCase().indexOf(c.toString())===-1&&(t=!1))}}}),t):!1});return ke(l)});le(m,()=>{ee()}),le(R,l=>{parseInt(l)?D.value=l:D.value=n.value.length,sessionStorage.setItem("nbItems",D.value),sessionStorage.setItem("nbItemsChaine",R.value)}),le(n,()=>{ee(),localforage.setItem(T,JSON.stringify(n.value))}),le(J,()=>{i.filtrecolmulti==="non"&&M.value.forEach(l=>{let e=[];J.value.forEach(t=>{let a=t[x.value][l];e.indexOf(a)===-1&&(e.push(a),filtreColValOk.value=!0)}),ae.value[l]=e})}),le(m,()=>{let l=[];m.value&&Object.entries(m.value).forEach(([e,t])=>{Array.isArray(t)||(t=[t]),l.push({champ:e,valeurs:t})}),ce||localStorage.setItem("filtreselect_"+T,JSON.stringify(l))},{deep:!0});function he(l){h.value=l.header,l.crayons!==void 0&&(V.value=l.crayons),l.maj!==void 0&&(Q.value=l.maj),l.classes!==void 0&&(w.value=l.classes),l.checkbox!==void 0&&(A.value=l.checkbox,Object.keys(A.value).forEach(t=>{_.value[t]=[]})),l.ordreCol!==void 0&&(S.value=l.ordreCol);let e=[];return l.filtreCol!==void 0&&(e=l.filtreCol),l.filtreColValeurs!==void 0&&(ie=l.filtreColValeurs),ee(),e}function Ve(l,e=null){if(parseInt(e)>0)if(l.length>0){let t=oe(n.value,e);t>=0?n.value[t]=l[0]:n.value.unshift(l[0])}else{let t=oe(n.value,e);n.value.splice(t,1)}else e==="maj"?l.length&&(l[0]&&l[0].search&&(x.value="search"),l.length>0&&l.forEach((t,a)=>{let o=oe(n.value,t.html.id);o>=0?n.value[o]=l[a]:n.value.unshift(l[a])})):(n.value=l,l[0]&&l[0].search&&(x.value="search"));localforage.setItem(T,JSON.stringify(n.value))}function ge(l){l!==void 0&&(L.value=l,M.value=[],Object.keys(L.value).forEach(e=>{if(M.value.push(e),ie[e])ae.value[e]=ie[e];else{let t=[];n.value.forEach(a=>{let o=a[x.value][e];o&&t.indexOf(o)===-1&&t.push(o)}),ae.value[e]=t.sort()}m.value[e]=[]}))}function Ee(l){l.a_supprimer&&l.a_supprimer.forEach(e=>{let t=oe(n.value,e);t!==-1&&n.value.splice(t,1)})}function W(l){console.log("chargerJson pour ",l),ne.value=!0;let e=i.apiuri;if(parseInt(l)>0)e+="&id="+l;else{let t=localStorage.getItem("header_"+T);t=Ie(t),t&&t.header!==void 0&&n.value.length===0&&(console.log("charge LS"),localforage.getItem(T).then(function(a){a=Ie(a);let o=he(t);n.value=a,ge(o),i.nomblocajaxreload&&ajaxReload(i.nomblocajaxreload)}).catch(function(a){console.log(a)})),l==="maj"&&(Q.value?e+="&maj="+Q.value:t&&t.maj?e+="&maj="+t.maj:l=null)}fetch(e).then(t=>t.json()).then(t=>{let a=t.shift();Ee(a);let o=he(a);Ve(t,l),ge(o),Ge(()=>{ne.value=!1;const c=localStorage.getItem("filtreselect_"+T),y=localStorage.getItem("triCol_"+T);let k=[];if(i.filtreselect?(i.filtreselect.split(",").forEach(C=>{const[I,...P]=C.split("|"),X=k.findIndex(pe=>pe.champ===I);X===-1?k.push({champ:I,valeurs:P}):k[X].valeurs.push(P[0])}),localStorage.setItem("filtreselect_"+T,JSON.stringify(k))):c&&(k=JSON.parse(c)),k.forEach(C=>{M.value.includes(C.champ)&&(m.value[C.champ]=[...m.value[C.champ],...C.valeurs])}),ue.value++,ce=!1,fe&&i.tparpage.includes(fe)&&(R.value=fe),de?(de.split(",").forEach(C=>{const[I,P]=C.split("|");M.value.includes(I)&&te(I,P)}),localStorage.setItem("triCol_"+T,de)):y&&y.split(",").forEach(C=>{const[I,P]=C.split("|");M.value.includes(I)&&te(I,P)}),parseInt(i._id)>0){let C=parseInt(i._id),I=parseInt(D.value);if(parseInt(I)){let P=0;if(Object.values(n.value).forEach((X,pe)=>{C===X.html.id&&(P=pe+1)}),P>I){let X=parseInt(P/I)+1;p.value=X}}be(C,"id")}i.nomblocajaxreload&&ajaxReload(i.nomblocajaxreload),S.value&&Object.entries(S.value).forEach(([C,I])=>{te(C,I)}),$("td.crayon-init").removeClass("crayon-init")})}).catch(t=>console.log(t))}function ee(){let l={header:h.value,crayons:V.value,classes:w.value,filtreCol:L.value,ordreCol:S.value,maj:Q.value};localStorage.setItem("header_"+T,JSON.stringify(l))}function we(l){m.value[l]=[],ee()}function Me(){ue.value++}function Pe(){return i.apiuri?i.apiuri.match(/.*page=(.*)/)[1]+"&gamuId="+i.id_auteur:""}function Je(l,e){let t=e.crayons!==void 0&&e.crayons[l]!==void 0?e.crayons[l]:e.html.id;if(Object.keys(V.value).indexOf(l)!==-1)return`crayon ${V.value[l]}-${l}-${t}`}function te(l,e=!1){const t=Y.value.indexOf(l);t!==-1?(e||(e="asc",K.value[t]==="asc"&&(e="desc")),K.value[t]=e):(e||(e="asc"),Y.value.push(l),K.value.push(e)),n.value=Oe(n.value,Y.value,K.value,x.value),S.value[l]=e,ee()}function me(l,e){const t=Y.value.indexOf(l);if(t!==-1&&K.value[t]===e)return"active"}function Be(){n.value=Oe(n.value,["id"],"",x.value),K.value=[],Y.value=[],S.value=[],Object.keys(L.value).forEach(l=>{m.value[l]=[]}),localStorage.removeItem("filtreselect_"+T),localStorage.removeItem("filtreCol_"+T),localStorage.removeItem("triCol_"+T)}function be(l,e){if(e==="id"&&parseInt(l)){let t=se.value.indexOf(l);t!==-1?se.value.splice(t,1):se.value.push(l)}}function _e(l="tableau"){let e=[],t=J.value;l==="table"&&(t=n.value),Object.values(t).forEach(c=>{e.push(c.html)});const a={fichierpdf:i.fichierpdf,namepdf:i.namepdf,header:h.value,arg:i.argpdf,Tdata:e};$.ajax({url:i.pdfuri,type:"POST",dataType:"text",data:a}).done(function(c){c&&Ze(c,!0)})}function ye(l="tableau"){let e=[],t=[],a=[],o=J.value;l==="table"&&(o=n.value),Object.keys(h.value).forEach(c=>t.push(c)),a=o.reduce((c,y)=>{let k=[];return Object.values(y[i.champcsv]).forEach(C=>k.push(C)),[...c,[...k]]},[]),e=[[...t],...a],Ue(e,i.delimitercsv,i.namecsv)}function Ae(l){let e=re.value;return Object.keys(l).forEach(t=>{e=e.replace(`@@${t}@@`,l[t])}),e}function Ce(l){Z.value=l}function De(l){_.value[l]!==void 0&&_.value[l].length?_.value[l]=[]:(_.value[l]=[],J.value.forEach(e=>{_.value[l].push(e.html.id)}))}function He(l,e){let t="page";if(e.includes("action=")&&(t="action"),t==="action")$.ajax({url:e,data:{data:_.value[l]},type:"POST"}).done(function(){W("maj")});else{const a=encodeURIComponent(JSON.stringify(_.value[l]));e+="&data="+a,e+="&var_zajax=content";const o={};o.onClose=()=>{W("maj")},$.modalbox(e,o)}}function ke(l){let e=p.value*D.value-D.value,t=p.value*D.value;return l.slice(e,t)}function Re(){let l=Math.ceil(n.value.length/D.value);U.value=[];for(let e=1;e<=l;e++)U.value.push(e)}function Ue(l,e,t){t.includes(".csv")&&(t=t.split(".")[0]);let a="";e?a=b.unparse(l,{delimiter:e}):a=b.unparse(l),b.download(a,t)}function qe(l,e=!0){console.log("rechargerJson"),ce=e,W(l)}return g({rechargerJson:qe}),(l,e)=>(u(),f("div",tt,[r("div",lt,[E(r("select",{id:"parPage","onUpdate:modelValue":e[0]||(e[0]=t=>q(R)?R.value=t:R=t)},[(u(!0),f(N,null,F(d.tparpage,t=>(u(),f("option",{key:t},G(t),1))),128))],512),[[ze,s(R)]]),E(r("input",{class:"gamutable--rechercher",type:"text","onUpdate:modelValue":e[1]||(e[1]=t=>q(z)?z.value=t:z=t),placeholder:"Rechercher"},null,512),[[xe,s(z)]]),r("button",{class:"btn gamutable--resetOrderBy",type:"button",onClick:e[2]||(e[2]=j(t=>Be(),["stop"])),title:"Réinitialiser les tris des colonnes"},nt),r("button",{class:"btn var_gamutable rouge",type:"button",onClick:e[3]||(e[3]=j(t=>W(),["stop"])),title:"Rechargement complet du tableau"},it),r("button",{class:"btn var_gamutable",type:"button",onClick:e[4]||(e[4]=j(t=>W("maj"),["stop"])),title:"Mise à jour du tableau - dernière version de la base de donnée le : "+s(Te)},ct,8,ot),s(re)?E((u(),f("button",{key:0,class:"btn gamutable--vueTable",title:"Switcher en Vue tableau",onClick:e[5]||(e[5]=j(t=>Ce("tableau"),["stop"]))},dt,512)),[[H,s(Z)==="bloc"]]):O("",!0),s(re)?E((u(),f("button",{key:1,class:"btn gamutable--vueBloc",title:"Switcher en Vue Bloc",onClick:e[6]||(e[6]=j(t=>Ce("bloc"),["stop"]))},vt,512)),[[H,s(Z)==="tableau"]]):O("",!0),E(r("button",{class:"btn gamutable--exportCSV",type:"button",onClick:e[7]||(e[7]=j(t=>ye(),["stop"])),title:"Exporter le tableau affiché en csv"},gt,512),[[H,d.namecsv]]),E(r("button",{class:"btn",type:"button",onClick:e[8]||(e[8]=j(t=>_e(),["stop"])),title:"Générer le PDF du tableau affiché"},bt,512),[[H,d.fichierpdf]]),E(r("button",{class:"btn gamutable--exportCSV",type:"button",onClick:e[9]||(e[9]=j(t=>ye("table"),["stop"])),title:"Exporter le tableau complet en csv"},yt,512),[[H,d.namecsv]]),E(r("button",{class:"btn",type:"button",onClick:e[10]||(e[10]=j(t=>_e("table"),["stop"])),title:"Générer le PDF du tableau complet"},kt,512),[[H,d.fichierpdf]]),E(r("span",St,jt,512),[[H,s(ne)]]),E(r("span",It,Lt,512),[[H,!s(ne)]]),r("span",{class:"gamutable-nbrMax","data-nbrmax":s(n).length},G(s(J).length)+" / "+G(s(n).length)+" éléments",9,Tt),r("span",{class:"includespip",innerHTML:d.includespip},null,8,Vt)]),s(Z)==="bloc"?(u(),f("div",Et,[(u(!0),f(N,null,F(s(J),t=>(u(),f("div",{class:"vueBlocs-unbloc",key:t.id,innerHTML:Ae(t.html)},null,8,wt))),128))])):O("",!0),s(Z)==="tableau"?(u(),f("table",Mt,[r("thead",null,[r("tr",null,[(u(!0),f(N,null,F(s(h),(t,a,o)=>(u(),f("th",{key:"head_"+o,class:B([a,s(w)[a]])},[r("span",Pt,[r("span",{innerHTML:t},null,8,Jt),r("span",Bt,[r("i",{class:B(["fa fa-sort-asc fa-sort-up",me(a,"asc")]),"aria-hidden":"true",onClick:j(c=>te(a,"asc"),["stop"])},null,10,At),r("i",{class:B(["fa fa-sort-desc fa-sort-down",me(a,"desc")]),"aria-hidden":"true",onClick:j(c=>te(a,"desc"),["stop"])},null,10,Dt)])])],2))),128))]),s(M).length||Object.keys(s(A)).length?(u(),f("tr",Ht,[(u(!0),f(N,null,F(s(h),(t,a,o)=>(u(),f("th",{key:"filtreCol_"+o,class:B(a)},[s(A)[a]!==void 0?(u(),f("div",{key:0,id:"filtreCol_"+a,class:B([s(w)[a],"flex justify-between"])},[r("input",{class:"ml-2",type:"checkbox",onClick:j(c=>De(a),["stop"])},null,8,Ut),r("button",{onClick:j(c=>He(a,s(A)[a]),["stop"])},Ft,8,qt)],10,Rt)):O("",!0),s(M).indexOf(a)!==-1?(u(),f("div",{key:1,id:"filtreCol_"+a,class:B(s(w)[a])},[s(L)[a]==="select"?(u(),Ke(s(Xe),{key:0,modelValue:s(m)[a],"onUpdate:modelValue":c=>s(m)[a]=c,options:s(ae)[a].sort(s(et)),"hide-selected":"",multiple:"",taggable:"","close-on-select":"","clear-on-close":"",searchable:"",onSelected:Me,"onSearch:focus":e[11]||(e[11]=()=>{})},{tag:Qe(({option:c,remove:y})=>[r("div",zt,[We(G(c)+" ",1),r("span",{class:"tag--remove pointer",title:"Cliquer pour supprimer ",onClick:j(y,["stop"])},"x",8,Kt)])]),_:2},1032,["modelValue","onUpdate:modelValue","options"])):O("",!0),s(L)[a]==="input"?E((u(),f("input",{key:1,class:"gamutable__input--filtrer","onUpdate:modelValue":c=>s(m)[a]=c,type:"text",placeholder:"Rechercher",onKeydown:e[12]||(e[12]=()=>{})},null,40,Qt)),[[xe,s(m)[a]]]):O("",!0),s(L)[a]==="input"&&s(m)[a].length!==0?(u(),f("button",{key:2,onClick:j(c=>we(a),["stop"]),title:"Vider ce champ",class:"gamutable__input--filtrer"}," X ",8,Wt)):O("",!0)],10,Gt)):O("",!0)],2))),128))])):O("",!0)]),r("tbody",null,[(u(!0),f(N,null,F(s(J),t=>(u(),f("tr",{key:t.html.id,class:B(s(se).indexOf(t.html.id)!==-1?"select":"")},[(u(!0),f(N,null,F(t.html,(a,o,c)=>(u(),f("td",{key:"td_"+c,class:B([Je(o,t),o,s(w)[o],t.classes!==void 0?t.classes[o]:""]),onClick:y=>be(t.html.id,o)},[s(A)[o]!==void 0?(u(),f("div",Yt,[a.split("-")[0]==="dataid"?(u(),f("div",Zt,[r("label",null,[E(r("input",{type:"checkbox","onUpdate:modelValue":y=>s(_)[o]=y,value:a.split("-")[1]},null,8,el),[[Ye,s(_)[o]]])])])):(u(),f("div",{key:1,innerHTML:a},null,8,tl))])):(u(),f("div",{key:1,innerHTML:a},null,8,ll))],10,Xt))),128))],2))),128))])])):O("",!0),r("div",al,[r("div",sl,G(s(J).length)+" / "+G(s(n).length)+" éléments ",1),r("div",nl,[r("div",rl,[s(p)!=1?(u(),f("button",{key:0,type:"button",class:"page-link",onClick:e[13]||(e[13]=t=>q(p)?p.value=1:p=1)}," Premier ")):O("",!0),s(p)!=1?(u(),f("button",{key:1,type:"button",class:"page-link",onClick:e[14]||(e[14]=t=>q(p)?p.value--:p--)}," Précédent ")):O("",!0)]),r("div",il,[(u(!0),f(N,null,F(s(U).slice(s(p)-4<0?0:s(p)-4,s(p)+3),t=>(u(),f("button",{type:"button",class:B(["page-link",{on:t===s(p)}]),onClick:a=>q(p)?p.value=t:p=t},G(t),11,ol))),256))]),r("div",ul,[s(p)q(p)?p.value++:p++),class:"page-link"}," Suivant ")):O("",!0),s(p)q(p)?p.value=s(U).length:p=s(U).length),class:"page-link"}," Dernier ")):O("",!0)])])])]))}},Le={GamuTable:cl};let ve=1;for(const d of document.getElementsByClassName("vue-gamutable"))ve===1?(window.app=$e({components:Le,mounted(){app.rechargerJson=this.$refs.montableau.rechargerJson}}),app.use(je),app.provide("$papa",app.config.globalProperties.$papa),app.mount(d)):ve===2&&(window.app_deux=$e({components:Le,mounted(){app_deux.rechargerJson=this.$refs.montableau_deux.rechargerJson}}),app_deux.use(je),app_deux.provide("$papa",app_deux.config.globalProperties.$papa),app_deux.mount(d)),ve++;$("#vueGamutable").on("click",".url_action, .url_action--ss_css",function(d){d.preventDefault(),d.stopPropagation();let g=$(this).data("confirm");if(g!==void 0&&!confirm(g))return;let i=$(this).attr("href"),b=$(this).data("id");$(this).has("i.icon, i.fa")&&$(this).find("i.icon, i.fa").eq(0).replaceWith('');let n=$(this).data("ajaxreload");$.ajax({url:i,dataType:"json",async:!0}).done(function(h){!$.isEmptyObject(h)&&!$.isEmptyObject(h.message_erreur)?alert(h.message_erreur):(parseInt(b)>0?app.rechargerJson(b):app.rechargerJson("maj"),n!==void 0&&ajaxReload(n,{args:{id:b},callback:function(){}}))})}); diff --git a/dist/manifest.json b/dist/manifest.json index d783f42..063c3d4 100644 --- a/dist/manifest.json +++ b/dist/manifest.json @@ -3,7 +3,7 @@ "file": "assets/vendor-f73869ed.js" }, "gamutable.js": { - "file": "assets/gamutable-756785b2.js", + "file": "assets/gamutable-371e82bf.js", "imports": [ "_vendor-f73869ed.js" ], diff --git a/src/gamutable.js b/src/gamutable.js index f36a11e..d7586d4 100644 --- a/src/gamutable.js +++ b/src/gamutable.js @@ -2,7 +2,7 @@ import 'vite/modulepreload-polyfill'; // Vue -import { createApp } from 'vue'; +import {createApp} from 'vue'; // if importing all is too much you can always do it manually import GamuTable from './components/gamuTable.vue'; @@ -38,7 +38,7 @@ for (const el of document.getElementsByClassName('vue-gamutable')) { i++; } -$('#vueGamutable').on('click', '.url_action', function (e) { +$('#vueGamutable').on('click', '.url_action, .url_action--ss_css', function (e) { e.preventDefault(); e.stopPropagation(); let confirmation = $(this).data('confirm'); @@ -69,7 +69,7 @@ $('#vueGamutable').on('click', '.url_action', function (e) { } if (nomBlocAjaxReload !== undefined) { ajaxReload(nomBlocAjaxReload, { - args: { id }, + args: {id}, callback: function () {}, }); }