BetterFrame/server/src/plugins/service-admin-http
Mitchell R 7206847c97
feat(layout-editor): visual drag-resize grid editor for layout cells
Browser-side layout editor (no build step, vanilla JS):
  - Click to select cells
  - Drag edges (right/bottom/corner handles) to resize col_span/row_span
  - Drag cells to reposition (row/col) with grid-aware snap
  - Visual feedback: selection outline, resize handle highlights, drag opacity

Server: POST /admin/layouts/:id/cells/:cellId/move route for drag-drop
repositioning. Existing /resize route handles span changes.

CSS: inline resize handle styles + selection state. Handles appear on
hover (6px edge bars + 12px corner square).

layout-editor.js loaded via /static/. Activates on any grid with
data-layout-editor="<layoutId>" attribute. Compatible with htmx —
re-initializes after swap via htmx:afterSettle listener.

data-cell-id attribute added to each .layout-cell div for JS targeting.
2026-05-23 02:28:42 +02:00
..
html-response.ts feat(server): rate limit (login + pair) + CSP/security headers 2026-05-14 07:40:22 +02:00
index.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
middleware.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
routes-account.ts fix: use Response wrapper instead of h3 tagged template html() 2026-05-10 02:50:16 +02:00
routes-admin.ts feat(layout-editor): visual drag-resize grid editor for layout cells 2026-05-23 02:28:42 +02:00
routes-auth.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
routes-firmware.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
routes-os-updates.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
routes-setup.ts feat(db): full async Repository conversion for PostgreSQL support 2026-05-23 02:07:44 +02:00
routes-static.ts adding initial project 2026-05-10 01:09:13 +02:00