diff --git a/.codexdocsrc.sample b/.codexdocsrc.sample index c6d9ca7..43b9f94 100644 --- a/.codexdocsrc.sample +++ b/.codexdocsrc.sample @@ -5,7 +5,6 @@ "Guides", {"title": "CodeX", "uri": "https://codex.so"} ], - "landingFrameSrc": "https://codex.so/editor?frame=1", "startPage": "", "misprintsChatId": "12344564", "yandexMetrikaId": "", diff --git a/src/backend/routes/home.ts b/src/backend/routes/home.ts index 3f82940..74ce2b8 100644 --- a/src/backend/routes/home.ts +++ b/src/backend/routes/home.ts @@ -1,5 +1,8 @@ import express, { Request, Response } from 'express'; import verifyToken from './middlewares/token.js'; +import PagesOrder from '../controllers/pagesOrder.js'; +import Pages from '../controllers/pages.js'; + const router = express.Router(); @@ -7,10 +10,22 @@ const router = express.Router(); router.get('/', verifyToken, async (req: Request, res: Response) => { const config = req.app.locals.config; + // Check if config consists startPage if (config.startPage) { return res.redirect(config.startPage); + } else { + const pageOrder = await PagesOrder.getRootPageOrder(); + + // Check if page order consists + if (pageOrder.order.length > 0) { + // Get the first parent page + const page = await Pages.get(pageOrder.order[0]); + + res.redirect(page.uri!); + } else { + res.render('pages/index', { isAuthorized: res.locals.isAuthorized }); + } } - res.render('pages/index', { isAuthorized: res.locals.isAuthorized }); }); export default router; diff --git a/src/backend/views/pages/index.twig b/src/backend/views/pages/index.twig index 33d0a17..ca975db 100644 --- a/src/backend/views/pages/index.twig +++ b/src/backend/views/pages/index.twig @@ -3,7 +3,6 @@ {{ config.title }} - @@ -12,13 +11,15 @@ - + {% include "components/header.twig" %} -
- {{ svg('loader') }} +
+ {{ svg('frog') }} +

+ It’s time to create the first page! +

+ {% include 'components/button.twig' with {label: 'Add page', icon: 'plus', size: 'small', url: '/page/new'} %}
- - {% if config.yandexMetrikaId is not empty %}