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) %}
-