1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-08-08 23:15:28 +02:00
set function as method of Pages
This commit is contained in:
cabad 2018-12-28 18:59:20 +04:00
parent e61becaeb9
commit e680cd3c5d
2 changed files with 30 additions and 13 deletions

View file

@ -41,6 +41,35 @@ class Pages {
return Model.getAll(); return Model.getAll();
} }
/**
* Return all pages without children pages
*
* @returns {Promise<Page[]>}
*/
static async getWithoutChildren(parent) {
let pagesAvailable = this.removeChildren(await Pages.getAll(), parent);
return pagesAvailable.filter((item) => item !== null);
}
/**
* Change wrong pages to null
*
* @returns {Promise<Page[]>}
*/
static removeChildren(pagesAvailable, parent) {
pagesAvailable.forEach(async (item, index) => {
if (item !== null && item._parent === parent) {
pagesAvailable[index] = null;
pagesAvailable = Pages.removeChildren(pagesAvailable, item._id);
return false;
}
return true;
});
return pagesAvailable;
}
/** /**
* Create new page model and save it in the database * Create new page model and save it in the database
* *

View file

@ -22,19 +22,7 @@ router.get('/page/edit/:id', async (req, res, next) => {
try { try {
let page = await Pages.get(pageId); let page = await Pages.get(pageId);
let pagesAvailable = await Pages.getAll(); let pagesAvailable = await Pages.getWithoutChildren(pageId);
(function childrenRemove(parent) {
pagesAvailable.forEach((item, index) => {
if (item !== null && item._parent === parent) {
pagesAvailable[index] = null;
childrenRemove(item._id);
return false;
}
return true;
});
})(page._id);
pagesAvailable = pagesAvailable.filter((item) => item !== null);
res.render('pages/form', { res.render('pages/form', {
pagesAvailable, pagesAvailable,