diff --git a/src/backend/controllers/pagesOrder.ts b/src/backend/controllers/pagesOrder.ts index 74ae16e..b8090dc 100644 --- a/src/backend/controllers/pagesOrder.ts +++ b/src/backend/controllers/pagesOrder.ts @@ -2,7 +2,7 @@ import PageOrder from '../models/pageOrder.js'; import Page from '../models/page.js'; import PagesFlatArray from '../models/pagesFlatArray.js'; import { EntityId } from '../database/types.js'; -import { isEqualIds } from '../database/index.js'; +import { isEqualIds, toEntityId } from '../database/index.js'; /** * @class PagesOrder @@ -103,13 +103,15 @@ class PagesOrder { const unordered = pages.filter(page => isEqualIds(page._parent, parentPageId)).map(page => page._id); // Create unique array with ordered and unordered pages id - const ordered = Array.from(new Set([...children.order, ...unordered])); + const ordered = Array.from(new Set([...children.order, ...unordered].map(id => id?.toString()))); const result: Page[] = []; ordered.forEach(pageId => { + const id = pageId ? toEntityId(pageId): undefined; + pages.forEach(page => { - if (isEqualIds(page._id, pageId) && (!isEqualIds(pageId, currentPageId) || !ignoreSelf)) { + if (isEqualIds(page._id, id) && (!isEqualIds(id, currentPageId) || !ignoreSelf)) { result.push(page); } }); diff --git a/src/backend/routes/pages.ts b/src/backend/routes/pages.ts index 3c78087..1809b4e 100644 --- a/src/backend/routes/pages.ts +++ b/src/backend/routes/pages.ts @@ -15,6 +15,8 @@ router.get('/page/new', verifyToken, allowEdit, async (req: Request, res: Respon try { const pagesAvailableGrouped = await Pages.groupByParent(); + console.log(pagesAvailableGrouped); + res.render('pages/form', { pagesAvailableGrouped, page: null, diff --git a/src/backend/utils/twig.ts b/src/backend/utils/twig.ts index da2869a..17837b6 100644 --- a/src/backend/utils/twig.ts +++ b/src/backend/utils/twig.ts @@ -62,11 +62,16 @@ export default (function () { * @returns {string} stringified object */ twig.extendFunction('toString', function (object: object): string { + if (!object) { + return object; + } + return object.toString(); }); /** * Converts JSON to string + * * @param {string} data - data to be converted * @returns {string} - converted data */ diff --git a/src/backend/views/pages/form.twig b/src/backend/views/pages/form.twig index a75b67b..ca21995 100644 --- a/src/backend/views/pages/form.twig +++ b/src/backend/views/pages/form.twig @@ -28,7 +28,7 @@ {% for _page in pagesAvailableGrouped %} {% if toString(_page._id) != toString(currentPageId) %} -