Commit Graph

33 Commits

Author SHA1 Message Date
Saberlve
1f7cbc7d10 fix: add missing projects.py to worktree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:03:36 +08:00
Saberlve
6c1713e190 test: add missing fixture files and __init__.py to worktree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 18:58:46 +08:00
Saberlve
63de030789 feat: add GET /api/projects/{id}/import-state endpoint
Returns pending/done status for each item in a project by checking
selected-items.json against cards.json.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 18:44:43 +08:00
Saberlve
cc1960e9a9 docs: add two-step import+card generation implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:04:08 +08:00
Saberlve
5899e44791 docs: add two-step import+card generation design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:56:59 +08:00
Saberlve
b955d382e3 fix: add missing cancelAbstractPreview function and related state
The openImportWindow and closeImportWindow functions referenced
cancelAbstractPreview which was not defined. Added:
- hoverTimerId, hoveredItemKey, previewItemKey to state
- previewPopover to elements object
- cancelAbstractPreview function

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:33:41 +08:00
Saberlve
d624315fbf fix(import-window): move window shell outside layout to fix z-index stacking
The window-shell was incorrectly placed inside the first .panel section.
.panel creates a stacking context via backdrop-filter/overflow, trapping
the position:fixed window frame. Moving window-shell and minimized-bar
to be direct children of <body> (outside <main class="layout">) so
z-index:40 properly covers all panels.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:21:53 +08:00
Saberlve
4829dce3a6 Merge branch 'feature/import-floating-window' into master
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:18:08 +08:00
Saberlve
42b80215fd test(import-window): fix window-project-label to import-window-project-label
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:13:16 +08:00
Saberlve
034da6e136 test(import-window): update UI tests for floating window
Updates test assertions to match new window IDs and function names:
- import-window-shell, window-minimize-button, window-maximize-button,
  window-close-button, window-restore-button, import-window-minimized-bar
- window-project-label, window-collection-tree, window-collection-items
- window-selected-count, window-clear-selection-button
- window-import-selected-items-button
- isImportWindowOpen, openImportWindow, closeImportWindow
- New window management functions in CSS and JS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 16:08:07 +08:00
Saberlve
947cef19ec feat(import-window): implement drag, minimize, maximize, close + rename refs
- Add window management functions: applyWindowPositionAndSize,
  initWindowFromSession, startWindowDrag, moveWindowDrag, endWindowDrag,
  minimizeWindow, maximizeWindow, restoreWindow
- Wire window control button event listeners
- Rename openImportModal→openImportWindow, closeImportModal→closeImportWindow
- Update all element references from modal*→window* names
- Remove selectDescendantsButton references
- openImportWindow now calls initWindowFromSession on open

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:58:45 +08:00
Saberlve
35d1db4fd7 feat(import-window): add window state management to JS
Adds WINDOW_SESSION_STORAGE_KEY, readWindowSessionState(),
window state properties to state object, new element references
in elements object, and persistWindowSessionState().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:53:51 +08:00
Saberlve
998551ab19 feat(import-window): replace modal CSS with window frame CSS
Replaces .modal-shell, .modal-overlay, .modal-card with
.window-shell, .window-frame supporting:
- 90vw x 75vh centered floating window
- minimize/maximize/close buttons
- draggable toolbar
- resizable window
- session-persisted position/size

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:52:33 +08:00
Saberlve
fa0b4933c3 feat(import-window): add window state management to JS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:49:31 +08:00
Saberlve
803cccfbd1 feat(import-window): replace modal HTML with window frame structure
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:43:28 +08:00
Saberlve
05a5e99ee0 feat(import-window): replace modal CSS with window frame CSS
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:35:55 +08:00
Saberlve
5dee76ecd1 docs: add import floating window design spec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:21:07 +08:00
Saberlve
6003300135 docs: revise zotero import spec for fullscreen modal 2026-04-15 14:52:25 +08:00
Saberlve
3667e313a4 refactor: derive modal project label from canonical state 2026-04-15 12:54:27 +08:00
Saberlve
1660e1203d test: restore narrow modal state contract 2026-04-15 12:54:27 +08:00
Saberlve
00106e11d5 fix: reset modal load state after fetch errors 2026-04-15 12:54:27 +08:00
Saberlve
3a1c046a68 fix: sequence modal collection item loads 2026-04-15 12:54:27 +08:00
Saberlve
4b6c78105e fix: validate modal session state 2026-04-15 12:54:27 +08:00
Saberlve
a117a29b0d fix: keep modal rows compact and label project by name 2026-04-15 12:54:27 +08:00
Saberlve
ec32d591df feat: wire modal import state 2026-04-15 12:54:27 +08:00
Saberlve
d52a52b574 fix: add minimal zotero modal lifecycle 2026-04-15 12:22:49 +08:00
Saberlve
0e62d0fc4e fix: simplify zotero import modal shell 2026-04-15 12:21:17 +08:00
Saberlve
4db4632ac8 fix: trim zotero import modal shell 2026-04-15 12:18:34 +08:00
Saberlve
6a2250ef1a feat: add zotero import modal shell 2026-04-15 12:16:31 +08:00
Saberlve
f7554b889a test: split modal import ui contract 2026-04-15 12:12:12 +08:00
Saberlve
ff9f64675c test: define modal import ui contract 2026-04-15 12:10:33 +08:00
Saberlve
2566508b48 docs: revise zotero import spec for modal flow 2026-04-15 12:04:51 +08:00
Saberlve
0c0c773e61 docs: add zotero collection import design 2026-04-15 11:48:43 +08:00