update Kit view to work with url params
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<b-overlay :show="filteredNodes === undefined" class="kit-list" z-index="0">
|
<b-overlay
|
||||||
|
:show="filteredNodes === undefined"
|
||||||
|
class="kit-list"
|
||||||
|
z-index="0" spinner-variant="kit"
|
||||||
|
>
|
||||||
<div class="kit-list-wrapper">
|
<div class="kit-list-wrapper">
|
||||||
<header class="kit-list-header">
|
<header class="kit-list-header">
|
||||||
<div class="kit-list-header-intro" v-html="intro" />
|
<div class="kit-list-header-intro" v-html="intro" />
|
||||||
@@ -12,7 +16,7 @@
|
|||||||
v-for="node in filteredNodes" :key="'kit-' + node.id"
|
v-for="node in filteredNodes" :key="'kit-' + node.id"
|
||||||
:node="node"
|
:node="node"
|
||||||
mode="card"
|
mode="card"
|
||||||
@click.native.capture="$emit('open-node', node.id)"
|
@click.native.capture="openNode(node.id)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -55,7 +59,14 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
openNode (id) {
|
||||||
|
this.$store.dispatch('OPEN_KIT_NODE', id)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async created () {
|
async created () {
|
||||||
|
this.$store.dispatch('INIT_KIT')
|
||||||
this.$store.dispatch('QUERY_PAGE', 'kit').then(page => {
|
this.$store.dispatch('QUERY_PAGE', 'kit').then(page => {
|
||||||
this.intro = page.content
|
this.intro = page.content
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,16 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="kit-view">
|
<div class="kit-view bg-kit">
|
||||||
<node-view
|
<node-view
|
||||||
|
v-if="sheet"
|
||||||
:node="sheet"
|
:node="sheet"
|
||||||
mode="view"
|
mode="view"
|
||||||
show-origin
|
show-origin
|
||||||
@close-node="$emit('close-node', $event)"
|
@close-node="closeNode()"
|
||||||
@open-node="$emit('open-node', $event)"
|
@open-node="openLibrary"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<b-overlay
|
||||||
|
:show="!sheet"
|
||||||
|
spinner-variant="light"
|
||||||
|
no-wrap
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
import { NodeView } from '@/components/nodes'
|
import { NodeView } from '@/components/nodes'
|
||||||
|
|
||||||
|
|
||||||
@@ -22,13 +31,34 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
sheet: { type: Object, default: undefined }
|
id: { type: [Number, String], default: undefined }
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['sheet'])
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
closeNode () {
|
||||||
|
this.$store.dispatch('CLOSE_KIT_NODE')
|
||||||
|
},
|
||||||
|
|
||||||
|
openLibrary (ids) {
|
||||||
|
this.$store.dispatch('OPEN_NODE', ids)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
created () {
|
||||||
|
this.$store.dispatch('INIT_KIT_VIEW', parseInt(this.id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.kit-view {
|
.kit-view {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
.node-view {
|
.node-view {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
&-header-wrapper,
|
&-header-wrapper,
|
||||||
|
|||||||
@@ -32,10 +32,17 @@ export default [
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: 'kit-view',
|
||||||
|
path: '/kit/:id',
|
||||||
|
props: true,
|
||||||
|
component: () => import(/* webpackChunkName: "kit" */ '@/pages/kit/KitView')
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
name: 'kit',
|
name: 'kit',
|
||||||
path: '/kit',
|
path: '/kit',
|
||||||
component: () => import(/* webpackChunkName: "kit" */ '@/pages/Kit')
|
component: () => import(/* webpackChunkName: "kit" */ '@/pages/kit/KitList')
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
import router from '@/router'
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
state: {
|
state: {
|
||||||
sheet: null
|
sheet: null
|
||||||
@@ -10,18 +13,29 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
'INIT_KIT' ({ state, commit, dispatch, getters }) {
|
async 'INIT_KIT' ({ state, commit, dispatch, getters }) {
|
||||||
const ids = dispatch('GET_ALL_NODES_IDS', { variant: 'kit', dataLevel: 'partial' })
|
const ids = await dispatch('GET_ALL_NODES_IDS', { variant: 'kit', dataLevel: 'partial' })
|
||||||
return dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
return dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
||||||
},
|
},
|
||||||
|
|
||||||
async 'OPEN_KIT_NODE' ({ state, commit, dispatch }, id) {
|
async 'INIT_KIT_VIEW' ({ state, commit, dispatch, getters }, id) {
|
||||||
|
await dispatch('INIT_KIT')
|
||||||
|
const node = await dispatch('GET_NODE', { id, dataLevel: 'full' })
|
||||||
commit('SET_KIT_SHEET', id)
|
commit('SET_KIT_SHEET', id)
|
||||||
commit('ADD_HISTORY_ENTRIES', [id])
|
commit('ADD_HISTORY_ENTRIES', [id])
|
||||||
return dispatch('GET_NODE', { id, dataLevel: 'full' })
|
return node
|
||||||
|
},
|
||||||
|
|
||||||
|
async 'OPEN_KIT_NODE' ({ state, commit, dispatch }, id) {
|
||||||
|
if (router.currentRoute.name !== 'kit-view') {
|
||||||
|
router.push({ name: 'kit-view', params: { id } })
|
||||||
|
} else {
|
||||||
|
router.push({ params: { id } })
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
'CLOSE_KIT_NODE' ({ state, commit }) {
|
'CLOSE_KIT_NODE' ({ state, commit }) {
|
||||||
|
router.push({ name: 'kit' })
|
||||||
commit('SET_KIT_SHEET', null)
|
commit('SET_KIT_SHEET', null)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user