nfp_sites/nfp_moe/app/api/page.p.js

55 lines
1.2 KiB
JavaScript
Raw Normal View History

const common = require('./common')
2022-06-21 11:50:03 +00:00
const Tree = window.__nfptree && window.__nfptree.tree || []
2022-07-20 00:33:06 +00:00
const TreeMap = new Map()
exports.Tree = Tree
2022-07-20 00:33:06 +00:00
exports.TreeMap = TreeMap
2022-07-20 00:33:06 +00:00
function parseLeaf(tree) {
for (let branch of tree) {
TreeMap.set(branch.path, branch)
if (branch.children && branch.children.length) {
parseLeaf(branch.children)
}
}
}
2022-07-20 00:33:06 +00:00
parseLeaf(Tree)
2022-07-27 08:41:18 +00:00
function processPageBranch(arr, branches, prefix) {
branches.forEach((page) => {
arr.push({ id: page.id, name: prefix + page.name })
if (page.children && page.children.length) {
processPageBranch(arr, page.children, page.name + ' -> ')
}
})
}
exports.getFlatTree = function() {
let arr = []
processPageBranch(arr, Tree, '')
return arr
}
2022-06-28 08:15:51 +00:00
exports.getPage = function(path, page) {
return common.sendRequest({
method: 'GET',
2022-06-28 08:15:51 +00:00
url: '/api/' + (path ? 'pages/' + path : 'frontpage') + '?page=' + (page || 1),
})
}
2022-07-27 08:41:18 +00:00
exports.refreshTree = function() {
return common.sendRequest({
method: 'GET',
url: '/api/pagetree',
})
.then(pages => {
Tree.splice(0, Tree.length)
Tree.push.apply(Tree, pages.tree)
TreeMap.clear()
parseLeaf(Tree)
})
}