feat(static-pages): navigation integration (insert page link)
Milestone 6 of the Static Pages Module sprint.
- ProjectEditorFacade.addStaticPageNavLink(target, pageId): creates a
NavigationItemConfig { type: 'staticPage', key: pageId }. This shape was
already understood end-to-end by the resolvers (StaticPageResolverService/
FooterResolverService derive label+route from the linked page - see
footer-resolver.service.ts resolveGroupItem/resolveLegacyItem) - the only
gap was that the editor UI never exposed a way to create it.
- navigation-section: "Insert page link" control (page picker + button) next
to both header and footer "Add link". Rows for a static-page link show a
"Linked to page" indicator instead of the raw label/URL inputs (those
fields don't apply - the resolver derives them dynamically). labelOf()
falls back to the page id for the row heading since a static-page link has
no label of its own.
- i18n: builder.insertPageLink, builder.linkedToPage in interface + en/ru/hy.
Verified (no rebuild needed) that pages already participate in preview(),
exportBootstrap()/importBootstrap(), and draft/publish gating - all flow
through bootstrap.staticPages and the M1-M2 additive fields untouched here.
Gate: tsc --noEmit, npm test (57/57), arch:check, build all green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -518,6 +518,8 @@ export const en: Translations = {
|
||||
navigationFooter: 'Footer Navigation',
|
||||
navigationFooterGrouped: 'Footer navigation uses grouped columns and is not editable here yet — edit via the Footer tab.',
|
||||
addLink: 'Add Link',
|
||||
insertPageLink: 'Insert page link',
|
||||
linkedToPage: 'Linked to page',
|
||||
removeLink: 'Remove',
|
||||
linkLabel: 'Label',
|
||||
linkUrl: 'URL',
|
||||
|
||||
@@ -518,6 +518,8 @@ export const hy: Translations = {
|
||||
navigationFooter: 'Ստորին նավիգացիա',
|
||||
navigationFooterGrouped: 'Ստորին նավիգացիան խմբավորված է սյուներով և դեռ խմբագրելի չէ այստեղ. օգտագործեք «Footer» ներդիրը։',
|
||||
addLink: 'Ավելացնել հղում',
|
||||
insertPageLink: 'Ներդնել էջի հղում',
|
||||
linkedToPage: 'Կապված է էջի հետ',
|
||||
removeLink: 'Հեռացնել',
|
||||
linkLabel: 'Պիտակ',
|
||||
linkUrl: 'URL',
|
||||
|
||||
@@ -518,6 +518,8 @@ export const ru: Translations = {
|
||||
navigationFooter: 'Навигация в подвале',
|
||||
navigationFooterGrouped: 'Навигация подвала сгруппирована по колонкам и пока недоступна для редактирования здесь — используйте вкладку "Подвал".',
|
||||
addLink: 'Добавить ссылку',
|
||||
insertPageLink: 'Вставить ссылку на страницу',
|
||||
linkedToPage: 'Связано со страницей',
|
||||
removeLink: 'Удалить',
|
||||
linkLabel: 'Название',
|
||||
linkUrl: 'URL',
|
||||
|
||||
@@ -516,6 +516,8 @@ export interface Translations {
|
||||
navigationFooter: string;
|
||||
navigationFooterGrouped: string;
|
||||
addLink: string;
|
||||
insertPageLink: string;
|
||||
linkedToPage: string;
|
||||
removeLink: string;
|
||||
linkLabel: string;
|
||||
linkUrl: string;
|
||||
|
||||
Reference in New Issue
Block a user