1
0
Fork 0
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:
Murod Khaydarov 2019-01-15 19:13:26 +03:00
commit cf125d5342
No known key found for this signature in database
GPG key ID: C480BA53A8D274C5
2 changed files with 33 additions and 1 deletions

View file

@ -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
*

View file

@ -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', {