Commit Graph
49 Commits
Author SHA1 Message Date
uhlwoogiandClaude Opus 4.7 7f36f30dad Add page management to the structured editor
Pages can now be reordered, renamed, and have their metadata edited
without touching YAML.

- Up/down arrows next to each page in the /edit list to reorder.
- "Settings" button per page opens /edit/pages/{slug}/settings — a
  form covering name, slug, page width, desktop nav width, mobile
  header, hide desktop nav, center vertically.
- POST /edit/api/pages/{slug}/fields applies metadata changes
  surgically via the existing yaml.Node + atomic-save flow so
  columns/widgets/comments stay untouched.
- POST /edit/api/pages/{slug}/move?dir=up|down swaps adjacent pages.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 17:18:52 +00:00
uhlwoogiandClaude Opus 4.7 8ba6dcb704 Add column editing in dashboard edit mode
Per-column header bar with size dropdown (small/full), left/right
move arrows, and delete. New "+ Add column" button at the bottom of
the page-columns container. Each action POSTs to a column endpoint
and reloads.

Backend endpoints:
- POST /edit/api/pages/{slug}/columns — add (form: size)
- POST /edit/api/pages/{slug}/columns/{col}/delete
- POST /edit/api/pages/{slug}/columns/{col}/move?dir=left|right
- POST /edit/api/pages/{slug}/columns/{col}/size — set size

All go through configEditor's yaml.Node tree so comments and other
config survive.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 17:16:08 +00:00
uhlwoogiandClaude Opus 4.7 4b8a34a2ae Add in-place dashboard edit mode
A toggle on the dashboard flips into edit mode where widgets get
drag/edit/delete handles and a "+ Add widget" button per column. Most
edits no longer require touching YAML.

- Drag-drop reorder via SortableJS, persisted through a bulk-layout
  endpoint that rebuilds each column's widgets sequence in the
  yaml.Node tree.
- Inline form dialog driven by per-widget field schemas
  (admin-schemas.go) covering 25 widget types. Surgical updates apply
  changed fields to the widget node so untouched keys and comments
  survive. Falls back to the existing YAML editor for group and
  split-column (those need a recursive nested-widget UI).
- Per-column "+ Add widget" picker that opens the dialog pre-filled
  with sensible defaults for the chosen type.
- Field validation and autocomplete for weather location (Open-Meteo
  geocoding), market symbol (Yahoo Finance), and RSS feed URL
  (gofeed). Network failures soft-pass for weather/markets so the
  save isn't blocked when external APIs are unreachable.
- Picking a market suggestion auto-fills the company name field via
  per-suggestion `extra` fields.
- Edit mode persists across reloads via localStorage so saves don't
  drop the user back into view mode.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 16:51:52 +00:00
uhlwoogiandClaude Opus 4.7 2e198a19b4 Add in-app edit UI for dashboard config
A web editor at /edit for managing pages and widgets without hand-editing YAML:

- Page list and per-page widget views with breadcrumb navigation
- Add/delete pages, add/delete/reorder widgets within a column
- Per-widget textarea editor with curated starter templates, widget-specific
  help (example, full field reference, link to upstream docs), and inline
  error rendering that preserves the user's edits on validation failure
- Pre-save validation via newConfigFromYAML; atomic temp+rename writes with
  .bak backup; YAML edits go through yaml.Node so comments and unresolved
  ${env:X}/${secret:X} tokens survive round-trips
- Auth gate: editing requires auth.users to be configured, or
  admin.allow-without-auth: true as an explicit opt-in for trusted networks
