AI Implementation feature(914): Admin Area Blog and Blog Page 1.00 #59

Merged
m0rph3us1987 merged 2 commits from feature-914-1784802404863 into dev 2026-07-23 10:37:53 +00:00
3 changed files with 11 additions and 3 deletions
Showing only changes of commit 79a9adf720 - Show all commits
+1 -1
View File
@@ -50,7 +50,7 @@ Routes live in `frontend/src/app/app.routes.ts`:
| `BlogPage` | `frontend/src/app/features/blog/blog.page.ts` | Smart `/blog` page that loads published posts and derives loading, error, empty, and list states. |
| `BlogPresenterComponent` | `frontend/src/app/features/blog/blog-presenter.component.ts` | Shared title/date/sanitized-Markdown renderer used by `/blog` and `/login`. |
| `AdminBlogComponent` | `frontend/src/app/features/admin/blog/blog.component.ts` | Smart `/admin/blog` page coordinating list refresh and create/edit/delete modal state. |
| `BlogFormModalComponent` / `BlogDeleteModalComponent` | `frontend/src/app/features/admin/blog/` | Admin Markdown editor with live preview and destructive-action confirmation. |
| `BlogFormModalComponent` / `BlogDeleteModalComponent` | `frontend/src/app/features/admin/blog/` | Admin Markdown editor with live preview and destructive-action confirmation. `BlogFormModalComponent` also installs a `@HostListener('document:keydown.escape')` handler that closes the modal via `onCancel()` when the modal is open and not currently saving (mirrors the `change-password-modal` Escape contract). |
# Authenticated SSE wiring
+9 -1
View File
@@ -3,7 +3,7 @@ type: guide
title: Blog Publishing and Reading
description: How administrators create, edit, publish, and delete Markdown posts and how users read published posts.
tags: [guide, blog, admin, markdown, tester]
timestamp: 2026-07-23T10:12:24Z
timestamp: 2026-07-23T10:36:45Z
---
# User views
@@ -34,6 +34,14 @@ Both views use `BlogPresenterComponent` to show the post title, publication date
* Click the trash action to open **Delete post**. The confirmation includes the title and warns that deletion cannot be undone.
* Click **Delete** to remove the post. The table refreshes and displays `Post deleted.`. Click **Cancel** or the modal backdrop to leave the post unchanged.
# Closing modals with Escape
Both the **New post / Edit post** modal and the **Delete post** confirmation honor the platform-wide Escape-to-close convention:
* Pressing **Escape** while the modal is open closes it without saving or deleting.
* Escape is suppressed while a save/publish request is in flight (the modal stays open until the current operation completes), so an in-flight create or update cannot be silently cancelled by an accidental keypress.
* Escape, the **Cancel** / **Delete** buttons, and clicking the modal backdrop all close the modal via the same `onCancel()``cancel` output flow; no partial post is ever created or modified when Escape is pressed.
# Validation and expected errors
| Input or operation | Expected behavior |
+1 -1
View File
@@ -12,7 +12,7 @@ controls, administrator-managed Markdown blog publishing, and public and
signed-in blog views.
The docs below are organized by purpose so agents can pull just the slice
they need. Last regenerated 2026-07-23T10:12:24Z.
they need. Last regenerated 2026-07-23T10:36:45Z.
# Architecture