skillbox/client/src/store/index.js

155 lines
4.5 KiB
JavaScript

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
modules: {},
state: {
specialContainerClass: '',
showModal: '',
contentBlockPosition: {},
scrollPosition: 0,
filterForSchoolClass: '',
currentContentBlock: '',
currentRoomEntry: '',
parentRoom: null,
parentModule: '',
objectiveGroupType: '',
currentObjectiveGroup: '',
parentProject: null,
imageUrl: '',
infographic: {
id: 0,
type: ''
}
},
getters: {},
actions: {
setSpecialContainerClass({commit}, payload) {
commit('setSpecialContainerClass', payload);
},
hideModal({commit, dispatch}) {
document.body.classList.remove('no-scroll'); // won't get at the body any other way
commit('setModal', false);
dispatch('resetModalState');
},
resetModalState({commit}) {
commit('setCurrentRoomEntry', '');
commit('setCurrentContentBlock', '');
commit('setContentBlockPosition', {});
commit('setParentRoom', null);
commit('setParentModule', '');
commit('setObjectiveGroupType', '');
commit('setCurrentObjectiveGroup', '');
commit('setParentProject', null);
commit('setImageUrl', '');
commit('setInfographic', {
id: 0,
type: ''
});
},
resetContentBlockPosition({commit}) {
commit('setContentBlockPosition', {});
},
resetCurrentContentBlock({commit}) {
commit('setCurrentContentBlock', '');
},
editContentBlock({commit, dispatch}, payload) {
commit('setCurrentContentBlock', payload);
dispatch('showModal', 'edit-content-block-wizard');
},
addContentBlock({commit, dispatch}, payload) {
commit('setContentBlockPosition', payload);
dispatch('showModal', 'new-content-block-wizard');
},
addRoomEntry({commit, dispatch}, payload) {
commit('setParentRoom', payload);
dispatch('showModal', 'new-room-entry-wizard');
},
editRoomEntry({commit, dispatch}, payload) {
commit('setCurrentRoomEntry', payload);
dispatch('showModal', 'edit-room-entry-wizard');
},
addObjectiveGroup({commit, dispatch}, {module, type}) {
commit('setParentModule', module);
commit('setObjectiveGroupType', type);
dispatch('showModal', 'new-objective-group-wizard');
},
editObjectiveGroup({commit, dispatch}, payload) {
commit('setCurrentObjectiveGroup', payload);
dispatch('showModal', 'edit-objective-group-wizard');
},
showModal({commit}, payload) {
document.body.classList.add('no-scroll'); // won't get at the body any other way
commit('setModal', payload);
},
setfilterForSchoolClass({commit}, payload) {
commit('setfilterForSchoolClass', payload);
},
addProjectEntry({commit, dispatch}, payload) {
commit('setParentProject', payload);
dispatch('showModal', 'new-project-entry-wizard');
},
showFullscreenImage({commit, dispatch}, payload) {
commit('setImageUrl', payload);
dispatch('showModal', 'fullscreen-image');
},
showFullscreenInfographic({commit, dispatch}, payload) {
commit('setInfographic', payload);
dispatch('showModal', 'fullscreen-infographic');
},
},
mutations: {
setModal(state, payload) {
state.showModal = payload;
},
setSpecialContainerClass(state, payload) {
state.specialContainerClass = payload;
},
setScrollPosition(state, payload) {
state.scrollPosition = payload;
},
setNewContentBlock(state, payload) {
state.newContentBlock = payload;
},
setContentBlockPosition(state, payload) {
state.contentBlockPosition = payload;
},
setCurrentContentBlock(state, payload) {
state.currentContentBlock = payload;
},
setfilterForSchoolClass(state, payload) {
state.filterForSchoolClass = payload;
},
setParentRoom(state, payload) {
state.parentRoom = payload;
},
setCurrentRoomEntry(state, payload) {
state.currentRoomEntry = payload;
},
setParentModule(state, payload) {
state.parentModule = payload;
},
setObjectiveGroupType(state, payload) {
state.objectiveGroupType = payload;
},
setCurrentObjectiveGroup(state, payload) {
state.currentObjectiveGroup = payload;
},
setParentProject(state, payload) {
state.parentProject = payload;
},
setImageUrl(state, payload) {
state.imageUrl = payload;
},
setInfographic(state, payload) {
state.infographic = payload;
}
}
})