mirror of
https://github.com/codex-team/codex.docs.git
synced 2025-08-08 06:55:26 +02:00
Merge branch 'master' into order-child-pages
This commit is contained in:
commit
cf125d5342
2 changed files with 33 additions and 1 deletions
|
@ -41,6 +41,38 @@ class Pages {
|
|||
return Model.getAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* Return all pages without children of passed page
|
||||
*
|
||||
* @param {string} parent - id of current page
|
||||
* @returns {Promise<Page[]>}
|
||||
*/
|
||||
static async getAllExceptChildrens(parent) {
|
||||
let pagesAvailable = this.removeChildren(await Pages.getAll(), parent);
|
||||
|
||||
return pagesAvailable.filter((item) => item !== null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @static
|
||||
* Set all children elements to null
|
||||
*
|
||||
* @param {Page[]} [pagesAvailable] - Array of all pages
|
||||
* @param {string} parent - id of parent page
|
||||
* @returns {Array<?Page>}
|
||||
*/
|
||||
static removeChildren(pagesAvailable, parent) {
|
||||
pagesAvailable.forEach(async (item, index) => {
|
||||
if (item === null || item._parent !== parent) {
|
||||
return;
|
||||
}
|
||||
pagesAvailable[index] = null;
|
||||
pagesAvailable = Pages.removeChildren(pagesAvailable, item._id);
|
||||
});
|
||||
return pagesAvailable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new page model and save it in the database
|
||||
*
|
||||
|
|
|
@ -23,7 +23,7 @@ router.get('/page/edit/:id', async (req, res, next) => {
|
|||
|
||||
try {
|
||||
const page = await Pages.get(pageId);
|
||||
const pagesAvailable = await Pages.getAll();
|
||||
const pagesAvailable = await Pages.getAllExceptChildrens(pageId);
|
||||
const parentsChildrenOrdered = await PagesOrder.getOrderedChildren(pagesAvailable, pageId, page._parent, true);
|
||||
|
||||
res.render('pages/form', {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue