add edit project page

This commit is contained in:
Christian Cueni 2019-03-28 08:42:37 +01:00
parent ab6b1d76be
commit ffc6332894
3 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,41 @@
<template>
<project-form
:project="project"
@save="updateProject"
></project-form>
</template>
<script>
import ProjectForm from '@/components/portfolio/ProjectForm';
import UPDATE_PROJECT_MUTATION from '@/graphql/gql/mutations/updateProject.gql';
export default {
props: ['project'],
components: {
ProjectForm
},
methods: {
updateProject(project) {
this.$apollo.mutate({
mutation: UPDATE_PROJECT_MUTATION,
variables: {
input: {
project: {
id: project.id,
title: project.title,
description: project.description,
appearance: project.appearance,
objectives: project.objectives
}
}
}
}).then(() => {
this.$router.push('/portfolio');
});
}
},
}
</script>

View File

@ -0,0 +1,37 @@
<template>
<div class="edit-project-page">
<edit-project :project="project" v-if="this.project.id"></edit-project>
</div>
</template>
<script>
// todo: refactor this, we don't need 2 components, remove editRoom or EditRoom component
import EditProject from '@/components/portfolio/EditProject';
import PROJECT_QUERY from '@/graphql/gql/projectQuery.gql';
export default {
props: ['id'],
components: {
EditProject
},
data() {
return {
project: {}
}
},
apollo: {
project: {
query: PROJECT_QUERY,
variables() {
return {
id: this.id
}
}
}
}
}
</script>

View File

@ -18,6 +18,7 @@ import start from '@/pages/start'
import submission from '@/pages/studentSubmission'
import portfolio from '@/pages/portfolio'
import project from '@/pages/project'
import editProject from '@/pages/editProject'
import newProject from '@/pages/newProject'
const routes = [
@ -53,6 +54,7 @@ const routes = [
{path: '/portfolio', name: 'portfolio', component: portfolio},
{path: '/portfolio/:slug', name: 'project', component: project, props: true},
{path: '/new-project/', name: 'new-project', component: newProject},
{path: '/edit-project/:id', name: 'edit-project', component: editProject, props: true},
{
path: '/book',
name: 'book',