main
tag: launch-2026-06-01
tag: magicmirror-v0.1.1
tag: magicmirror-v0.3.0
tag: mnw-cli-v0.1.2
tag: mnw-cli-v0.1.3
tag: mnw-cli-v0.1.4
tag: pom-v0.4.1
tag: pom-v0.4.2
tag: pom-v0.4.3
tag: pom-v0.4.4
tag: pom-v0.4.5
tag: wam-v0.3.0
tag: wam-v0.3.1
Files
Commits
Tags
Notes
Issues
Retire the two unconditional Action::with suppliers
`with` is a modifier now (quasi@94101e2), so auth_pages' reset_action and
git_commit's note_delete are written on the action they belonged to.
tip::checkout stays a supplier: its value really is conditional, which is
the half the wave-3 refusal got right.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01MptwXZ8k65v19rFmdGAyki
2 files changed,
+7 insertions,
-30 deletions
307
307
}
308
308
}
309
309
310
-
/// Where a new password is sent, with the signed token along for the ride.
311
-
///
312
-
/// A supplier because `Action::with(name, value)` is refused as a production: a
313
-
/// form has no way to say "and this value too, sometimes", and `doing` is the
314
-
/// remedy the form already names for an action it cannot spell. Counted in the
315
-
/// population for the reason `tip::checkout` is.
316
-
fn reset_action(token: &str) -> Action {
317
-
Action::post("/reset-password")
318
-
.with("token", token)
319
-
.replacing(FEEDBACK)
320
-
}
321
-
322
310
declare! {
323
311
/// `/reset-password`.
324
312
///
328
316
///
329
317
/// The token rides on the action as a parameter rather than as a hidden
330
318
/// field. A hidden input is markup standing in for a value the call already
331
-
/// carries. See [`reset_action`].
319
+
/// carries, and `with` is what the vocabulary has for it.
332
320
#[must_use]
333
321
pub shape reset_password(valid: bool, token: &str, error: Option<&str>) -> Screen;
334
322
346
334
347
335
section "Set New Password" when valid;
348
336
text "Enter your new password below." when valid;
349
-
form doing reset_action(token) when valid {
337
+
form post "/reset-password" with "token" token replacing FEEDBACK
338
+
when valid {
350
339
submit "Set Password";
351
340
field Secret "password" "New Password" {
352
341
required;
35
35
36
36
use makeover_layout as layout;
37
37
use quasi_declare::declare;
38
-
use quasi_router::{Action, Document, RegionKind};
38
+
use quasi_router::{Document, RegionKind};
39
39
use quasi_webview::Webview;
40
40
41
41
use crate::git::signing::SignatureStatus;
295
295
notes.iter().filter(|note| !note.read_only).collect()
296
296
}
297
297
298
-
/// Where a note's delete goes, with the namespace along for the ride.
299
-
///
300
-
/// A supplier because `Action::with(name, value)` is refused as a production: a
301
-
/// form has no way to say "and this value too, sometimes", and `doing` is the
302
-
/// remedy the form already names. Counted, for the reason `tip::checkout` is.
303
-
fn note_delete(view: &View<'_>, namespace: &str) -> Action {
304
-
Action::post(format!(
305
-
"{}/commit/{}/notes/delete",
306
-
view.base(),
307
-
view.detail.oid
308
-
))
309
-
.with("namespace", namespace.to_owned())
310
-
}
311
-
312
298
declare! {
313
299
/// The write half for the repository's own notes.
314
300
///
337
323
limited_to BODY_LIMIT;
338
324
}
339
325
}
340
-
act "Remove the note in {note.namespace}" to doing note_delete(view, ¬e.namespace) {
326
+
act "Remove the note in {note.namespace}"
327
+
to post "{view.base()}/commit/{view.detail.oid}/notes/delete"
328
+
with "namespace" note.namespace.clone() {
341
329
tone Danger;
342
330
}
343
331
}