centralized tocs and paginations loading in Corpus Store @ app init

This commit is contained in:
2020-07-22 19:11:53 +02:00
parent d127864327
commit 7b2a801b47
4 changed files with 134 additions and 88 deletions
+76 -1
View File
@@ -8,7 +8,9 @@ export default {
// items: [],
authors: [],
editionslist: [],
editionsbyuuid: {}
editionsbyuuid: {},
editionsuuids: [],
corpusLoaded: false
},
// getters
@@ -26,9 +28,27 @@ export default {
for (var i = 0; i < editionlist.length; i++) {
for (var j = 0; j < editionlist[i].editions.content.length; j++) {
state.editionsbyuuid[editionlist[i].editions.content[j].uuid] = editionlist[i].editions.content[j]
state.editionsuuids.push(editionlist[i].editions.content[j].uuid)
}
}
console.log('corpus editionsbyuuid', state.editionsbyuuid)
},
setTocs (state, tocslist) {
console.log('setTocs', tocslist)
tocslist.forEach((toc, i) => {
state.editionsbyuuid[toc.uuid].toc = toc.toc
})
// console.log('corpus editionsbyuuid', state.editionsbyuuid)
},
setPaginations (state, paginationslist) {
console.log('setPaginations', paginationslist)
paginationslist.forEach((pagination, i) => {
state.editionsbyuuid[pagination.uuid].pagination = pagination.pagination
})
// console.log('corpus editionsbyuuid', state.editionsbyuuid)
},
setCorpusLoaded (state) {
state.corpusLoaded = true
}
},
@@ -51,6 +71,19 @@ export default {
console.log('all texts returned: editionslist', editionslist)
commit('setEditionslist', editionslist)
commit('setEditionsByUUID', editionslist)
dispatch('getEditionsTocs')
.then((tocslist) => {
console.log('all tocs returned: tocslist', tocslist)
commit('setTocs', tocslist)
dispatch('getEditionsPaginations')
.then((paginationslist) => {
console.log('all paginations returned: paginationslist', paginationslist)
commit('setPaginations', paginationslist)
commit('setCorpusLoaded')
})
})
})
})
})
@@ -87,6 +120,48 @@ export default {
Promise.reject(error)
})
}))
},
// get tocslist
getEditionsTocs ({ dispatch, commit, state }) {
return Promise.all(state.editionsuuids.map(function (uuid) {
return REST.get(`${window.apipath}/texts/${uuid}/toc`, {})
.then(({ data }) => {
console.log('corpus getEditionsTocs REST: uuid, data', uuid, data)
// work arround
// if (!Array.isArray(data.content)) {
// data.content = [data.content]
// }
return {
uuid: uuid,
toc: data.content
}
})
.catch((error) => {
console.warn('Issue with getEditionsTocs', error)
Promise.reject(error)
})
}))
},
// get tocslist
getEditionsPaginations ({ dispatch, commit, state }) {
return Promise.all(state.editionsuuids.map(function (uuid) {
return REST.get(`${window.apipath}/texts/${uuid}/pagination`, {})
.then(({ data }) => {
console.log('corpus getEditionsPaginations REST: uuid, data', uuid, data)
// work arround
// if (!Array.isArray(data.content)) {
// data.content = [data.content]
// }
return {
uuid: uuid,
pagination: data.content
}
})
.catch((error) => {
console.warn('Issue with getEditionsPaginations', error)
Promise.reject(error)
})
}))
}
}
}