Mercurial > gemma
view client/src/store/imports.js @ 1443:6b100f639178
removed blue borders from fairwayprofile and infobar
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Fri, 30 Nov 2018 13:20:26 +0100 |
parents | f4b3fb43b311 |
children | c89a18f8027d |
line wrap: on
line source
/* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Thomas Junk <thomas.junk@intevation.de> */ import { HTTP } from "../lib/http"; /* eslint-disable no-unused-vars */ /* eslint-disable no-unreachable */ const STATES = { NEEDSAPPROVAL: "NEEDSAPPROVAL", APPROVED: "APPROVED", REJECTED: "REJECTED" }; const SCHEDULES = { DAILY: "daily", MONTHLY: "monthly" }; // initial state const init = () => { return { imports: [], staging: [], schedules: [], importScheduleDetail: null, importScheduleDetailVisible: false }; }; const newImportScheduleDetail = () => { return { import: "", type: "", author: "", schedule: "", emailNotification: null }; }; const imports = { init, namespaced: true, state: init(), mutations: { clearImportScheduleDetail: state => { state.importScheduleDetail = newImportScheduleDetail(); }, deleteSchedule: (state, index) => { state.schedules.splice(index, 1); }, setImportScheduleDetailInvisible: state => { state.importScheduleDetailVisible = false; }, setImportScheduleDetailVisible: state => { state.importScheduleDetailVisible = true; }, setSchedules: (state, schedules) => { state.schedules = schedules; }, setImports: (state, imports) => { state.imports = imports; }, setStaging: (state, staging) => { const enriched = staging.map(x => { return { ...x, status: STATES.NEEDSAPPROVAL }; }); state.staging = enriched; }, toggleApproval: (state, change) => { const { id, newStatus } = change; const stagedResult = state.staging.find(e => { return e.id === id; }); if (stagedResult.status === newStatus) { stagedResult.status = STATES.NEEDSAPPROVAL; } else { stagedResult.status = newStatus; } } }, actions: { getSchedules({ commit }) { throw new Error("Not Implemented!"); return new Promise((resolve, reject) => { HTTP.get("/imports", { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setImports", response.data.imports); resolve(response); }) .catch(error => { reject(error); }); }); }, getImports({ commit }) { return new Promise((resolve, reject) => { HTTP.get("/imports", { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setImports", response.data.imports); resolve(response); }) .catch(error => { reject(error); }); }); }, getStaging({ commit }) { return new Promise((resolve, reject) => { HTTP.get("/imports?states=pending", { headers: { "X-Gemma-Auth": localStorage.getItem("token") } }) .then(response => { commit("setStaging", response.data.imports); resolve(response); }) .catch(error => { reject(error); }); }); } } }; export { imports, STATES, SCHEDULES };