view client/src/application/stores/application.js @ 781:f6a6ce90a1b5

client: improve search * Make result entries clickable and catch the event. * Sort methods: in code.
author Bernhard Reiter <bernhard@intevation.de>
date Wed, 26 Sep 2018 14:35:55 +0200
parents 83081ba6c9c1
children 68a39aea942a
line wrap: on
line source

const defaultCollapseState = true;

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

const DRAWMODES = {
  LINE: "LineString"
};

const Application = {
  namespaced: true,
  state: {
    appTitle: process.env.VUE_APP_TITLE,
    secondaryLogo: process.env.VUE_APP_SECONDARY_LOGO_URL,
    sidebar: {
      iscollapsed: defaultCollapseState
    },
    splitsceen: initializeSplitScreen(),
    usermenu: {
      iscollapsed: defaultCollapseState
    },
    countries: ["AT", "SK", "HU", "HR", "RS", "BiH", "BG", "RO", "UA"],
    drawMode: null
  },
  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;
    },
    drawMode: state => {
      return state.drawMode;
    }
  },
  mutations: {
    toggleSidebar: state => {
      state.sidebar.iscollapsed = !state.sidebar.iscollapsed;
    },
    toggleUserMenu: state => {
      state.usermenu.iscollapsed = !state.usermenu.iscollapsed;
    },
    toggleSplitScreen: state => {
      state.splitsceen.active = !state.splitsceen.active;
    },
    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();
    },
    toggleDrawModeLine: state => {
      if (state.drawMode && state.drawMode === DRAWMODES.LINE) {
        state.drawMode = null;
        return;
      }
      state.drawMode = DRAWMODES.LINE;
    }
  },
  actions: {}
};

export default Application;