1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-08-08 06:55:26 +02:00

fix yet another bug

This commit is contained in:
Nikita Melnikov 2022-10-02 12:54:27 +08:00
parent f8efc39400
commit c26b753c66
5 changed files with 13 additions and 8 deletions

View file

@ -202,7 +202,7 @@ class Pages {
* @param {PageData} data - info about page
* @returns {Promise<Page>}
*/
public static async update(id: string, data: PageData): Promise<Page> {
public static async update(id: EntityId, data: PageData): Promise<Page> {
const page = await Page.get(id);
const previousUri = page.uri;

View file

@ -2,6 +2,7 @@ import PageOrder from '../models/pageOrder.js';
import Page from '../models/page.js';
import PagesFlatArray from '../models/pagesFlatArray.js';
import { EntityId } from '../utils/database/types.js';
import {isEqualIds} from "../utils/database/index.js";
/**
* @class PagesOrder
@ -99,8 +100,7 @@ class PagesOrder {
*/
public static async getOrderedChildren(pages: Page[], currentPageId: EntityId, parentPageId: EntityId, ignoreSelf = false): Promise<Page[]> {
const children = await PageOrder.get(parentPageId);
console.log({children})
const unordered = pages.filter(page => 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
const ordered = Array.from(new Set([...children.order, ...unordered]));
@ -109,7 +109,7 @@ class PagesOrder {
ordered.forEach(pageId => {
pages.forEach(page => {
if (page._id === pageId && (pageId !== currentPageId || !ignoreSelf)) {
if (isEqualIds(page._id, pageId) && (!isEqualIds(pageId, currentPageId) || !ignoreSelf)) {
result.push(page);
}
});

View file

@ -3,6 +3,7 @@ import multerFunc from 'multer';
import Pages from '../../controllers/pages.js';
import PagesOrder from '../../controllers/pagesOrder.js';
import { EntityId } from '../../utils/database/types.js';
import {toEntityId} from "../../utils/database/index.js";
const router = express.Router();
const multer = multerFunc();
@ -15,7 +16,7 @@ const multer = multerFunc();
router.get('/page/:id', async (req: Request, res: Response) => {
try {
const page = await Pages.get(req.params.id);
const page = await Pages.get(toEntityId(req.params.id));
res.json({
success: true,
@ -89,7 +90,7 @@ router.put('/page', multer.none(), async (req: Request, res: Response) => {
* Update page data in the database
*/
router.post('/page/:id', multer.none(), async (req: Request, res: Response) => {
const { id } = req.params;
const id = toEntityId(req.params.id);
try {
const { title, body, parent, putAbovePageId, uri } = req.body;
@ -147,7 +148,7 @@ router.post('/page/:id', multer.none(), async (req: Request, res: Response) => {
*/
router.delete('/page/:id', async (req: Request, res: Response) => {
try {
const pageId = req.params.id;
const pageId = toEntityId(req.params.id);
const page = await Pages.get(pageId);
if (page._id === undefined) {

View file

@ -54,4 +54,8 @@ export default (function () {
return '';
}
});
twig.extendFilter('json_stringify', function (data: any): string {
return JSON.stringify(data);
})
}());

View file

@ -9,7 +9,7 @@
<section data-module="writing">
<textarea name="module-settings" hidden>
{
"page": {{ page | json_encode | escape }}
"page": {{ page | json_stringify | escape }}
}
</textarea>
<header class="writing-header">