mirror of
https://github.com/codex-team/codex.docs.git
synced 2025-08-08 23:15:28 +02:00
refactor
set function as method of Pages
This commit is contained in:
parent
e61becaeb9
commit
e680cd3c5d
2 changed files with 30 additions and 13 deletions
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue