Say on the import page where the photographs end up

Three lint findings and the gap the third one was pointing at.

`Context::library_label` was dead: the page named the folder on this machine
and said nothing at all about the server, which is half of what the Import
button commits to and the half that takes minutes rather than seconds. It now
names both, and states the order — copied and verified here first, then
uploaded (FR-NC-7b) — beside the destinations rather than beside the button,
because someone watching a slow upload needs to already know the photographs
are safe on disk.

The label is cached when the page opens rather than read in `render`: reaching
it goes through the context closure to the account, and `render` runs on every
keystroke.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-22 15:49:02 +02:00
co-authored by Claude Opus 5
parent 1526c957cf
commit 939f33a3a3
5 changed files with 93 additions and 48 deletions
+22
View File
@@ -87,6 +87,10 @@ export component ImportPage inherits Rectangle {
// --- where they are going --------------------------------------------
/// The library root. Shown, not editable — see the header comment.
in property <string> destination;
/// The folder on the server the originals go on to, once they are safely
/// on disk (FR-NC-7b). Empty when no account is signed in, which hides the
/// line rather than showing an empty one.
in property <string> upload-target;
in-out property <string> folder-template;
/// The template expanded against a real date, so the answer to "what will
/// this do" is on screen rather than in the manual.
@@ -274,6 +278,24 @@ export component ImportPage inherits Rectangle {
}
}
if root.upload-target != "": HorizontalLayout {
spacing: Theme.gap;
Label { text: "Server"; }
Value {
text: root.upload-target;
overflow: elide;
horizontal-stretch: 1;
}
}
// Said once, here, rather than beside the Import button:
// the order is the promise, and a user watching a slow
// upload needs to already know the photographs are on disk.
if root.upload-target != "": Caption {
text: "Copied here and verified first, then uploaded.";
wrap: word-wrap;
}
TextRow {
label: "Folders";
text <=> root.folder-template;