feat(project-editor): add sticky save/publish bar with validation summary

Mounts a new ProjectEditorSaveBarComponent in the editor page that shows
draft/published status, unsaved-changes indicator, and validation issues,
wiring the Task 8 facade save()/publish()/dirty/status/validationIssues
signals to an actual UI for the first time.
This commit is contained in:
sdarbinyan
2026-07-13 15:00:03 +04:00
parent 85038df24a
commit 1e7add2fc8
9 changed files with 95 additions and 0 deletions

View File

@@ -512,6 +512,11 @@ export const en: Translations = {
validationMissingWidget: 'A homepage section has a widget with no type.',
validationDuplicateNavLinks: 'Two or more header navigation links are duplicates.',
validationInvalidColors: 'One or more theme colors are not valid hex colors.',
statusDraft: 'Draft',
statusPublished: 'Published',
unsavedChanges: 'Unsaved changes',
save: 'Save',
publish: 'Publish',
},
staticPages: {
notFound: 'Page not found',

View File

@@ -512,6 +512,11 @@ export const hy: Translations = {
validationMissingWidget: 'Գլխավոր էջի սեկցիաներից մեկն ունի վիջեթ առանց տիպի։',
validationDuplicateNavLinks: 'Վերնագրի նավիգացիայում կան կրկնվող հղումներ։',
validationInvalidColors: 'Թեմայի գույներից մեկը կամ մի քանիսը վավեր hex գույն չեն։',
statusDraft: 'Սևագիր',
statusPublished: 'Հրապարակված',
unsavedChanges: 'Չպահված փոփոխություններ',
save: 'Պահպանել',
publish: 'Հրապարակել',
},
staticPages: {
notFound: 'Էջը չի գտնվել',

View File

@@ -512,6 +512,11 @@ export const ru: Translations = {
validationMissingWidget: 'В секции главной страницы есть виджет без типа.',
validationDuplicateNavLinks: 'Две или более ссылки в навигации шапки дублируются.',
validationInvalidColors: 'Один или несколько цветов темы указаны некорректно.',
statusDraft: 'Черновик',
statusPublished: 'Опубликовано',
unsavedChanges: 'Есть несохранённые изменения',
save: 'Сохранить',
publish: 'Опубликовать',
},
staticPages: {
notFound: 'Страница не найдена',

View File

@@ -510,6 +510,11 @@ export interface Translations {
validationMissingWidget: string;
validationDuplicateNavLinks: string;
validationInvalidColors: string;
statusDraft: string;
statusPublished: string;
unsavedChanges: string;
save: string;
publish: string;
};
staticPages: {
notFound: string;