Mercurial > gemma
changeset 2615:7025d082c115
client: importoverview2: fixed counter in commit button
The counter was based on the length of the state.reviewed array. This array was filled with
duplicate entries when you toggle an import between approved and rejected.
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Wed, 13 Mar 2019 13:08:36 +0100 |
parents | 6691bf76af1c |
children | be60888e7c43 |
files | client/src/components/importoverview/ImportOverviewAlt.vue client/src/store/imports.js |
diffstat | 2 files changed, 11 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/importoverview/ImportOverviewAlt.vue Wed Mar 13 12:45:06 2019 +0100 +++ b/client/src/components/importoverview/ImportOverviewAlt.vue Wed Mar 13 13:08:36 2019 +0100 @@ -11,7 +11,7 @@ <Filters></Filters> <div> <button :class="commitStyle"> - <translate>Commit</translate> {{ toCommit.length }} + <translate>Commit</translate> {{ reviewed.length }} </button> </div> </div> @@ -42,7 +42,7 @@ */ import { displayError } from "@/lib/errors.js"; -import { mapState, mapGetters } from "vuex"; +import { mapState } from "vuex"; export default { name: "importoverviewalt", @@ -51,14 +51,13 @@ LogEntry: () => import("./LogEntry.vue") }, computed: { - ...mapState("imports", ["imports", "filters"]), - ...mapGetters("imports", ["toCommit"]), + ...mapState("imports", ["imports", "filters", "reviewed"]), commitStyle() { return { btn: true, "btn-sm": true, - "btn-light": this.toCommit.length == 0, - "btn-info": this.toCommit.length > 0 + "btn-light": this.reviewed.length == 0, + "btn-info": this.reviewed.length > 0 }; } },
--- a/client/src/store/imports.js Wed Mar 13 12:45:06 2019 +0100 +++ b/client/src/store/imports.js Wed Mar 13 13:08:36 2019 +0100 @@ -77,9 +77,6 @@ namespaced: true, state: init(), getters: { - toCommit: state => { - return state.reviewed; - }, processedReviews: state => { return state.staging .filter(x => x.status !== STATES.NEEDSAPPROVAL) @@ -165,7 +162,12 @@ state.reviewed = state.reviewed.filter(x => x.id !== stagedResult.id); } else { stagedResult.status = newStatus; - state.reviewed.push({ id: stagedResult.id, status: newStatus }); + let index = state.reviewed.findIndex(r => r.id === id); + if (index !== -1) { + state.reviewed[index].status = newStatus; + } else { + state.reviewed.push({ id: stagedResult.id, status: newStatus }); + } } }, toggleApproval: (state, change) => {