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:
parent
f8efc39400
commit
c26b753c66
5 changed files with 13 additions and 8 deletions
|
@ -202,7 +202,7 @@ class Pages {
|
||||||
* @param {PageData} data - info about page
|
* @param {PageData} data - info about page
|
||||||
* @returns {Promise<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 page = await Page.get(id);
|
||||||
const previousUri = page.uri;
|
const previousUri = page.uri;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +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 '../utils/database/types.js';
|
import { EntityId } from '../utils/database/types.js';
|
||||||
|
import {isEqualIds} from "../utils/database/index.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @class PagesOrder
|
* @class PagesOrder
|
||||||
|
@ -99,8 +100,7 @@ class PagesOrder {
|
||||||
*/
|
*/
|
||||||
public static async getOrderedChildren(pages: Page[], currentPageId: EntityId, parentPageId: EntityId, ignoreSelf = false): Promise<Page[]> {
|
public static async getOrderedChildren(pages: Page[], currentPageId: EntityId, parentPageId: EntityId, ignoreSelf = false): Promise<Page[]> {
|
||||||
const children = await PageOrder.get(parentPageId);
|
const children = await PageOrder.get(parentPageId);
|
||||||
console.log({children})
|
const unordered = pages.filter(page => isEqualIds(page._parent, parentPageId)).map(page => page._id);
|
||||||
const unordered = pages.filter(page => 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]));
|
||||||
|
@ -109,7 +109,7 @@ class PagesOrder {
|
||||||
|
|
||||||
ordered.forEach(pageId => {
|
ordered.forEach(pageId => {
|
||||||
pages.forEach(page => {
|
pages.forEach(page => {
|
||||||
if (page._id === pageId && (pageId !== currentPageId || !ignoreSelf)) {
|
if (isEqualIds(page._id, pageId) && (!isEqualIds(pageId, currentPageId) || !ignoreSelf)) {
|
||||||
result.push(page);
|
result.push(page);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,6 +3,7 @@ import multerFunc from 'multer';
|
||||||
import Pages from '../../controllers/pages.js';
|
import Pages from '../../controllers/pages.js';
|
||||||
import PagesOrder from '../../controllers/pagesOrder.js';
|
import PagesOrder from '../../controllers/pagesOrder.js';
|
||||||
import { EntityId } from '../../utils/database/types.js';
|
import { EntityId } from '../../utils/database/types.js';
|
||||||
|
import {toEntityId} from "../../utils/database/index.js";
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const multer = multerFunc();
|
const multer = multerFunc();
|
||||||
|
@ -15,7 +16,7 @@ const multer = multerFunc();
|
||||||
|
|
||||||
router.get('/page/:id', async (req: Request, res: Response) => {
|
router.get('/page/:id', async (req: Request, res: Response) => {
|
||||||
try {
|
try {
|
||||||
const page = await Pages.get(req.params.id);
|
const page = await Pages.get(toEntityId(req.params.id));
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
success: true,
|
success: true,
|
||||||
|
@ -89,7 +90,7 @@ router.put('/page', multer.none(), async (req: Request, res: Response) => {
|
||||||
* Update page data in the database
|
* Update page data in the database
|
||||||
*/
|
*/
|
||||||
router.post('/page/:id', multer.none(), async (req: Request, res: Response) => {
|
router.post('/page/:id', multer.none(), async (req: Request, res: Response) => {
|
||||||
const { id } = req.params;
|
const id = toEntityId(req.params.id);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { title, body, parent, putAbovePageId, uri } = req.body;
|
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) => {
|
router.delete('/page/:id', async (req: Request, res: Response) => {
|
||||||
try {
|
try {
|
||||||
const pageId = req.params.id;
|
const pageId = toEntityId(req.params.id);
|
||||||
const page = await Pages.get(pageId);
|
const page = await Pages.get(pageId);
|
||||||
|
|
||||||
if (page._id === undefined) {
|
if (page._id === undefined) {
|
||||||
|
|
|
@ -54,4 +54,8 @@ export default (function () {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
twig.extendFilter('json_stringify', function (data: any): string {
|
||||||
|
return JSON.stringify(data);
|
||||||
|
})
|
||||||
}());
|
}());
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<section data-module="writing">
|
<section data-module="writing">
|
||||||
<textarea name="module-settings" hidden>
|
<textarea name="module-settings" hidden>
|
||||||
{
|
{
|
||||||
"page": {{ page | json_encode | escape }}
|
"page": {{ page | json_stringify | escape }}
|
||||||
}
|
}
|
||||||
</textarea>
|
</textarea>
|
||||||
<header class="writing-header">
|
<header class="writing-header">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue