238 lines
7.2 KiB
JavaScript
238 lines
7.2 KiB
JavaScript
import { createStore } from 'vuex';
|
|
|
|
// WARNING fixme todo: please do not use this anymore, use the local GraphQL cache
|
|
// export default new Vuex.Store({
|
|
export const store = createStore({
|
|
modules: {},
|
|
|
|
state: {
|
|
specialContainerClass: '',
|
|
showModal: '',
|
|
showMobileNavigation: false,
|
|
contentBlockPosition: {},
|
|
scrollPosition: 0,
|
|
currentContent: '',
|
|
currentNoteBlock: '',
|
|
noteType: '',
|
|
currentRoomEntry: '',
|
|
parentRoom: null,
|
|
parentModule: '',
|
|
parentProject: null,
|
|
currentNote: null,
|
|
currentProjectEntry: null,
|
|
currentNoteParent: '',
|
|
imageUrl: '',
|
|
infographic: {
|
|
id: 0,
|
|
type: '',
|
|
},
|
|
vimeoId: null,
|
|
scrollingToAssignment: false,
|
|
editModule: false,
|
|
modulePayload: [],
|
|
modalResolve: () => {},
|
|
modalReject: () => {},
|
|
},
|
|
|
|
getters: {
|
|
showModal: (state) => state.showModal,
|
|
showMobileNavigation: (state) => state.showMobileNavigation,
|
|
scrollingToAssignment: (state) => state.scrollingToAssignment,
|
|
currentProjectEntry: (state) => state.currentProjectEntry,
|
|
currentContent: (state) => state.currentContent,
|
|
currentNoteBlock: (state) => state.currentNoteBlock,
|
|
currentNote: (state) => state.currentNote,
|
|
currentNoteParent: (state) => state.currentNoteParent,
|
|
noteType: (state) => state.noteType,
|
|
modulePayload: (state) => state.modulePayload,
|
|
},
|
|
|
|
// todo: clean up
|
|
actions: {
|
|
setSpecialContainerClass({ commit }, payload) {
|
|
commit('setSpecialContainerClass', payload);
|
|
},
|
|
confirmModal({ dispatch, state }) {
|
|
dispatch('hideModal');
|
|
state.modalResolve();
|
|
},
|
|
cancelModal({ dispatch, state }) {
|
|
dispatch('hideModal');
|
|
state.modalReject();
|
|
},
|
|
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('setCurrentContent', '');
|
|
commit('setCurrentNoteBlock', '');
|
|
commit('setCurrentNoteParent', '');
|
|
commit('setContentBlockPosition', {});
|
|
commit('setParentRoom', null);
|
|
commit('setParentModule', '');
|
|
commit('setParentProject', null);
|
|
commit('setCurrentProjectEntry', null);
|
|
commit('setImageUrl', '');
|
|
commit('setInfographic', {
|
|
id: 0,
|
|
type: '',
|
|
});
|
|
commit('setVimeoId', null);
|
|
commit('setCurrentNote', null);
|
|
commit('setNoteType', '');
|
|
commit('setModulePayload', []);
|
|
},
|
|
resetContentBlockPosition({ commit }) {
|
|
commit('setContentBlockPosition', {});
|
|
},
|
|
resetCurrentNoteBlock({ commit }) {
|
|
commit('setCurrentNoteBlock', '');
|
|
},
|
|
editContentBlock({ commit, dispatch }, payload) {
|
|
commit('setCurrentNoteBlock', payload);
|
|
dispatch('showModal', 'edit-content-block-wizard');
|
|
},
|
|
addContentBlock({ commit, dispatch }, payload) {
|
|
commit('setContentBlockPosition', payload);
|
|
dispatch('showModal', 'new-content-block-wizard');
|
|
},
|
|
editRoomEntry({ commit, dispatch }, payload) {
|
|
commit('setCurrentRoomEntry', payload);
|
|
dispatch('showModal', 'edit-room-entry-wizard');
|
|
},
|
|
showModal({ commit }, payload) {
|
|
document.body.classList.add('no-scroll'); // won't get at the body any other way
|
|
|
|
commit('setModal', payload);
|
|
return new Promise((resolve, reject) => {
|
|
commit('setModalResolve', resolve);
|
|
commit('setModalReject', reject);
|
|
});
|
|
},
|
|
addProjectEntry({ commit, dispatch }, payload) {
|
|
commit('setParentProject', payload);
|
|
dispatch('showModal', 'new-project-entry-wizard');
|
|
},
|
|
editProjectEntry({ commit, dispatch }, payload) {
|
|
commit('setCurrentProjectEntry', payload);
|
|
dispatch('showModal', 'edit-project-entry-wizard');
|
|
},
|
|
addNote({ commit, dispatch }, payload) {
|
|
if (payload.block) {
|
|
commit('setCurrentNoteBlock', payload.block);
|
|
commit('setCurrentContent', payload.content);
|
|
} else {
|
|
commit('setCurrentNoteParent', payload.parent);
|
|
}
|
|
if (payload.type) {
|
|
commit('setNoteType', payload.type);
|
|
}
|
|
dispatch('showModal', 'new-note-wizard');
|
|
},
|
|
editNote({ commit, dispatch }, payload) {
|
|
commit('setCurrentNote', payload);
|
|
dispatch('showModal', 'edit-note-wizard');
|
|
},
|
|
showFullscreenImage({ commit, dispatch }, payload) {
|
|
commit('setImageUrl', payload);
|
|
dispatch('showModal', 'fullscreen-image');
|
|
},
|
|
showFullscreenInfographic({ commit, dispatch }, payload) {
|
|
commit('setInfographic', payload);
|
|
dispatch('showModal', 'fullscreen-infographic');
|
|
},
|
|
showFullscreenVideo({ commit, dispatch }, payload) {
|
|
commit('setVimeoId', payload);
|
|
dispatch('showModal', 'fullscreen-video');
|
|
},
|
|
showMobileNavigation({ commit }, payload) {
|
|
commit('setShowMobileNavigation', payload);
|
|
},
|
|
editModule({ commit }, payload) {
|
|
commit('setEditModule', payload);
|
|
},
|
|
editClassName({ dispatch }) {
|
|
dispatch('showModal', 'edit-class-name-wizard');
|
|
},
|
|
editTeamName({ dispatch }) {
|
|
dispatch('showModal', 'edit-team-name-wizard');
|
|
},
|
|
deactivateUser({ commit, dispatch }, payload) {
|
|
commit('setModulePayload', payload);
|
|
return dispatch('showModal', 'deactivate-person');
|
|
},
|
|
},
|
|
|
|
mutations: {
|
|
setModal(state, payload) {
|
|
state.showModal = payload;
|
|
},
|
|
setSpecialContainerClass(state, payload) {
|
|
state.specialContainerClass = payload;
|
|
},
|
|
setScrollPosition(state, payload) {
|
|
state.scrollPosition = payload;
|
|
},
|
|
setContentBlockPosition(state, payload) {
|
|
state.contentBlockPosition = payload;
|
|
},
|
|
setCurrentContent(state, payload) {
|
|
state.currentContent = payload;
|
|
},
|
|
setCurrentNoteBlock(state, payload) {
|
|
state.currentNoteBlock = payload;
|
|
},
|
|
setParentRoom(state, payload) {
|
|
state.parentRoom = payload;
|
|
},
|
|
setCurrentNote(state, payload) {
|
|
state.currentNote = payload;
|
|
},
|
|
setCurrentRoomEntry(state, payload) {
|
|
state.currentRoomEntry = payload;
|
|
},
|
|
setParentModule(state, payload) {
|
|
state.parentModule = payload;
|
|
},
|
|
setParentProject(state, payload) {
|
|
state.parentProject = payload;
|
|
},
|
|
setCurrentProjectEntry(state, payload) {
|
|
state.currentProjectEntry = payload;
|
|
},
|
|
setImageUrl(state, payload) {
|
|
state.imageUrl = payload;
|
|
},
|
|
setInfographic(state, payload) {
|
|
state.infographic = payload;
|
|
},
|
|
setVimeoId(state, payload) {
|
|
state.vimeoId = payload;
|
|
},
|
|
setShowMobileNavigation(state, payload) {
|
|
state.showMobileNavigation = payload;
|
|
},
|
|
setEditModule(state, payload) {
|
|
state.editModule = payload;
|
|
},
|
|
setCurrentNoteParent(state, payload) {
|
|
state.currentNoteParent = payload;
|
|
},
|
|
setNoteType(state, payload) {
|
|
state.noteType = payload;
|
|
},
|
|
setModulePayload(state, payload) {
|
|
state.modulePayload = payload;
|
|
},
|
|
setModalResolve(state, payload) {
|
|
state.modalResolve = payload;
|
|
},
|
|
setModalReject(state, payload) {
|
|
state.modalReject = payload;
|
|
},
|
|
},
|
|
});
|