update tagsOptions depending on current nodes
This commit is contained in:
@@ -2,9 +2,6 @@ import Vue from 'vue'
|
||||
import router from '@/router'
|
||||
|
||||
import api from '@/api'
|
||||
import {
|
||||
AllTags
|
||||
} from '@/api/queries'
|
||||
import {
|
||||
parseNodesQueryParams,
|
||||
getUniqueNodesIds,
|
||||
@@ -71,7 +68,8 @@ export default {
|
||||
// │ │├─╯ │ │ │ ││││╰─╮
|
||||
// ╰─╯╵ ╵ ╶┴╴╰─╯╵╰╯╶─╯
|
||||
|
||||
'SET_TAGS_OPTIONS' (state, tags) {
|
||||
'SET_TAGS_OPTIONS' (state, nodes) {
|
||||
const tags = nodes.reduce((tags, node) => tags.concat(node.tags || []), [])
|
||||
state.tagsOptions = Array.from(new Set(tags.map(tag => tag.name)))
|
||||
},
|
||||
|
||||
@@ -104,7 +102,6 @@ export default {
|
||||
async 'INIT_LIBRARY' ({ state, commit, dispatch, rootState }) {
|
||||
const departIds = await dispatch('GET_ALL_NODES_IDS', 'depart')
|
||||
await dispatch('GET_NODES', { ids: departIds, dataLevel: 'initial' })
|
||||
dispatch('GET_ALL_TAGS')
|
||||
if (state.nodebook && state.nodebook.length) {
|
||||
commit('UPDATE_OPTIONS_VISIBILITY', false)
|
||||
}
|
||||
@@ -122,12 +119,16 @@ export default {
|
||||
const departNodes = await dispatch('GET_NODES', { ids, dataLevel: 'partial' })
|
||||
const relatedIds = getRelatedNodesIds(departNodes, ids)
|
||||
const relatedNodes = await dispatch('GET_NODES', { ids: relatedIds, dataLevel: 'partial' })
|
||||
return [...departNodes, ...relatedNodes]
|
||||
const nodes = [...departNodes, ...relatedNodes]
|
||||
commit('SET_TAGS_OPTIONS', nodes)
|
||||
return nodes
|
||||
},
|
||||
|
||||
async 'INIT_LIBRARY_LIST' ({ state, commit, dispatch }) {
|
||||
const departIds = await dispatch('INIT_LIBRARY')
|
||||
return dispatch('GET_NODES', { ids: departIds, dataLevel: 'partial' })
|
||||
const nodes = await dispatch('GET_NODES', { ids: departIds, dataLevel: 'partial' })
|
||||
commit('SET_TAGS_OPTIONS', nodes)
|
||||
return nodes
|
||||
},
|
||||
|
||||
async 'UPDATE_NODEBOOK' ({ state, commit, dispatch }, query) {
|
||||
@@ -171,14 +172,6 @@ export default {
|
||||
// │ │├─╯ │ │ │ ││││╰─╮
|
||||
// ╰─╯╵ ╵ ╶┴╴╰─╯╵╰╯╶─╯
|
||||
|
||||
'GET_ALL_TAGS' ({ state, commit }) {
|
||||
if (state.tagsOptions.length) return state.tagsOptions
|
||||
return api.query(AllTags).then(data => {
|
||||
commit('SET_TAGS_OPTIONS', data.tags)
|
||||
return state.tagsOptions
|
||||
})
|
||||
},
|
||||
|
||||
async 'SET_NODE_DEPART_ID' ({ state, rootState, commit, dispatch, getters }, id) {
|
||||
if (state.nodeDepartId === id) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user