diff --git a/client/src/components/content-forms/TextFormWithHelpText.vue b/client/src/components/content-forms/TextFormWithHelpText.vue index fabbe49a..dbddcaa3 100644 --- a/client/src/components/content-forms/TextFormWithHelpText.vue +++ b/client/src/components/content-forms/TextFormWithHelpText.vue @@ -3,7 +3,7 @@

{{title}}

- + diff --git a/client/src/components/portfolio/AddProjectEntry.vue b/client/src/components/portfolio/AddProjectEntry.vue index 71d00f7d..2b90422a 100644 --- a/client/src/components/portfolio/AddProjectEntry.vue +++ b/client/src/components/portfolio/AddProjectEntry.vue @@ -6,14 +6,15 @@ import AddWidget from '@/components/AddWidget'; export default { + props: ['project'], + components: { AddWidget }, methods: { addProjectEntry() { - console.log('click'); - this.$store.dispatch('addProjectEntry', ''); + this.$store.dispatch('addProjectEntry', this.project); } } } diff --git a/client/src/components/portfolio/NewProjectEntryWizard.vue b/client/src/components/portfolio/NewProjectEntryWizard.vue index 99968e16..09f0cd9a 100644 --- a/client/src/components/portfolio/NewProjectEntryWizard.vue +++ b/client/src/components/portfolio/NewProjectEntryWizard.vue @@ -1,13 +1,17 @@ @@ -15,15 +19,65 @@ import Modal from '@/components/Modal'; import TextFormWithHelpText from '@/components/content-forms/TextFormWithHelpText'; + import NEW_PROJECT_ENTRY_MUTATION from '@/graphql/gql/mutations/addProjectEntry.gql'; + import PROJECT_QUERY from '@/graphql/gql/projectQuery.gql'; + export default { components: { Modal, TextFormWithHelpText }, + computed: { + project() { + return this.$store.state.parentProject; + }, + slug() { + return this.$route.params.slug; + } + }, + + methods: { + save() { + this.$apollo.mutate({ + mutation: NEW_PROJECT_ENTRY_MUTATION, + variables: { + input: { + projectEntry: Object.assign({}, { + nextSteps: this.nextSteps, + activity: this.activity, + reflection: this.reflection, + project: this.project + }) + } + }, + update: (store, {data: {addProjectEntry: {projectEntry}}}) => { + const query = PROJECT_QUERY; + const variables = {slug: this.slug}; + const data = store.readQuery({query, variables}); + if (data.project && data.project.entries) { + data.project.entries.edges.unshift({ + node: projectEntry, + __typename: 'ProjectEntryNode' + }); + store.writeQuery({query, variables, data}); + } + } + + }).then(() => { + this.hideModal(); + }); + }, + hideModal() { + this.$store.dispatch('hideModal'); + } + }, + data() { return { - value: '' + activity: '', + reflection: '', + nextSteps: '' } } } diff --git a/client/src/components/portfolio/ProjectEntry.vue b/client/src/components/portfolio/ProjectEntry.vue index 02d935d4..7897f4ac 100644 --- a/client/src/components/portfolio/ProjectEntry.vue +++ b/client/src/components/portfolio/ProjectEntry.vue @@ -2,27 +2,30 @@

Tätigkeit

- Ich führe das Interview mit meiner Kollegin durch. + {{activity}}

Reflexion

- Da ich geeignete Fragen hatte, konnte meine Kollegin umfangreiche Antworten zum Thema geben. Die Eingangshalle - eignete sich nicht als Interviewort, da es viele Nebengeräusche hatte. Wir fanden aber dann ein freies - Klassenzimmer. Nicht nur die Fragen sind wichtig. Auch die Ortswahl, wo man das Interview aufzeichnen möchte, - ist sehr wichtig für ein erfolgreiches Interview. + {{reflection}}

Nächste Schritte

- Interview im Raum „Mein Lehrbetrieb“ ablegen. + {{nextSteps}}

- 21. Juni 2018 + {{created | date }}
+ +