From 84768e5239a9b46f6a1e3a641add1786924e6e0d Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Mon, 3 Dec 2018 10:41:57 +0100 Subject: [PATCH] Feat: Tag filtering not on words --- config/config.yml | 5 ----- src/components/box.vue | 19 ++++++++++++++++--- src/store/modules/datas.js | 12 ++++++++++++ src/views/home.vue | 32 ++++++++++++++++++++++---------- 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/config/config.yml b/config/config.yml index 28de419..1ec66db 100644 --- a/config/config.yml +++ b/config/config.yml @@ -1,10 +1,5 @@ --- postes: - total: - name: Tout - variant: info - icon: file-invoice-dollar - cash: name: Cash variant: info diff --git a/src/components/box.vue b/src/components/box.vue index 2002a6f..6cd59b4 100644 --- a/src/components/box.vue +++ b/src/components/box.vue @@ -25,6 +25,11 @@ export default { ], data () { return { + default_poste: { + name: 'Tout', + variant: 'info', + icon: 'file-invoice-dollar' + } } }, computed: { @@ -32,15 +37,23 @@ export default { 'postes' ]), ...mapGetters('datas', [ - 'libelle_filter_rows' + 'tag_filter_rows' ]), poste () { - return this.postes[this.postename] + if (this.postename) { + return this.postes[this.postename] + } else { + return this.default_poste + } } }, methods: { filter_rows () { - return this.libelle_filter_rows(this.poste.words, this.poste.invert) + if (this.poste === this.default_poste) { + return this.tag_filter_rows([]) + } else { + return this.tag_filter_rows([this.poste.name]) + } }, total () { return Math.round( diff --git a/src/store/modules/datas.js b/src/store/modules/datas.js index c5ddf2a..080a90d 100644 --- a/src/store/modules/datas.js +++ b/src/store/modules/datas.js @@ -43,6 +43,18 @@ export default { return (new Date(x.Date) >= start) & (new Date(x.Date) < end) }) }, + tag_filter_rows: (state, getters) => (tags) => { + if (tags) { + return getters.date_filter_rows.filter(row => { + return tags.every(t => { + return row.tags.map(t => t.name.toLowerCase()) + .indexOf(t.toLowerCase()) > -1 + }) + }) + } else { + return getters.date_filter_rows + } + }, libelle_filter_rows: (state, getters) => (words, invert) => { if (!words) { return getters.date_filter_rows diff --git a/src/views/home.vue b/src/views/home.vue index 2e70986..a535a4c 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -15,15 +15,19 @@ - - - - + + + + +<<<<<<< HEAD +======= + +>>>>>>> Feat: Tag filtering not on words