soroush.asadi
b47314fcab
feat(admin): image thumbnails in lists + template image/demo fields
...
- AdminThumb: reusable thumbnail (raster + SVG via <img>, dashed fallback on
empty/broken)
- AdminResource: ColumnDef gains type:"image" → renders thumbnails in tables
- image thumbnail columns for categories, slides, home-events, internal routes;
categories icon field now multiline (accepts raw SVG markup)
- TemplatesAdmin: cover image / mini-demo / demo / full-demo upload fields
(backed by existing container image/demo fields) + thumbnail column in the list
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:23:52 +03:30
soroush.asadi
0b538e1b1e
feat(content+admin): home-events CRUD + comments moderation
...
Build backend images / build content-svc (push) Failing after 45s
Build backend images / build file-svc (push) Failing after 1m3s
Build backend images / build gateway (push) Failing after 0s
Build backend images / build identity-svc (push) Failing after 0s
Build backend images / build notification-svc (push) Failing after 1s
Build backend images / build render-svc (push) Failing after 1s
Build backend images / build studio-svc (push) Failing after 0s
- content-svc: home-events gains Create/Update/Delete + includeInactive list
(POST/PUT/DELETE /v1/home-events, admin-gated; dates coerced to UTC)
- admin /admin/home-events: full CRUD for homepage hero event banners
- admin /admin/comments: list + approve/unapprove + delete (moderation)
- AdminResource: optional listQuery to fetch inactive rows for admin views
Fills the remaining legacy-admin gaps (home events, comments).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 22:24:56 +03:30
soroush.asadi
163f0c9ec3
feat(admin): media library + upload component (replace URL fields)
...
- /admin/files Media Library: drag-drop multi-upload, thumbnails, copy-URL, delete
- FileUploadField replaces raw URL inputs; new "image" field type in AdminResource;
wired into category image
- upload proxy /api/admin/files/upload: browser → Next → presigned PUT (server-side,
reaches minio:9000) → confirm → returns public URL
- user-uploads bucket is public-read; public base via NEXT_PUBLIC_MINIO_URL
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 14:55:52 +03:30
soroush.asadi
3fc7bf2b97
feat: AI SEO generator, full admin panel, i18n sweep, new logo + auth/RTL fixes
...
Build backend images / build content-svc (push) Failing after 3m39s
Build backend images / build file-svc (push) Failing after 52s
Build backend images / build gateway (push) Failing after 58s
Build backend images / build identity-svc (push) Failing after 1m21s
Build backend images / build notification-svc (push) Failing after 1m0s
Build backend images / build render-svc (push) Failing after 58s
Build backend images / build studio-svc (push) Failing after 55s
AI SEO content generator
- content-svc: per-tenant OpenAI config (ai_settings) + /v1/ai endpoints
(settings GET/PUT, seo-post) with SEO-expert prompt → structured article
- admin UI to configure token/base-url/model and generate + save as blog
- configurable base URL for restricted networks
Full data-driven admin panel
- generic /api/admin/resource proxy + reusable AdminResource component
- categories/tags/fonts/blogs (CRUD), users (list + ban), plans/slides
- AI content section; nav + i18n
i18n localization sweep
- localized 116 user-facing + studio/editor components to next-intl (fa+en)
under the auto.* namespace; merge tooling in scripts/merge-i18n.js
Branding + assets
- Monoline F logo (LogoMark + favicon)
- offline SVG placeholder generator (/api/placeholder), dropped picsum.photos
Fixes
- JWT issuer mismatch on content/studio (flatrender → flatrender-identity)
- missing role claim → [Authorize(Roles="Admin")] now works (RBAC)
- Secure cookies broke HTTP sessions → gated behind AUTH_COOKIE_SECURE
- Radix RTL via DirectionProvider (right-aligned menus in fa)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 09:35:14 +03:30