- Pencil button on the dashboard near the theme picker for quick access
- Admin views read fresh from disk so the list updates immediately after
  saves rather than lagging the fsnotify watcher

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 14:12:18 +00:00
Svilen Markov b4094b28bd Allow disabling theme picker 2025-05-19 21:25:33 +01:00
Svilen Markov e99ee4f774 Fix server crash when using head-widgets 2025-05-14 22:00:02 +01:00
Svilen Markov 4ed8bef562 Update default light theme 2025-05-07 21:03:58 +01:00
Svilen Markov 9324da6a2f Change default light theme 2025-05-07 20:17:30 +01:00
Svilen Markov ce3a7ee29c Update auth stuff 2025-05-07 19:47:35 +01:00
Svilen Markov c9e6b774f3 Add head-widgets 2025-05-06 13:37:14 +01:00
Svilen Markov 9ffb2d9939 Change default light theme 2025-05-06 11:31:57 +01:00
Svilen Markov 6b7d68d960 Add auth 2025-05-06 01:38:22 +01:00
Svilen Markov 26ab9c7b05 Auto detect favicon type and add fallback 2025-05-05 11:03:30 +01:00
Svilen Markov 0e91958de5 Reduce text saturation of default light theme 2025-05-04 17:09:49 +01:00
Svilen Markov 6624b635df Increase contrast of default light theme 2025-05-04 17:05:20 +01:00
Svilen Markov c2286f9a22 Update implementation 2025-05-04 16:49:20 +01:00
Svilen Markov a68805b55d Merge remote-tracking branch 'upstream/dev' into theme_switcher 2025-04-29 18:55:30 +01:00
HECHT Axel 62e9c32082 feat: theme switcher 2025-01-15 12:19:50 +01:00
Svilen Markov d4b1d240b9 Fix releasing page mutex during template execution 2024-12-08 14:55:53 +00:00
Svilen Markov 02cbb5f812 Fix CS 2024-11-30 10:48:33 +00:00
Svilen Markov 03035d1a2d Move template vars 2024-11-29 20:45:33 +00:00
Svilen Markov 90fbba600f Restructure & refactor codebase 2024-11-29 16:34:15 +00:00
Svilen Markov 2b0dd3ab99 Refactor 1/2 + new stuff
* Refactor CLI
* Add config:print command
* Add diagnose command
* Allow including other files in config
* Watch for file changes and automatically restart server
2024-11-24 15:39:14 +00:00
Svilen Markov 5e576a58e9 Merge branch 'release/v0.7.0' into default-expand-mobile-navigation 2024-11-16 07:20:49 +00:00
Svilen Markov c1efd3f68b Fix formatting 2024-11-16 07:15:26 +00:00
Ralph Ocdol f6f352e9e0 fix: indention 2024-10-29 18:15:28 +08:00
Ralph Ocdol 33dede8abc feat: added auto expand mobile page navigation 2024-10-29 18:13:24 +08:00
Svilen Markov 3cfbe65855 Make the first full column the primary on mobile rather than the last 2024-10-15 15:58:30 +01:00
Svilen Markov 9a36187333 Add /api/healthz endpoint
Create release / release (push) Has been cancelled
2024-09-30 00:42:19 +01:00
Svilen Markov cf0dd07c21 Add center-vertically property 2024-08-31 17:35:38 +01:00
Svilen Markov 785f6a36bf Increase assets cache time 2024-08-27 17:29:31 +01:00
Svilen Markov 1a4c12d851 Fix hardcoded release icons 2024-08-27 17:17:41 +01:00
Svilen Markov 7ffca9c3f1 Allow setting custom footer 2024-08-27 00:09:26 +01:00
Svilen Markov f57bdeec12 Update branding config 2024-08-10 19:43:50 +01:00
Svilen Markov 9899f6b761 Merge branch 'release/v0.6.0' into main 2024-08-10 18:47:39 +01:00
Svilen Markov 4de465e544 Add some foolproofery 2024-08-05 14:11:19 +01:00
Svilen Markov e1161b9227 Refactor base-url & add documentation 2024-08-05 14:08:16 +01:00
Svilen Markov c2cdd0fa08 Merge branch 'release/v0.6.0' into main 2024-08-05 13:26:46 +01:00
Svilen Markov b365a03e71 Allow hiding desktop navigation 2024-08-05 12:42:41 +01:00
Svilen Markov 3fea166274 Add page width customizability 2024-08-04 23:40:58 +01:00
Svilen Markov 795caa5d9d Allow widgets to handle HTTP requests 2024-08-01 18:26:38 +01:00
dvdandroid 0730789cb3 Fix crash when using a custom CSS file; fix error 404 for manifest.json 2024-07-25 16:57:10 +02:00
CremaLuca 23d6d41148 fix(serve): using paths without base url 2024-07-10 15:40:35 +02:00
Luca Crema a07fbfd7b7 Added baseurl somewhere 2024-07-10 15:35:25 +02:00
Svilen Markov 122d05346b Change caching mechanism 2024-06-29 15:20:26 +01:00
David Leonard 3cfbe0c89b Allow some branding customization. 2024-05-17 14:37:05 -07:00
Svilen Markov 2389415071 Add mobile reachability header 2024-05-08 01:21:55 +01:00
Svilen Markov 748ad1ff8d Allow setting path to custom CSS 2024-04-29 16:47:18 +01:00
Svilen Markov ec8ba40cf0 Initial commit 2024-04-27 20:10:24 +01:00