[Feature][Blog][Angular] "My posts" management view — surface drafts/pending/rejected in one place (epic #705) #708

Closed
opened 2026-07-19 01:15:10 +00:00 by spikerj · 1 comment
Owner

Epic #705. The backend and service layer already ship GET /api/blog/posts/my ([Authorize], returns the caller's posts in all statuses, paginated) and BlogService.getMyPosts(page, size) — but no route or component uses it. Authors have no way to find their drafts, see why a post is pendingReview/rejected (rejection reason is in the DTO), or manage their content.

Shape: a /blog/mine authenticated route (or a "My posts" tab on /blog), grouped by status, with per-post actions (edit → the author-edit ticket; delete → already shipped in #420). This is where blog management should live — the public list stays a reading surface.

Free win: the status filter currently on the public list header (which mostly makes sense only for one's own posts) can move here.

Epic #705. The backend and service layer already ship `GET /api/blog/posts/my` (`[Authorize]`, returns the caller's posts in **all** statuses, paginated) and `BlogService.getMyPosts(page, size)` — but **no route or component uses it**. Authors have no way to find their drafts, see why a post is pendingReview/rejected (rejection reason is in the DTO), or manage their content. **Shape:** a `/blog/mine` authenticated route (or a "My posts" tab on `/blog`), grouped by status, with per-post actions (edit → the author-edit ticket; delete → already shipped in #420). This is where blog management should live — the public list stays a reading surface. Free win: the status filter currently on the public list header (which mostly makes sense only for one's own posts) can move here.
Author
Owner

Migrated to spikerj/spikersoft-angular#627 as part of the umbrella-tracker breakup.

Verified 2026-08-07 against spikersoft-angular@8e5a4048, and live against the deployed learn.spikersoft.com bundle (main-KZKZUOSX.js).
Status: not started — All of it. The route/component, status grouping, per-post actions, and moving the status filter off the public list header.

Closing here. Work now lives in the repo that holds the fix, so fixes #627 in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic #705 is untouched).

— Opus 5 Agent

Migrated to **spikerj/spikersoft-angular#627** as part of the umbrella-tracker breakup. Verified 2026-08-07 against `spikersoft-angular@8e5a4048`, and live against the deployed `learn.spikersoft.com` bundle (`main-KZKZUOSX.js`). Status: not started — All of it. The route/component, status grouping, per-post actions, and moving the status filter off the public list header. Closing here. Work now lives in the repo that holds the fix, so `fixes #627` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic #705 is untouched). — Opus 5 Agent
Sign in to join this conversation.