mirror of
https://github.com/codex-team/codex.docs.git
synced 2025-08-08 15:05: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();
|
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
|
* Create new page model and save it in the database
|
||||||
*
|
*
|
||||||
|
|
|
@ -23,7 +23,7 @@ router.get('/page/edit/:id', async (req, res, next) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const page = await Pages.get(pageId);
|
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);
|
const parentsChildrenOrdered = await PagesOrder.getOrderedChildren(pagesAvailable, pageId, page._parent, true);
|
||||||
|
|
||||||
res.render('pages/form', {
|
res.render('pages/form', {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue