feat(ui): open Database-mode nests from a larger saved-nest browser

File > Open in Database mode now shows a resizable browser instead of
the small list dialog. The upper Nests grid keeps the server-side
search, sort and paging (row numbers count through the filtered list;
the title shows the server and the range). Below it, Details tabs list
the highlighted nest's plates and drawings, read from its archive after
the highlight rests for 250 ms; moving back to a nest already shown
reuses its result, and a missing archive is reported in the details
line.

Enter opens the highlighted nest (in the Find box it runs the search at
once instead) and Esc closes. Double-click opens a nest, and a context
menu offers Open, Delete (after confirmation) and Refresh. It only
browses saved nests; new nests are still created from the main window.

Windows tests drive the real form: page load, details for two nests,
Enter opening the highlighted one, the missing-archive message and Esc.
This commit is contained in:
aj committed 2026-10-05 11:38:28 -04:00
1 parent 0446127e11
commit 9920aba6eb
4 files changed
+628 -145

No files matched your search

+17 -12
View File
@@ -4,19 +4,24 @@ The desktop app can save nests two ways:
- **File mode** (default, unchanged behavior): Save/Save As write a `.nest` ZIP
archive to disk via the normal file dialog. See [nest-file-format.md](nest-file-format.md).
- **Database mode**: Open browses server records 100 at a time. The filter box
- **Database mode**: Open browses server records 100 at a time. The Find box
searches name, customer, material, made by, comments and status on the server
after a short typing pause; clicking a column header sorts every match on the
server (click again to reverse); Previous/Next move between pages and the
status line shows the range and total. Dates and numbers are not searched as
text; sort their column instead. Save creates a record on first save and
updates that same record afterward. Save As creates a new record (a copy). A failed save keeps
the previous record association; switching server URLs creates a record on the
new server rather than updating an id from the previous one. Delete in the
saved-nest list permanently removes the selected server record after confirmation.
A separate **File > Export .nest...** command is always available (in both
modes) for producing a local file to share or back up. Export does not change
the document's file save path or database record association.
after a short typing pause (Enter in the box searches at once); clicking a
column header sorts every match on the server (click again to reverse); the
arrow buttons move between pages and the title and find bar show the range and
total. Dates and numbers are not searched as text; sort their column instead.
Below the list, the **Details** tabs show the highlighted nest's plates
(duplicates, size, parts, drawings, utilization) and drawings (required, nested,
remaining, area); they are read from that nest's archive, which is downloaded
shortly after the highlight stops moving. Enter or a double-click opens the
highlighted nest and Esc closes. Save creates a record on first save and updates
that same record afterward. Save As creates a new record (a copy). A failed save
keeps the previous record association; switching server URLs creates a record on
the new server rather than updating an id from the previous one. Delete on the
Open dialog's right-click menu permanently removes the highlighted server record
after confirmation. A separate **File > Export .nest...** command is always
available (in both modes) for producing a local file to share or back up. Export
does not change the document's file save path or database record association.
The mode and server address are stored per-PC at `%APPDATA%\OpenNest\storage.json`
(`OpenNest.Data.NestStorageSettings`), defaulting to File mode so existing