From 09db4409631c4ecb096a7f77acf7ba3d4bc91853 Mon Sep 17 00:00:00 2001 From: tofulm Date: Tue, 20 Oct 2020 20:57:40 +0200 Subject: [PATCH 01/11] recup de la partie bloc de la vue en bloc --- inclure/gamutable.html | 1 + js/gamutable.es6.js | 80 ++++++++++++++++++++++++++++++------------ js/gamutable.js | 20 +++++++++-- 3 files changed, 76 insertions(+), 25 deletions(-) diff --git a/inclure/gamutable.html b/inclure/gamutable.html index 1b69e00..27a5450 100644 --- a/inclure/gamutable.html +++ b/inclure/gamutable.html @@ -9,6 +9,7 @@ champcsv="#ENV{champcsv,html}" delimitercsv="#ENV{delimitercsv,','}" namecsv="#ENV{namecsv,export.csv}" + vuebloc="#ENV{vuebloc}" url_sort_asc="#ENV{sort_asc,#GET{sort_asc}}" url_sort_desc="#ENV{sort_desc,#GET{sort_desc}}" ref="montableau" diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index f516db2..c449692 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -174,6 +174,10 @@ let monTableau = { url_sort_desc: { type: String, }, + vueblocdefaut: { + type: String, + default: 'tableau', + }, }, data: function () { return { @@ -192,6 +196,7 @@ let monTableau = { champ_search: 'html', chargement: true, nameLocalStorage: this.calculer_nameLocalStorage(), + quelleVue: this.vueblocdefaut, }; }, mounted() { @@ -380,6 +385,17 @@ let monTableau = { $csv = [[...$header], ...$tableau]; exporterCSV($csv, this.delimitercsv, this.namecsv); }, + replaceBloc(ligne) { + let html = this.vuebloc; + console.log(ligne); + Object.keys(ligne).forEach((key) => { + html = html.replace(`@@${key}@@`, ligne[key]); + }); + return html; + }, + changerVue(vue) { + this.quelleVue = vue; + }, }, template: `
@@ -388,7 +404,23 @@ let monTableau = { - + + + + + + - Mise à jour de la base de donnée + + Mise à jour de la base de donnée + - - - Base de données synchronisée + +
- +
+
+
+
+
- - +
-
-
-
- - - - - - - - - -
-
+ + + + +
+
-
{{tableau.length}} / {{table.length}} éléments
+
{{tableau.length}} éléments
diff --git a/js/gamutable.js b/js/gamutable.js index 7ae8ec2..14ae3a4 100644 --- a/js/gamutable.js +++ b/js/gamutable.js @@ -221,6 +221,10 @@ var monTableau = { }, url_sort_desc: { type: String + }, + vueblocdefaut: { + type: String, + default: 'tableau' } }, data: function data() { @@ -239,7 +243,8 @@ var monTableau = { selectTr: [], champ_search: 'html', chargement: true, - nameLocalStorage: this.calculer_nameLocalStorage() + nameLocalStorage: this.calculer_nameLocalStorage(), + quelleVue: this.vueblocdefaut }; }, mounted: function mounted() { @@ -456,9 +461,20 @@ var monTableau = { }, []); $csv = [[].concat($header)].concat(_toConsumableArray($tableau)); exporterCSV($csv, this.delimitercsv, this.namecsv); + }, + replaceBloc: function replaceBloc(ligne) { + var html = this.vuebloc; + console.log(ligne); + Object.keys(ligne).forEach(function (key) { + html = html.replace("@@".concat(key, "@@"), ligne[key]); + }); + return html; + }, + changerVue: function changerVue(vue) { + this.quelleVue = vue; } }, - template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tBase de donn\xE9es synchronis\xE9e\n\t\t\t\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} / {{table.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" + template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" }; var gamuTable = { components: { From 3f98e272d935a23797fe086ede2d021d3c529c55 Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 21 Oct 2020 16:06:29 +0200 Subject: [PATCH 02/11] vue bloc OK, chargement ajax du bloc texte html --- css/gamutable.css | 14 ++++++++++ css/gamutable.css.map | 2 +- css/gamutable.scss | 11 ++++++++ inclure/gamutable.html | 2 +- js/gamutable.es6.js | 23 ++++++++++++++--- js/gamutable.js | 58 ++++++++++++++++++++++++++++-------------- 6 files changed, 86 insertions(+), 24 deletions(-) diff --git a/css/gamutable.css b/css/gamutable.css index 90ed81e..1423dbf 100644 --- a/css/gamutable.css +++ b/css/gamutable.css @@ -66,4 +66,18 @@ td.icone i { font-size: 1.8rem; } +.vueBlocs { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.vueBlocs-unbloc { + width: 23%; + border: 1px solid #cecece; + margin-bottom: 1rem; + margin-right: 1rem; +} + /*# sourceMappingURL=gamutable.css.map */ diff --git a/css/gamutable.css.map b/css/gamutable.css.map index b57b998..a25e7ea 100644 --- a/css/gamutable.css.map +++ b/css/gamutable.css.map @@ -1 +1 @@ -{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADCA;EACC,eAAe;ACEhB;;ADHA;EAGE,oBAAa;EAAb,aAAa;ACIf;;ADPA;EAME,oBAAY;MAAZ,YAAY;ACKd;;ADXA;EASE,YAAY;EACZ,WAAW;ACMb;;ADhBA;EAcE,eAAe;EACf,aAAa;ACMf;;ADrBA;EAkBE,UAAU;ACOZ;;ADJA;EACC,0CAA0C;ACO3C;;ADJA;EACC,eAAe;ACOhB;;ADJA;EACC,WAAW;EACX,kBAAkB;ACOnB;;ADLA;EACC,cAAA;ACQD;;ADLA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACQnB;;ADNA;EACC,iBAAiB;ACSlB","file":"gamutable.css","sourcesContent":[".gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\ntd.icone {\n\t/*padding: 0;*/\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n",".gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone {\n /*padding: 0;*/\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADCA;EACC,eAAe;ACEhB;;ADHA;EAGE,oBAAa;EAAb,aAAa;ACIf;;ADPA;EAME,oBAAY;MAAZ,YAAY;ACKd;;ADXA;EASE,YAAY;EACZ,WAAW;ACMb;;ADhBA;EAcE,eAAe;EACf,aAAa;ACMf;;ADrBA;EAkBE,UAAU;ACOZ;;ADJA;EACC,0CAA0C;ACO3C;;ADJA;EACC,eAAe;ACOhB;;ADJA;EACC,WAAW;EACX,kBAAkB;ACOnB;;ADLA;EACC,cAAA;ACQD;;ADLA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACQnB;;ADNA;EACC,iBAAiB;ACSlB;;ADNA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACShB;;ADPA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACUnB","file":"gamutable.css","sourcesContent":[".gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\ntd.icone {\n\t/*padding: 0;*/\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone {\n /*padding: 0;*/\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]} \ No newline at end of file diff --git a/css/gamutable.scss b/css/gamutable.scss index bea9f23..44c95af 100644 --- a/css/gamutable.scss +++ b/css/gamutable.scss @@ -52,3 +52,14 @@ td.icone > * { td.icone i { font-size: 1.8rem; } + +.vueBlocs { + display: flex; + flex-wrap: wrap; +} +.vueBlocs-unbloc { + width: 23%; + border: 1px solid #cecece; + margin-bottom: 1rem; + margin-right: 1rem; +} diff --git a/inclure/gamutable.html b/inclure/gamutable.html index 27a5450..0333d7b 100644 --- a/inclure/gamutable.html +++ b/inclure/gamutable.html @@ -9,7 +9,7 @@ champcsv="#ENV{champcsv,html}" delimitercsv="#ENV{delimitercsv,','}" namecsv="#ENV{namecsv,export.csv}" - vuebloc="#ENV{vuebloc}" + urlvuebloc="[(#ENV{vuebloc})]" url_sort_asc="#ENV{sort_asc,#GET{sort_asc}}" url_sort_desc="#ENV{sort_desc,#GET{sort_desc}}" ref="montableau" diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index c449692..fd9338b 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -146,7 +146,11 @@ function trouver_index(table, id) { }); return i; } - +String.fromHtmlEntities = function (string) { + return (string + '').replace(/&#\d+;/gm, function (s) { + return String.fromCharCode(s.match(/\d+/gm)[0]); + }); +}; let monTableau = { props: { tparpage: { @@ -174,6 +178,9 @@ let monTableau = { url_sort_desc: { type: String, }, + urlvuebloc: { + type: String, + }, vueblocdefaut: { type: String, default: 'tableau', @@ -197,10 +204,19 @@ let monTableau = { chargement: true, nameLocalStorage: this.calculer_nameLocalStorage(), quelleVue: this.vueblocdefaut, + vuebloc: '', }; }, mounted() { this.chargerJson(); + if (this.urlvuebloc) { + fetch(this.urlvuebloc) + .then((response) => response.text()) + .then((data) => { + console.log(data); + this.vuebloc = data; + }); + } }, computed: { tableau: function () { @@ -387,7 +403,6 @@ let monTableau = { }, replaceBloc(ligne) { let html = this.vuebloc; - console.log(ligne); Object.keys(ligne).forEach((key) => { html = html.replace(`@@${key}@@`, ligne[key]); }); @@ -412,12 +427,14 @@ let monTableau = { @@ -439,7 +456,7 @@ let monTableau = {
-
0) { if (data.length > 0) { - var i = trouver_index(_this2.table, id); - _this2.table[i] = data[0]; + var i = trouver_index(_this3.table, id); + _this3.table[i] = data[0]; } else { - var _i2 = trouver_index(_this2.table, id); + var _i2 = trouver_index(_this3.table, id); console.log('index ', _i2); - _this2.table.splice(_i2, 1); + _this3.table.splice(_i2, 1); } } else { - _this2.table = data; + _this3.table = data; if (data[0] && data[0].search) { - _this2.champ_search = 'search'; + _this3.champ_search = 'search'; } } Vue.nextTick(function () { - _this2.chargement = false; + _this3.chargement = false; if ($_id > 0) { - _this2.selectLigne($_id, 'id'); + _this3.selectLigne($_id, 'id'); var _url = new URL(window.location); @@ -444,7 +465,7 @@ var monTableau = { } }, exportCSV: function exportCSV() { - var _this3 = this; + var _this4 = this; var $csv = []; var $header = []; @@ -454,7 +475,7 @@ var monTableau = { }); $tableau = this.tableau.reduce(function (acc, ligne) { var $uneLigne = []; - Object.values(ligne[_this3.champcsv]).forEach(function (l) { + Object.values(ligne[_this4.champcsv]).forEach(function (l) { return $uneLigne.push(l); }); return [].concat(_toConsumableArray(acc), [[].concat($uneLigne)]); @@ -464,7 +485,6 @@ var monTableau = { }, replaceBloc: function replaceBloc(ligne) { var html = this.vuebloc; - console.log(ligne); Object.keys(ligne).forEach(function (key) { html = html.replace("@@".concat(key, "@@"), ligne[key]); }); @@ -474,7 +494,7 @@ var monTableau = { this.quelleVue = vue; } }, - template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" + template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" }; var gamuTable = { components: { From 964e5e579923a87a4416a43406c5370338bae399 Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 21 Oct 2020 16:09:47 +0200 Subject: [PATCH 03/11] recup de la css des boutons actions --- css/gamutable.css | 16 ++++++++++++---- css/gamutable.css.map | 2 +- css/gamutable.scss | 14 +++++++++++--- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/css/gamutable.css b/css/gamutable.css index 1423dbf..4ac6872 100644 --- a/css/gamutable.css +++ b/css/gamutable.css @@ -51,10 +51,6 @@ th.icone { text-align: center; } -td.icone { - /*padding: 0;*/ -} - td.icone > * { width: 100%; display: block; @@ -62,6 +58,18 @@ td.icone > * { text-align: center; } +div.gamutable .url_action { + padding: 0.2rem; + display: inline-block; + background-color: #f5f5f5; + border: 1px solid #cecece; + border-radius: 5px; +} + +div.gamutable .url_action:hover { + background-color: #cecece; +} + td.icone i { font-size: 1.8rem; } diff --git a/css/gamutable.css.map b/css/gamutable.css.map index a25e7ea..7fd0710 100644 --- a/css/gamutable.css.map +++ b/css/gamutable.css.map @@ -1 +1 @@ -{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADCA;EACC,eAAe;ACEhB;;ADHA;EAGE,oBAAa;EAAb,aAAa;ACIf;;ADPA;EAME,oBAAY;MAAZ,YAAY;ACKd;;ADXA;EASE,YAAY;EACZ,WAAW;ACMb;;ADhBA;EAcE,eAAe;EACf,aAAa;ACMf;;ADrBA;EAkBE,UAAU;ACOZ;;ADJA;EACC,0CAA0C;ACO3C;;ADJA;EACC,eAAe;ACOhB;;ADJA;EACC,WAAW;EACX,kBAAkB;ACOnB;;ADLA;EACC,cAAA;ACQD;;ADLA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACQnB;;ADNA;EACC,iBAAiB;ACSlB;;ADNA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACShB;;ADPA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACUnB","file":"gamutable.css","sourcesContent":[".gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\ntd.icone {\n\t/*padding: 0;*/\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone {\n /*padding: 0;*/\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADCA;EACC,eAAe;ACEhB;;ADHA;EAGE,oBAAa;EAAb,aAAa;ACIf;;ADPA;EAME,oBAAY;MAAZ,YAAY;ACKd;;ADXA;EASE,YAAY;EACZ,WAAW;ACMb;;ADhBA;EAcE,eAAe;EACf,aAAa;ACMf;;ADrBA;EAkBE,UAAU;ACOZ;;ADJA;EACC,0CAA0C;ACO3C;;ADJA;EACC,eAAe;ACOhB;;ADJA;EACC,WAAW;EACX,kBAAkB;ACOnB;;ADJA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACOnB;;ADJA;EACC,eAAe;EACf,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;ACOnB;;ADZA;EAOE,yBAAyB;ACS3B;;ADNA;EACC,iBAAiB;ACSlB;;ADNA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACShB;;ADPA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACUnB","file":"gamutable.css","sourcesContent":[".gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\n\ndiv.gamutable .url_action {\n\tpadding: 0.2rem;\n\tdisplay: inline-block;\n\tbackground-color: #f5f5f5;\n\tborder: 1px solid #cecece;\n\tborder-radius: 5px;\n\t&:hover {\n\t\tbackground-color: #cecece;\n\t}\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ndiv.gamutable .url_action {\n padding: 0.2rem;\n display: inline-block;\n background-color: #f5f5f5;\n border: 1px solid #cecece;\n border-radius: 5px;\n}\n\ndiv.gamutable .url_action:hover {\n background-color: #cecece;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]} \ No newline at end of file diff --git a/css/gamutable.scss b/css/gamutable.scss index 44c95af..bdefcc0 100644 --- a/css/gamutable.scss +++ b/css/gamutable.scss @@ -39,9 +39,6 @@ th.icone { width: 30px; text-align: center; } -td.icone { - /*padding: 0;*/ -} td.icone > * { width: 100%; @@ -49,6 +46,17 @@ td.icone > * { padding: 0.5rem; text-align: center; } + +div.gamutable .url_action { + padding: 0.2rem; + display: inline-block; + background-color: #f5f5f5; + border: 1px solid #cecece; + border-radius: 5px; + &:hover { + background-color: #cecece; + } +} td.icone i { font-size: 1.8rem; } From 6aa187ee1ed40b50084d852a801d66670aab48c3 Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 21 Oct 2020 16:14:14 +0200 Subject: [PATCH 04/11] alignement barre menu --- css/gamutable.css | 5 +++++ css/gamutable.css.map | 2 +- css/gamutable.scss | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/css/gamutable.css b/css/gamutable.css index 4ac6872..d3018e7 100644 --- a/css/gamutable.css +++ b/css/gamutable.css @@ -1,3 +1,8 @@ +.gamutable--surTable select, +.gamutable--surTable input { + margin-bottom: 0; +} + .gamutable--sousTable { display: -ms-flexbox; display: flex; diff --git a/css/gamutable.css.map b/css/gamutable.css.map index 7fd0710..4a74b28 100644 --- a/css/gamutable.css.map +++ b/css/gamutable.css.map @@ -1 +1 @@ -{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADCA;EACC,eAAe;ACEhB;;ADHA;EAGE,oBAAa;EAAb,aAAa;ACIf;;ADPA;EAME,oBAAY;MAAZ,YAAY;ACKd;;ADXA;EASE,YAAY;EACZ,WAAW;ACMb;;ADhBA;EAcE,eAAe;EACf,aAAa;ACMf;;ADrBA;EAkBE,UAAU;ACOZ;;ADJA;EACC,0CAA0C;ACO3C;;ADJA;EACC,eAAe;ACOhB;;ADJA;EACC,WAAW;EACX,kBAAkB;ACOnB;;ADJA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACOnB;;ADJA;EACC,eAAe;EACf,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;ACOnB;;ADZA;EAOE,yBAAyB;ACS3B;;ADNA;EACC,iBAAiB;ACSlB;;ADNA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACShB;;ADPA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACUnB","file":"gamutable.css","sourcesContent":[".gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\n\ndiv.gamutable .url_action {\n\tpadding: 0.2rem;\n\tdisplay: inline-block;\n\tbackground-color: #f5f5f5;\n\tborder: 1px solid #cecece;\n\tborder-radius: 5px;\n\t&:hover {\n\t\tbackground-color: #cecece;\n\t}\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ndiv.gamutable .url_action {\n padding: 0.2rem;\n display: inline-block;\n background-color: #f5f5f5;\n border: 1px solid #cecece;\n border-radius: 5px;\n}\n\ndiv.gamutable .url_action:hover {\n background-color: #cecece;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;;EAGE,gBAAgB;ACAlB;;ADGA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACA/B;;ADEA;EACC,oBAAa;EAAb,aAAa;ACCd;;ADEA;EACC,eAAe;ACChB;;ADFA;EAGE,oBAAa;EAAb,aAAa;ACGf;;ADNA;EAME,oBAAY;MAAZ,YAAY;ACId;;ADVA;EASE,YAAY;EACZ,WAAW;ACKb;;ADfA;EAcE,eAAe;EACf,aAAa;ACKf;;ADpBA;EAkBE,UAAU;ACMZ;;ADHA;EACC,0CAA0C;ACM3C;;ADHA;EACC,eAAe;ACMhB;;ADHA;EACC,WAAW;EACX,kBAAkB;ACMnB;;ADHA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACMnB;;ADHA;EACC,eAAe;EACf,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;ACMnB;;ADXA;EAOE,yBAAyB;ACQ3B;;ADLA;EACC,iBAAiB;ACQlB;;ADLA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACQhB;;ADNA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACSnB","file":"gamutable.css","sourcesContent":[".gamutable--surTable {\n\tselect,\n\tinput {\n\t\tmargin-bottom: 0;\n\t}\n}\n.gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n\n.gamutable table {\n\tfont-size: 1rem;\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\n\ndiv.gamutable .url_action {\n\tpadding: 0.2rem;\n\tdisplay: inline-block;\n\tbackground-color: #f5f5f5;\n\tborder: 1px solid #cecece;\n\tborder-radius: 5px;\n\t&:hover {\n\t\tbackground-color: #cecece;\n\t}\n}\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--surTable select,\n.gamutable--surTable input {\n margin-bottom: 0;\n}\n\n.gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable table {\n font-size: 1rem;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ndiv.gamutable .url_action {\n padding: 0.2rem;\n display: inline-block;\n background-color: #f5f5f5;\n border: 1px solid #cecece;\n border-radius: 5px;\n}\n\ndiv.gamutable .url_action:hover {\n background-color: #cecece;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]} \ No newline at end of file diff --git a/css/gamutable.scss b/css/gamutable.scss index bdefcc0..89963f4 100644 --- a/css/gamutable.scss +++ b/css/gamutable.scss @@ -1,3 +1,9 @@ +.gamutable--surTable { + select, + input { + margin-bottom: 0; + } +} .gamutable--sousTable { display: flex; justify-content: space-between; From 80fceaea0449f1a8d70728420e62be97eaba9dce Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 21 Oct 2020 16:17:58 +0200 Subject: [PATCH 05/11] maj de la doc --- README.md | 2 ++ inclure/gamutable.html | 2 +- js/gamutable.es6.js | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7648ea9..5f90fc4 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ Choisir entre la version minifiée de vuejs (sans le debug) ou la version de dev tparpage=[15,25,50,'Tous'], champcsv="search", delimitercsv=";", + urlvuebloc=spip.php?page=mon_bloc_type_html, + vueblocdefaut='bloc ou tableau', // par defaut tableau namecsv="souscripteurs.csv", url_sort_asc="#CHEMIN{...}" url_sort_desc="#CHEMIN{...}" diff --git a/inclure/gamutable.html b/inclure/gamutable.html index 0333d7b..9eb9516 100644 --- a/inclure/gamutable.html +++ b/inclure/gamutable.html @@ -9,7 +9,7 @@ champcsv="#ENV{champcsv,html}" delimitercsv="#ENV{delimitercsv,','}" namecsv="#ENV{namecsv,export.csv}" - urlvuebloc="[(#ENV{vuebloc})]" + urlvuebloc="[(#ENV{urlvuebloc})]" url_sort_asc="#ENV{sort_asc,#GET{sort_asc}}" url_sort_desc="#ENV{sort_desc,#GET{sort_desc}}" ref="montableau" diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index fd9338b..457df99 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -213,7 +213,6 @@ let monTableau = { fetch(this.urlvuebloc) .then((response) => response.text()) .then((data) => { - console.log(data); this.vuebloc = data; }); } From 017391af7c472480807a82aad24b711bdceba47f Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Oct 2020 22:04:49 +0100 Subject: [PATCH 06/11] maj de vuejs --- js/vue.js | 151 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 56 deletions(-) diff --git a/js/vue.js b/js/vue.js index 0bc15a4..9cab498 100644 --- a/js/vue.js +++ b/js/vue.js @@ -252,7 +252,7 @@ var Vue = (function (exports) { const EMPTY_OBJ = Object.freeze({}) ; - const EMPTY_ARR = []; + const EMPTY_ARR = Object.freeze([]) ; const NOOP = () => { }; /** * Always return false. @@ -292,7 +292,9 @@ var Vue = (function (exports) { key !== 'NaN' && key[0] !== '-' && '' + parseInt(key, 10) === key; - const isReservedProp = /*#__PURE__*/ makeMap('key,ref,' + + const isReservedProp = /*#__PURE__*/ makeMap( + // the leading comma is intentional so empty string "" is also included + ',key,ref,' + 'onVnodeBeforeMount,onVnodeMounted,' + 'onVnodeBeforeUpdate,onVnodeUpdated,' + 'onVnodeBeforeUnmount,onVnodeUnmounted'); @@ -314,15 +316,15 @@ var Vue = (function (exports) { /** * @private */ - const hyphenate = cacheStringFunction((str) => { - return str.replace(hyphenateRE, '-$1').toLowerCase(); - }); + const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase()); /** * @private */ - const capitalize = cacheStringFunction((str) => { - return str.charAt(0).toUpperCase() + str.slice(1); - }); + const capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1)); + /** + * @private + */ + const toHandlerKey = cacheStringFunction((str) => (str ? `on${capitalize(str)}` : ``)); // compare whether a value has changed, accounting for NaN. const hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue); const invokeArrayFns = (fns, arg) => { @@ -667,7 +669,7 @@ var Vue = (function (exports) { return result; } function ownKeys(target) { - track(target, "iterate" /* ITERATE */, ITERATE_KEY); + track(target, "iterate" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY); return Reflect.ownKeys(target); } const mutableHandlers = { @@ -1739,21 +1741,21 @@ var Vue = (function (exports) { exports.devtools.emit("component:emit" /* COMPONENT_EMIT */, component.appContext.app, component, event, params); } - function emit(instance, event, ...args) { + function emit(instance, event, ...rawArgs) { const props = instance.vnode.props || EMPTY_OBJ; { const { emitsOptions, propsOptions: [propsOptions] } = instance; if (emitsOptions) { if (!(event in emitsOptions)) { - if (!propsOptions || !(`on` + capitalize(event) in propsOptions)) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { warn(`Component emitted event "${event}" but it is neither declared in ` + - `the emits option nor as an "on${capitalize(event)}" prop.`); + `the emits option nor as an "${toHandlerKey(event)}" prop.`); } } else { const validator = emitsOptions[event]; if (isFunction(validator)) { - const isValid = validator(...args); + const isValid = validator(...rawArgs); if (!isValid) { warn(`Invalid event arguments: event validation failed for event "${event}".`); } @@ -1761,12 +1763,26 @@ var Vue = (function (exports) { } } } + let args = rawArgs; + const isModelListener = event.startsWith('update:'); + // for v-model update:xxx events, apply modifiers on args + const modelArg = isModelListener && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map(a => a.trim()); + } + else if (number) { + args = rawArgs.map(toNumber); + } + } { devtoolsComponentEmit(instance, event, args); } { const lowerCaseEvent = event.toLowerCase(); - if (lowerCaseEvent !== event && props[`on` + capitalize(lowerCaseEvent)]) { + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { warn(`Event "${lowerCaseEvent}" is emitted in component ` + `${formatComponentName(instance, instance.type)} but the handler is registered for "${event}". ` + `Note that HTML attributes are case-insensitive and you cannot use ` + @@ -1775,25 +1791,26 @@ var Vue = (function (exports) { } } // convert handler name to camelCase. See issue #2249 - let handlerName = `on${capitalize(camelize(event))}`; + let handlerName = toHandlerKey(camelize(event)); let handler = props[handlerName]; // for v-model update:xxx events, also trigger kebab-case equivalent // for props passed via kebab-case - if (!handler && event.startsWith('update:')) { - handlerName = `on${capitalize(hyphenate(event))}`; + if (!handler && isModelListener) { + handlerName = toHandlerKey(hyphenate(event)); handler = props[handlerName]; } - if (!handler) { - handler = props[handlerName + `Once`]; + if (handler) { + callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { if (!instance.emitted) { (instance.emitted = {})[handlerName] = true; } else if (instance.emitted[handlerName]) { return; } - } - if (handler) { - callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args); + callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args); } } function normalizeEmitsOptions(comp, appContext, asMixin = false) { @@ -2003,11 +2020,13 @@ var Vue = (function (exports) { const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; const setRoot = (updatedRoot) => { rawChildren[index] = updatedRoot; - if (dynamicIndex > -1) { - dynamicChildren[dynamicIndex] = updatedRoot; - } - else if (dynamicChildren && updatedRoot.patchFlag > 0) { - dynamicChildren.push(updatedRoot); + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } + else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } } }; return [normalizeVNode(childRoot), setRoot]; @@ -2145,7 +2164,7 @@ var Vue = (function (exports) { mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, rendererInternals); } else { - patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, optimized, rendererInternals); + patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, rendererInternals); } }, hydrate: hydrateSuspense, @@ -2159,13 +2178,13 @@ var Vue = (function (exports) { const hiddenContainer = createElement('div'); const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, optimized, rendererInternals)); // start mounting the content subtree in an off-dom container - patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, optimized); + patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG); // now check if we have encountered any async deps if (suspense.deps > 0) { // has async // mount the fallback tree patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG, optimized); + isSVG); setActiveBranch(suspense, vnode.ssFallback); } else { @@ -2173,7 +2192,7 @@ var Vue = (function (exports) { suspense.resolve(); } } - function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, optimized, { p: patch, um: unmount, o: { createElement } }) { + function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, { p: patch, um: unmount, o: { createElement } }) { const suspense = (n2.suspense = n1.suspense); suspense.vnode = n2; n2.el = n1.el; @@ -2184,13 +2203,13 @@ var Vue = (function (exports) { suspense.pendingBranch = newBranch; if (isSameVNodeType(newBranch, pendingBranch)) { // same root type but content may have changed. - patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, optimized); + patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); if (suspense.deps <= 0) { suspense.resolve(); } else if (isInFallback) { patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG, optimized); + isSVG); setActiveBranch(suspense, newFallback); } } @@ -2216,25 +2235,25 @@ var Vue = (function (exports) { suspense.hiddenContainer = createElement('div'); if (isInFallback) { // already in fallback state - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, optimized); + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); if (suspense.deps <= 0) { suspense.resolve(); } else { patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG, optimized); + isSVG); setActiveBranch(suspense, newFallback); } } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { // toggled "back" to current active branch - patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, optimized); + patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG); // force resolve suspense.resolve(true); } else { // switched to a 3rd branch - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, optimized); + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); if (suspense.deps <= 0) { suspense.resolve(); } @@ -2244,7 +2263,7 @@ var Vue = (function (exports) { else { if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { // root did not change, just normal patch - patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, optimized); + patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG); setActiveBranch(suspense, newBranch); } else { @@ -2257,7 +2276,7 @@ var Vue = (function (exports) { // mount pending branch in off-dom container suspense.pendingBranch = newBranch; suspense.pendingId++; - patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, optimized); + patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG); if (suspense.deps <= 0) { // incoming branch has no async deps, resolve now. suspense.resolve(); @@ -2293,7 +2312,6 @@ var Vue = (function (exports) { parent, parentComponent, isSVG, - optimized, container, hiddenContainer, anchor, @@ -2376,7 +2394,7 @@ var Vue = (function (exports) { if (!suspense.pendingBranch) { return; } - const { vnode, activeBranch, parentComponent, container, isSVG, optimized } = suspense; + const { vnode, activeBranch, parentComponent, container, isSVG } = suspense; // invoke @fallback event const onFallback = vnode.props && vnode.props.onFallback; if (isFunction(onFallback)) { @@ -2389,7 +2407,7 @@ var Vue = (function (exports) { } // mount the fallback tree patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context - isSVG, optimized); + isSVG); setActiveBranch(suspense, fallbackVNode); }; const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in'; @@ -3058,7 +3076,7 @@ var Vue = (function (exports) { return wrappedHook; } else { - const apiName = `on${capitalize(ErrorTypeStrings[type].replace(/ hook$/, ''))}`; + const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, '')); warn(`${apiName} is called when there is no active component instance to be ` + `associated with. ` + `Lifecycle injection APIs can only be used during execution of setup().` + @@ -4984,6 +5002,7 @@ var Vue = (function (exports) { const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => { if (oldProps !== newProps) { for (const key in newProps) { + // empty string is not valid prop if (isReservedProp(key)) continue; const next = newProps[key]; @@ -5623,7 +5642,10 @@ var Vue = (function (exports) { // fast path for block nodes: only need to unmount dynamic children. unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true); } - else if (!optimized && shapeFlag & 16 /* ARRAY_CHILDREN */) { + else if ((type === Fragment && + (patchFlag & 128 /* KEYED_FRAGMENT */ || + patchFlag & 256 /* UNKEYED_FRAGMENT */)) || + (!optimized && shapeFlag & 16 /* ARRAY_CHILDREN */)) { unmountChildren(children, parentComponent, parentSuspense); } // an unmounted teleport should always remove its children if not disabled @@ -6518,7 +6540,7 @@ var Vue = (function (exports) { : incoming; } } - else { + else if (key !== '') { ret[key] = toMerge[key]; } } @@ -6552,8 +6574,13 @@ var Vue = (function (exports) { // a functional component const instance = currentInstance || currentRenderingInstance; if (instance) { - const provides = instance.provides; - if (key in provides) { + // #2400 + // to support `app.use` plugins, + // fallback to appContext's `provides` if the intance is at root + const provides = instance.parent == null + ? instance.vnode.appContext && instance.vnode.appContext.provides + : instance.parent.provides; + if (provides && key in provides) { // TS doesn't allow symbol as index type return provides[key]; } @@ -7317,7 +7344,7 @@ var Vue = (function (exports) { } } // 0. create render proxy property access cache - instance.accessCache = {}; + instance.accessCache = Object.create(null); // 1. create public instance / render proxy // also mark it raw so it's never observed instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); @@ -7913,7 +7940,7 @@ var Vue = (function (exports) { return ret; } for (const key in obj) { - ret[`on${capitalize(key)}`] = obj[key]; + ret[toHandlerKey(key)] = obj[key]; } return ret; } @@ -7940,7 +7967,7 @@ var Vue = (function (exports) { } // Core API ------------------------------------------------------------------ - const version = "3.0.1"; + const version = "3.0.2"; /** * SSR utils for \@vue/server-renderer. Only exposed in cjs builds. * @internal @@ -9276,6 +9303,7 @@ var Vue = (function (exports) { const TO_HANDLERS = Symbol( `toHandlers` ); const CAMELIZE = Symbol( `camelize` ); const CAPITALIZE = Symbol( `capitalize` ); + const TO_HANDLER_KEY = Symbol( `toHandlerKey` ); const SET_BLOCK_TRACKING = Symbol( `setBlockTracking` ); const PUSH_SCOPE_ID = Symbol( `pushScopeId` ); const POP_SCOPE_ID = Symbol( `popScopeId` ); @@ -9308,6 +9336,7 @@ var Vue = (function (exports) { [TO_HANDLERS]: `toHandlers`, [CAMELIZE]: `camelize`, [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, [SET_BLOCK_TRACKING]: `setBlockTracking`, [PUSH_SCOPE_ID]: `pushScopeId`, [POP_SCOPE_ID]: `popScopeId`, @@ -9464,7 +9493,7 @@ var Vue = (function (exports) { } const nonIdentifierRE = /^\d|[^\$\w]/; const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); - const memberExpRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[[^\]]+\])*$/; + const memberExpRE = /^[A-Za-z_$][\w$]*(?:\s*\.\s*[A-Za-z_$][\w$]*|\[[^\]]+\])*$/; const isMemberExpression = (path) => { if (!path) return false; @@ -12481,12 +12510,12 @@ var Vue = (function (exports) { if (arg.isStatic) { const rawName = arg.content; // for all event listeners, auto convert it to camelCase. See issue #2249 - const normalizedName = capitalize(camelize(rawName)); - eventName = createSimpleExpression(`on${normalizedName}`, true, arg.loc); + eventName = createSimpleExpression(toHandlerKey(camelize(rawName)), true, arg.loc); } else { + // #2388 eventName = createCompoundExpression([ - `"on" + ${context.helperString(CAPITALIZE)}(`, + `${context.helperString(TO_HANDLER_KEY)}(`, arg, `)` ]); @@ -12495,7 +12524,7 @@ var Vue = (function (exports) { else { // already a compound expression. eventName = arg; - eventName.children.unshift(`"on" + ${context.helperString(CAPITALIZE)}(`); + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); eventName.children.push(`)`); } // handler processing @@ -12544,6 +12573,13 @@ var Vue = (function (exports) { const transformBind = (dir, node, context) => { const { exp, modifiers, loc } = dir; const arg = dir.arg; + if (arg.type !== 4 /* SIMPLE_EXPRESSION */) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } + else if (!arg.isStatic) { + arg.content = `${arg.content} || ""`; + } // .prop is no longer necessary due to new patch behavior // .sync is replaced by v-model:arg if (modifiers.includes('camel')) { @@ -12935,7 +12971,9 @@ var Vue = (function (exports) { } return { props: [ - createObjectProperty(createSimpleExpression(`textContent`, true, loc), exp || createSimpleExpression('', true)) + createObjectProperty(createSimpleExpression(`textContent`, true), exp + ? createCallExpression(context.helperString(TO_DISPLAY_STRING), [exp], loc) + : createSimpleExpression('', true)) ] }; }; @@ -13337,6 +13375,7 @@ var Vue = (function (exports) { exports.ssrContextKey = ssrContextKey; exports.ssrUtils = ssrUtils; exports.toDisplayString = toDisplayString; + exports.toHandlerKey = toHandlerKey; exports.toHandlers = toHandlers; exports.toRaw = toRaw; exports.toRef = toRef; From 90f96a5a0d645d3466ea929366c28519a5838948 Mon Sep 17 00:00:00 2001 From: tofulm Date: Fri, 30 Oct 2020 09:39:38 +0100 Subject: [PATCH 07/11] =?UTF-8?q?on=20passe=20en=20data-ajaxreload=20le=20?= =?UTF-8?q?nom=20du=20bloc=20=C3=A0=20recharger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/gamutable.es6.js | 2 ++ js/gamutable.js | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index 457df99..9a70f8c 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -12,6 +12,8 @@ jQuery(function () { } let url = $(this).attr('href'); let id = $(this).data('id'); + let nomBlocAjaxReload = $(this).data('ajaxreload'); + console.log('nom ', nomBlocAjaxReload); console.time('Chargement de VueJs APRES Ajax'); $.ajax({ url: url, diff --git a/js/gamutable.js b/js/gamutable.js index f9951dc..28ec415 100644 --- a/js/gamutable.js +++ b/js/gamutable.js @@ -36,6 +36,8 @@ jQuery(function () { var url = $(this).attr('href'); var id = $(this).data('id'); + var nomBlocAjaxReload = $(this).data('ajaxreload'); + console.log('nom ', nomBlocAjaxReload); console.time('Chargement de VueJs APRES Ajax'); $.ajax({ url: url, @@ -266,7 +268,6 @@ var monTableau = { fetch(this.urlvuebloc).then(function (response) { return response.text(); }).then(function (data) { - console.log(data); _this.vuebloc = data; }); } From ab8a895db0c195bd11cf60341071fb9886ca3896 Mon Sep 17 00:00:00 2001 From: tofulm Date: Fri, 30 Oct 2020 10:41:20 +0100 Subject: [PATCH 08/11] si pas de nom de csv, on n'affiche pas le bouton d'export --- inclure/gamutable.html | 2 +- js/gamutable.es6.js | 2 +- js/gamutable.js | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/inclure/gamutable.html b/inclure/gamutable.html index 9eb9516..0ed28a4 100644 --- a/inclure/gamutable.html +++ b/inclure/gamutable.html @@ -8,7 +8,7 @@ :tparpage="#ENV{tparpage, [10, 20, 50, 'Tous']}" champcsv="#ENV{champcsv,html}" delimitercsv="#ENV{delimitercsv,','}" - namecsv="#ENV{namecsv,export.csv}" + namecsv="#ENV{namecsv}" urlvuebloc="[(#ENV{urlvuebloc})]" url_sort_asc="#ENV{sort_asc,#GET{sort_asc}}" url_sort_desc="#ENV{sort_desc,#GET{sort_desc}}" diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index 9a70f8c..c06b032 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -13,7 +13,6 @@ jQuery(function () { let url = $(this).attr('href'); let id = $(this).data('id'); let nomBlocAjaxReload = $(this).data('ajaxreload'); - console.log('nom ', nomBlocAjaxReload); console.time('Chargement de VueJs APRES Ajax'); $.ajax({ url: url, @@ -440,6 +439,7 @@ let monTableau = { \n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" + template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" }; var gamuTable = { components: { From f5c657bc79fec0cff573bededd42908e699f806b Mon Sep 17 00:00:00 2001 From: tofulm Date: Fri, 30 Oct 2020 22:46:39 +0100 Subject: [PATCH 09/11] =?UTF-8?q?on=20recupere=20le=20nbr=20max=20d'=C3=A9?= =?UTF-8?q?l=C3=A9ment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/gamutable.es6.js | 2 +- js/gamutable.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/gamutable.es6.js b/js/gamutable.es6.js index c06b032..8c3d8ea 100644 --- a/js/gamutable.es6.js +++ b/js/gamutable.es6.js @@ -484,7 +484,7 @@ let monTableau = {
-
{{tableau.length}} éléments
+
{{tableau.length}} / {{table.length}} éléments
diff --git a/js/gamutable.js b/js/gamutable.js index 91847ce..baba7fc 100644 --- a/js/gamutable.js +++ b/js/gamutable.js @@ -494,7 +494,7 @@ var monTableau = { this.quelleVue = vue; } }, - template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" + template: "\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMise \xE0 jour de la base de donn\xE9e\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t
\n\t\t\t
{{tableau.length}} / {{table.length}} \xE9l\xE9ments
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
" }; var gamuTable = { components: { From a05c26c6ed27fc49033444003d54470eb9de9718 Mon Sep 17 00:00:00 2001 From: tofulm Date: Tue, 3 Nov 2020 17:34:56 +0100 Subject: [PATCH 10/11] permet d'avoir 2 tableaux l'un sous l'autre --- inclure/gamutable.html | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/inclure/gamutable.html b/inclure/gamutable.html index 0ed28a4..c1e3df6 100644 --- a/inclure/gamutable.html +++ b/inclure/gamutable.html @@ -3,17 +3,35 @@ [(#SET{sort_desc,[(#CHEMIN{img/sprite_gamutable.svg})#sort_desc]})]
- +
+ [(#ENV{titreGamutableUn})] + +
+ +
+ [(#ENV{titreGamutableDeux})] + +