From 0e9bd79fa6b0c01301192a42555750736be04675 Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Tue, 20 Nov 2018 15:19:40 +0100 Subject: [PATCH] Add modal for objective group addition --- client/src/App.vue | 4 +- .../components/AddObjectiveGroupButton.vue | 60 +++++++++++ client/src/components/modules/Module.vue | 15 ++- .../NewObjectiveGroupWizard.vue | 102 ++++++++++++++++++ .../objective-groups/ObjectiveForm.vue | 41 +++++++ client/src/store/index.js | 26 ++++- 6 files changed, 241 insertions(+), 7 deletions(-) create mode 100644 client/src/components/AddObjectiveGroupButton.vue create mode 100644 client/src/components/objective-groups/NewObjectiveGroupWizard.vue create mode 100644 client/src/components/objective-groups/ObjectiveForm.vue diff --git a/client/src/App.vue b/client/src/App.vue index 0d87bfc2..9e17d019 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -14,6 +14,7 @@ import EditContentBlockWizard from '@/components/content-block-form/EditContentBlockWizard'; import NewRoomEntryWizard from '@/components/rooms/room-entries/NewRoomEntryWizard'; import EditRoomEntryWizard from '@/components/rooms/room-entries/EditRoomEntryWizard'; + import NewObjectiveGroupWizard from '@/components/objective-groups/NewObjectiveGroupWizard'; export default { name: 'App', @@ -26,7 +27,8 @@ NewContentBlockWizard, EditContentBlockWizard, NewRoomEntryWizard, - EditRoomEntryWizard + EditRoomEntryWizard, + NewObjectiveGroupWizard }, computed: { diff --git a/client/src/components/AddObjectiveGroupButton.vue b/client/src/components/AddObjectiveGroupButton.vue new file mode 100644 index 00000000..4a7afd52 --- /dev/null +++ b/client/src/components/AddObjectiveGroupButton.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/client/src/components/modules/Module.vue b/client/src/components/modules/Module.vue index d12ed23c..35537639 100644 --- a/client/src/components/modules/Module.vue +++ b/client/src/components/modules/Module.vue @@ -10,19 +10,25 @@

Lernziele

+ + +

Alles klar?

- - + + + + diff --git a/client/src/components/objective-groups/ObjectiveForm.vue b/client/src/components/objective-groups/ObjectiveForm.vue new file mode 100644 index 00000000..b1c5bc62 --- /dev/null +++ b/client/src/components/objective-groups/ObjectiveForm.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/client/src/store/index.js b/client/src/store/index.js index 50899556..759dbd75 100644 --- a/client/src/store/index.js +++ b/client/src/store/index.js @@ -14,7 +14,9 @@ export default new Vuex.Store({ filterForSchoolClass: '', currentContentBlock: '', currentRoomEntry: '', - parentRoom: null + parentRoom: null, + parentModule: '', + objectiveGroupType: '' }, getters: {}, @@ -23,9 +25,18 @@ export default new Vuex.Store({ setSpecialContainerClass({commit}, payload) { commit('setSpecialContainerClass', payload); }, - hideModal({commit}) { + 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', ''); }, resetContentBlockPosition({commit}) { commit('setContentBlockPosition', {}); @@ -49,6 +60,11 @@ export default new Vuex.Store({ 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'); + }, showModal({commit}, payload) { document.body.classList.add('no-scroll'); // won't get at the body any other way commit('setModal', payload); @@ -85,6 +101,12 @@ export default new Vuex.Store({ }, setCurrentRoomEntry(state, payload) { state.currentRoomEntry = payload; + }, + setParentModule(state, payload) { + state.parentModule = payload; + }, + setObjectiveGroupType(state, payload) { + state.objectiveGroupType = payload; } } })