Skip to content
Snippets Groups Projects
Select Git revision
  • e071116bbc7b49e86405eaed8904b6669e803843
  • main default
2 results

build_docker.bash

Blame
  • index.js 2.73 KiB
    // SPDX-License-Identifier: Apache-2.0
    
    import { createStore } from "vuex";
    import { ApiService } from "@/services/ApiService";
    import { collapseExpandTree } from "@/mixins/collapseExpandTree";
    
    const store = createStore({
      state: {
        treeData: {},
        toeList: {},
        toeHistory: {},
        treeDataListByStateId: [],
      },
      mutations: {
        SAVE_TREE_DATA(state, treeData) {
          state.treeData = treeData;
        },
        SAVE_TOE_LIST(state, toeList) {
          state.toeList = toeList;
        },
        SAVE_TOE_HISTORY(state, toeHistory) {
          state.toeHistory = toeHistory;
        },
        SAVE_TREE_DATA_LIST(state, treeData) {
          state.treeDataListByStateId.push(treeData);
        },
      },
      getters: {
        treeData: (state) => state.treeData,
        toeList: (state) => state.toeList,
        toeHistory: (state) => state.toeHistory,
        treeByStateId: (state) => (stateId) => {
          return state.treeDataListByStateId.find(
            (tree) => tree.treeStateId === stateId
          );
        },
      },
      actions: {
        async getTreeDataByStateId({ commit }, stateId) {
          if (!stateId) return;
          if (stateId && this.getters.treeByStateId(stateId)) {
            return commit("SAVE_TREE_DATA", this.getters.treeByStateId(stateId));
          }
    
          ApiService.getTreeByStateId(stateId)
            .then((response) => {
              collapseExpandTree.methods.collapseAllFromLevel(
                response.data.root,
                1
              );
    
              commit("SAVE_TREE_DATA", response.data);
              commit("SAVE_TREE_DATA_LIST", response.data);
            })
            .catch((err) => {
              console.error("Error getting tree by tree state id: " + err);
            });
        },
        async getToeList({ commit }) {
          await ApiService.getToeList()
            .then((response) => {
              commit("SAVE_TOE_LIST", response.data);
            })
            .catch((err) => {
              console.error("Error getting ToE list: " + err);
            });
        },
        async getToeHistory({ commit }, id) {
          await ApiService.getToeHistory(id)
            .then((response) => {
              commit("SAVE_TOE_HISTORY", response.data);
            })
            .catch((err) => {
              console.error("Error getting ToE history: " + err);
            });
        },
        async initToeListAndTree({ dispatch }) {
          // TODO: add logic for when there are no trees
          await dispatch("getToeList").then(() => {
            dispatch("getToeHistory", this.state.toeList[0].toeId).then(() => {
              dispatch(
                "getTreeDataByStateId",
                this.state.toeHistory[0].treeStateId
              );
            });
          });
        },
        async selectToe({ dispatch }, toeId) {
          await dispatch("getToeHistory", toeId).then(() => {
            dispatch("getTreeDataByStateId", this.state.toeHistory[0].treeStateId);
          });
        },
      },
    });
    
    export default store;