comparison client/src/store/imports.js @ 2578:3ad81357a57c

overview2 WIP
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 11 Mar 2019 15:35:13 +0100
parents 522024fa06eb
children 5472a5be09c2
comparison
equal deleted inserted replaced
2577:fcb139bfa56b 2578:3ad81357a57c
22 NEEDSAPPROVAL: "pending", 22 NEEDSAPPROVAL: "pending",
23 APPROVED: "accepted", 23 APPROVED: "accepted",
24 REJECTED: "declined" 24 REJECTED: "declined"
25 }; 25 };
26 26
27 const NODETAILS = -1;
28 const NODIFF = -1;
29
27 // initial state 30 // initial state
28 const init = () => { 31 const init = () => {
29 return { 32 return {
33 filters: [],
30 stretches: [], 34 stretches: [],
31 imports: [], 35 imports: [],
32 staging: [], 36 staging: [],
33 importToReview: null, 37 importToReview: null,
34 stagingVisible: true, 38 stagingVisible: true,
35 logsVisible: true 39 logsVisible: true,
40 show: NODETAILS,
41 showAdditional: NODETAILS,
42 showLogs: NODETAILS,
43 showDiff: NODIFF
36 }; 44 };
37 }; 45 };
38 46
39 const getStretchFromWFS = filter => { 47 const getStretchFromWFS = filter => {
40 return new Promise((resolve, reject) => { 48 return new Promise((resolve, reject) => {
68 const imports = { 76 const imports = {
69 init, 77 init,
70 namespaced: true, 78 namespaced: true,
71 state: init(), 79 state: init(),
72 getters: { 80 getters: {
81 toCommit: state => {
82 return state.imports.filter(x => {
83 return x.status && x.status !== STATES.NEEDSAPPROVAL;
84 });
85 },
73 processedReviews: state => { 86 processedReviews: state => {
74 return state.staging 87 return state.staging
75 .filter(x => x.status !== STATES.NEEDSAPPROVAL) 88 .filter(x => x.status !== STATES.NEEDSAPPROVAL)
76 .map(r => { 89 .map(r => {
77 return { 90 return {
80 }; 93 };
81 }); 94 });
82 } 95 }
83 }, 96 },
84 mutations: { 97 mutations: {
98 setFilters: (state, filters) => {
99 state.filters = filters;
100 },
101 clearFilters: state => {
102 state.filters = [];
103 },
85 setStretches: (state, stretches) => { 104 setStretches: (state, stretches) => {
86 state.stretches = stretches; 105 state.stretches = stretches;
87 }, 106 },
88 setImports: (state, imports) => { 107 setImports: (state, imports) => {
108 imports = imports.map(x => {
109 if (x.state === "pending") x["status"] = STATES.NEEDSAPPROVAL;
110 return x;
111 });
89 state.imports = imports; 112 state.imports = imports;
90 }, 113 },
91 setStagingVisibility: (state, visibility) => { 114 setStagingVisibility: (state, visibility) => {
92 state.stagingVisible = visibility; 115 state.stagingVisible = visibility;
93 }, 116 },
165 return new Promise((resolve, reject) => { 188 return new Promise((resolve, reject) => {
166 HTTP.get("/imports" + queryParams, { 189 HTTP.get("/imports" + queryParams, {
167 headers: { "X-Gemma-Auth": localStorage.getItem("token") } 190 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
168 }) 191 })
169 .then(response => { 192 .then(response => {
170 commit("setImports", response.data.imports); 193 const { imports } = response.data;
194 commit("setImports", imports);
171 resolve(response); 195 resolve(response);
172 }) 196 })
173 .catch(error => { 197 .catch(error => {
174 reject(error); 198 reject(error);
175 }); 199 });