Commit Graph

16 Commits

Author SHA1 Message Date
Alexander 0a408dd992 Fix Nix package webapp path by adding --web-dir to wrapper 2026-08-23 12:23:07 +02:00
Alexander 7b65fbe22c Add Nix packaging with NixOS module
- nix/package.nix: derivation for personal-backlog server + webapp
- nix/module.nix: NixOS module for services.personal-backlog
- Expose packages and nixosModules in flake.nix

Usage in NixOS configuration:
  services.personal-backlog = {
    enable = true;
    port = 8080;
    dataDir = "/var/lib/personal-backlog";
    openFirewall = false;
  };
2026-08-23 12:23:07 +02:00
Alexander 9a44bcbcfd Add flake 2026-08-23 12:23:07 +02:00
Ilia Sharin 2bcedda2c2 Add cold archive feature for done/cancelled items
- Separate archive.md file for archived items (append-only)
- Archive manager in Admin page with filters and search
- Global search shows archive results with count in header
- Restore items to original location via restore-path metadata
- Read-only view dialog for archived items (double-click to open)
- Python API endpoints: GET/POST /api/archive, POST /api/archive/restore
- Support in all storage backends (API, Direct, Browser)
2026-08-20 13:54:06 -04:00
Ilia Sharin 95a628249d Fix body field mismatch when switching between items in edit dialog
The RichTextEditor was not updating its content when switching from one
item to another because initializedRef was only reset when value became
null. Now uses prevValueRef to properly detect value changes.
2026-08-20 13:01:55 -04:00
Ilia Sharin f9ae92f605 Fix rich text editor cursor jumping and add auto-list conversion
- Fix cursor jumping to start when typing in editor by tracking editing state
- Only sync innerHTML from value on initial load, not during active editing
- Add auto-conversion: typing "- " or "* " at line start creates bullet list
- Add auto-conversion: typing "1. " at line start creates numbered list
2026-08-20 11:53:53 -04:00
Ilia Sharin 290905e3d9 Add optional rich text body field to items
- Add body field to data model (stored as markdown in file)
- Parser recognizes `> ` prefixed lines as body content
- Serializer outputs body as indented blockquote lines
- Add lightweight WYSIWYG editor (contenteditable, no external deps)
- Toolbar: bold, italic, link, H1/H2/H3, lists, code block, table, image
- Clipboard export: HTML (for Docs/Word), Markdown, plain text
- Editor shows collapsed when empty, expands on click
- Include body in text search filter
- Dark mode support for editor styles
- Update README with feature and file format example
2026-08-20 10:10:37 -04:00
Ilia Sharin 062d9ca736 Update README: fix Firefox/Safari storage description, add dark mode and icon sets, clarify storage modes 2026-05-07 17:23:06 -04:00
Ilia Sharin 37563ffe6e Add dark mode with system/light/dark theme selector in Appearance 2026-05-07 17:13:31 -04:00
Alexander Derevianko c2e9eaaa7b Add browser storage fallback for Firefox/Safari (#1)
IndexedDB-based storage backend with Storage Persistence API for browsers
without File System Access API support. Requests persistent storage on
first save to protect data from automatic eviction. Includes backup
rotation (last 10 saves) and appropriate UI banner.
2026-05-07 10:19:20 -04:00
Ilia Sharin 7e9231f0e6 Add icon set selector to admin page with persistent localStorage storage
- Appearance card in admin grid shows all 4 icon styles (color, flat, emoji, ascii)
  with live previews of all 6 statuses and a description for each
- Selected style persists across reloads via localStorage (LS_KEY alongside expandedMap)
- Stats overview card moved before Appearance card in admin grid
- Screenshot images added to README with titles before each image
2026-05-06 10:56:03 -04:00
Ilia Sharin 405b9816ad Added app screenshots 2026-05-05 19:02:59 -04:00
Ilia Sharin ead7997d11 Remove gitignored design/ from README structure 2026-05-05 18:43:37 -04:00
Ilia Sharin 0c44403dcb Merge branch 'main' of https://github.com/alfishe/backlog 2026-05-05 18:42:46 -04:00
Ilia Sharin a2a3b7b72b Initial version 2026-05-05 18:42:06 -04:00
Ilia Sharin d65a9e9667 Initial commit 2026-05-05 18:32:37 -04:00