view client/src/store/application.js @ 1115:1b160eda22cf store-refactoring

moved drawMode to map store
author Markus Kottlaender <markus@intevation.de>
date Mon, 05 Nov 2018 14:05:01 +0100
parents 8d12056d602a
children d9e6a1f6f394
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>
 *   Markus Kottländer <markus.kottlaender@intevation.de>
 *   Bernhard E. Reiter <bernhard.reiter@intevation.de>
 */

import { version } from "../../package.json";

const defaultCollapseState = true;

const initializeSplitScreen = () => {
  return {
    active: false,
    mode: "v"
  };
};

export default {
  namespaced: true,
  state: {
    appTitle: process.env.VUE_APP_TITLE,
    secondaryLogo: process.env.VUE_APP_SECONDARY_LOGO_URL,
    sidebar: {
      iscollapsed: defaultCollapseState
    },
    bottlenecksCollapsed: true,
    splitsceen: initializeSplitScreen(),
    usermenu: {
      iscollapsed: defaultCollapseState
    },
    countries: ["AT", "SK", "HU", "HR", "RS", "BiH", "BG", "RO", "UA"],
    version
  },
  getters: {
    countries: state => {
      return state.countries;
    },
    sidebarCollapsed: state => {
      return state.sidebar.iscollapsed;
    },
    isUsermenuCollapsed: state => {
      return state.usermenu.iscollapsed;
    },
    appTitle: state => {
      return state.appTitle;
    },
    secondaryLogo: state => {
      return state.secondaryLogo;
    },
    isSplitscreen: state => {
      return state.splitsceen.active;
    },
    splitMode: state => {
      return state.splitsceen.mode;
    },
    versionStr: state => {
      // version number from package.json
      let versionStr = "v" + state.version;

      // hg revision
      if (
        process.env.VUE_APP_HGREV &&
        (state.version.includes("dev") ||
          state.version.includes("beta") ||
          state.version.includes("alpha"))
      )
        versionStr += " " + process.env.VUE_APP_HGREV;

      return versionStr;
    }
  },
  mutations: {
    toggleSidebar: state => {
      state.sidebar.iscollapsed = !state.sidebar.iscollapsed;
    },
    toggleBottlenecks: state => {
      state.bottlenecksCollapsed = !state.bottlenecksCollapsed;
    },
    toggleUserMenu: state => {
      state.usermenu.iscollapsed = !state.usermenu.iscollapsed;
    },
    toggleSplitScreen: state => {
      state.splitsceen.active = !state.splitsceen.active;
    },
    openSplitScreen: state => {
      state.splitsceen.active = true;
    },
    closeSplitScreen: state => {
      state.splitsceen.active = false;
    },
    resetSidebar: state => {
      state.sidebar.iscollapsed = defaultCollapseState;
    },
    collapseSidebar: state => {
      state.sidebar.iscollapsed = true;
    },
    resetUserMenu: state => {
      state.usermenu.iscollapsed = defaultCollapseState;
    },
    collapseUserMenu: state => {
      state.usermenu.iscollapsed = true;
    },
    resetSplitScreen: state => {
      state.splitsceen = initializeSplitScreen();
    }
  },
  actions: {}
};