1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-08-10 07:55:24 +02:00
This commit is contained in:
Nikita Melnikov 2022-10-03 18:02:03 +08:00
parent 462d1b26f1
commit 432edd6167
4 changed files with 14 additions and 5 deletions

View file

@ -2,7 +2,7 @@ import PageOrder from '../models/pageOrder.js';
import Page from '../models/page.js'; import Page from '../models/page.js';
import PagesFlatArray from '../models/pagesFlatArray.js'; import PagesFlatArray from '../models/pagesFlatArray.js';
import { EntityId } from '../database/types.js'; import { EntityId } from '../database/types.js';
import { isEqualIds } from '../database/index.js'; import { isEqualIds, toEntityId } from '../database/index.js';
/** /**
* @class PagesOrder * @class PagesOrder
@ -103,13 +103,15 @@ class PagesOrder {
const unordered = pages.filter(page => isEqualIds(page._parent, parentPageId)).map(page => page._id); const unordered = pages.filter(page => isEqualIds(page._parent, parentPageId)).map(page => page._id);
// Create unique array with ordered and unordered pages 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[] = []; const result: Page[] = [];
ordered.forEach(pageId => { ordered.forEach(pageId => {
const id = pageId ? toEntityId(pageId): undefined;
pages.forEach(page => { pages.forEach(page => {
if (isEqualIds(page._id, pageId) && (!isEqualIds(pageId, currentPageId) || !ignoreSelf)) { if (isEqualIds(page._id, id) && (!isEqualIds(id, currentPageId) || !ignoreSelf)) {
result.push(page); result.push(page);
} }
}); });

View file

@ -15,6 +15,8 @@ router.get('/page/new', verifyToken, allowEdit, async (req: Request, res: Respon
try { try {
const pagesAvailableGrouped = await Pages.groupByParent(); const pagesAvailableGrouped = await Pages.groupByParent();
console.log(pagesAvailableGrouped);
res.render('pages/form', { res.render('pages/form', {
pagesAvailableGrouped, pagesAvailableGrouped,
page: null, page: null,

View file

@ -62,11 +62,16 @@ export default (function () {
* @returns {string} stringified object * @returns {string} stringified object
*/ */
twig.extendFunction('toString', function (object: object): string { twig.extendFunction('toString', function (object: object): string {
if (!object) {
return object;
}
return object.toString(); return object.toString();
}); });
/** /**
* Converts JSON to string * Converts JSON to string
*
* @param {string} data - data to be converted * @param {string} data - data to be converted
* @returns {string} - converted data * @returns {string} - converted data
*/ */

View file

@ -28,7 +28,7 @@
<option value="0">Root</option> <option value="0">Root</option>
{% for _page in pagesAvailableGrouped %} {% for _page in pagesAvailableGrouped %}
{% if toString(_page._id) != toString(currentPageId) %} {% if toString(_page._id) != toString(currentPageId) %}
<option value="{{ _page._id }}" {{ page is not empty and toString(page._parent) == toString(_page._id) ? 'selected' : ''}}> <option value="{{ toString(_page._id) }}" {{ page is not empty and toString(page._parent) == toString(_page._id) ? 'selected' : ''}}>
{% if _page._parent != "0" %} {% if _page._parent != "0" %}
&nbsp; &nbsp;
&nbsp; &nbsp;
@ -45,7 +45,7 @@
<select id="above" name="above"> <select id="above" name="above">
<option value="0">—</option> <option value="0">—</option>
{% for _page in parentsChildrenOrdered %} {% for _page in parentsChildrenOrdered %}
<option value="{{ _page._id }}">{{ _page.title }}</option> <option value="{{ toString(_page._id) }}">{{ _page.title }}</option>
{% endfor %} {% endfor %}
</select> </select>
</div> </div>