Add dynamic slug to module route

This commit is contained in:
Ramon Wenger 2018-10-04 10:49:35 +02:00
parent 35201e6986
commit d379bfcc10
6 changed files with 45 additions and 20 deletions

View File

@ -12,16 +12,16 @@
<router-link tag="h3" to="/module/submissions" class="module-navigation__heading">Ergebnisse: Modul 1
</router-link>
<div class="module-navigation__anchors">
<router-link to="/module/submissions" class="module-navigation__anchor">Tauschvorgänge</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Schwierigkeiten von Tauschvorgängen
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Tauschvorgänge</router-link>
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Schwierigkeiten von Tauschvorgängen
</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Vorteile von Geld</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Aufgaben von Geld</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Notizen zum Video «Funktionen der
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Vorteile von Geld</router-link>
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Aufgaben von Geld</router-link>
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Notizen zum Video «Funktionen der
Bank»
</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Anlageberatung</router-link>
<router-link to="/module/submissions" class="module-navigation__anchor">Welche Geldanlage ist sinnvoll?
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Anlageberatung</router-link>
<router-link to="/module/geld/submissions" class="module-navigation__anchor">Welche Geldanlage ist sinnvoll?
</router-link>
</div>
</nav>

View File

@ -1,17 +1,28 @@
<template>
<router-link to="/module" tag="div" class="module-teaser">
<router-link :to="moduleLink" tag="div" class="module-teaser">
<img :src="'https://picsum.photos/300/150?random='+id" alt="" class="module-teaser__image">
<div class="module-teaser__body">
<h3 class="module-teaser__meta-title">{{metaTitle}}</h3>
<h3 class="module-teaser__title">{{title}}</h3>
<p class="module-teaser__description">{{description}}</p>
<p class="module-teaser__description">{{teaser}}</p>
</div>
</router-link>
</template>
<script>
export default {
props: ['metaTitle', 'title', 'description', 'id']
props: ['metaTitle', 'title', 'teaser', 'id', 'slug'],
computed: {
moduleLink() {
return {
name: 'module',
params: {
slug: this.slug
}
}
}
}
}
</script>

View File

@ -4,6 +4,8 @@ query ModulesQuery {
node {
id
title
metaTitle
teaser
slug
}
}

View File

@ -16,15 +16,17 @@
},
apollo: {
module: {
module() {
return {
query: MODULE_DETAILS_QUERY,
variables: {
slug: store.state.moduleSlug
slug: this.$route.params.slug
},
update(data) {
const cleanedData = this.$getRidOfEdges(data);
return cleanedData.module || {};
}
}
},
assignments: {
query: ASSIGNMENTS_QUERY

View File

@ -15,12 +15,22 @@
<script>
import ModuleTeaser from '@/components/modules/ModuleTeaser.vue';
import MODULES_QUERY from '@/graphql/gql/allModules.gql';
export default {
components: {
ModuleTeaser
},
apollo: {
modules: {
query: MODULES_QUERY,
update(data) {
return this.$getRidOfEdges(data).modules || {};
}
}
},
data() {
return {
modules: [

View File

@ -15,9 +15,9 @@ import submissions from '@/pages/submissions'
import p404 from '@/pages/p404'
const routes = [
{path: '/', redirect: '/module'},
{path: '/', redirect: '/book/topic'},
{
path: '/module',
path: '/module/:slug',
name: 'moduleBase',
component: moduleBase,
children: [