Mercurial > gemma
changeset 2600:6e6709bab5c4
overview2 WIP
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 12 Mar 2019 14:22:42 +0100 |
parents | 61aba7e78d3a |
children | b9523d876d01 |
files | client/src/store/imports.js |
diffstat | 1 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/store/imports.js Tue Mar 12 14:06:22 2019 +0100 +++ b/client/src/store/imports.js Tue Mar 12 14:22:42 2019 +0100 @@ -34,6 +34,7 @@ stretches: [], imports: [], staging: [], + reviewed: [], importToReview: null, stagingVisible: true, logsVisible: true, @@ -79,9 +80,7 @@ state: init(), getters: { toCommit: state => { - return state.imports.filter(x => { - return x.status && x.status !== STATES.NEEDSAPPROVAL; - }); + return state.reviewed; }, processedReviews: state => { return state.staging @@ -105,8 +104,20 @@ state.stretches = stretches; }, setImports: (state, imports) => { + const lookUp = state.reviewed.reduce((o, n) => { + const { id, status } = n; + o[id] = status; + return o; + }, {}); imports = imports.map(x => { - if (x.state === "pending") x["status"] = STATES.NEEDSAPPROVAL; + if (x.state === "pending") { + const reviewState = lookUp[x.id]; + if (reviewState) { + x.status = reviewState; + } else { + x.status = STATES.NEEDSAPPROVAL; + } + } return x; }); state.imports = imports; @@ -153,8 +164,10 @@ }); if (stagedResult.status === newStatus) { stagedResult.status = STATES.NEEDSAPPROVAL; + state.reviewed = state.reviewed.filter(x => x.id !== stagedResult.id); } else { stagedResult.status = newStatus; + state.reviewed.push({ id: stagedResult.id, status: newStatus }); } }, toggleApproval: (state, change) => {