Skip to content

Capture screens: move Water / expense-add / Sales add-line forms into dialogs? #133

Description

@mforce

Split out of #131, which migrated the CRUD and per-row surfaces to modal dialogs (PR #132).

Some forms were deliberately left inline because they are the whole point of the screen they sit on, not an interruption to a list:

Plus one surface #131 simply missed, tracked here rather than in a new issue:

Daily entry is settled — #134 decides it

Daily entry was originally listed here. It no longer is: #134 answers it by construction, and the answer is inline.

  • Daily entry UX: numbered sections, sticky summary footer, draft-edit badge (wizard rejected) #134 rejects a wizard because Daily entry is the highest-traffic, habitual screen and every extra step is a per-day cost. A dialog is an extra step, on every visit — the same argument reaches the same verdict.
  • Its design specifies a sticky footer carrying the sellable-math line and both save actions. Inside a dialog that competes with .dialog-foot, and on mobile with the bottom sheet, which already owns the bottom edge.
  • Its section ① contains the "+ new flock" dialog, which would nest a dialog inside a dialog.

No separate decision needed. #134's "Relationship to #133" note claiming independence is superseded.

The question, for what remains

Consistency says every capture form should behave the same way. Daily use says the opposite: a screen whose form is the screen becomes a table plus one button.

Water is the strongest remaining case for staying inline — same shape as Daily entry, lower traffic. Expenses-add is the weakest: it already has two sibling dialogs on the same screen. Sales add-line sits between — the draft panel is a work surface, but adding lines is repetitive and a dialog per line would grate. Users flock-assignment is not really a judgement call; it is a per-row action that should match its neighbours.

If we do it

Decide first, then implement

Not obviously worth doing beyond the Users fix. Parking it as an explicit decision rather than an oversight — if the capture forms stay inline, the Help page already documents why ("Adding & correcting"), and this can close as won't-do once Users is handled.

Part of epic #14.

Activity

  1. mforce commented on Jul 22, 2026

    @mforce
    OwnerAuthor

    Two things found while auditing what is left to migrate (#135 came out of the same sweep):

    A surface #131 missed. UsersPage.tsx:227 — the flock-assignment control inside an expanded worker row is still an inline-form div (a <select> plus an Assign button, no <form>). That is a per-row action, so it was in #131's stated scope and just got overlooked. Small, and it belongs with this issue rather than a new one.

    Sales add-line is a fourth candidate. The issue body lists Daily entry / Water / expense-add; adding a line to a draft order has the same shape and is documented as deliberately inline on the Help page. Include it when deciding.

    Sequencing: #134 reshapes Daily entry (numbered sections, sticky summary footer). Deciding dialog-or-inline for the Daily entry grid before that lands would collide with it — settle #134 first, then revisit this one.

  2. changed the title [-]Capture screens: move Daily entry / Water / expense-add forms into dialogs?[/-] [+]Capture screens: move Water / expense-add / Sales add-line forms into dialogs?[/+] on Jul 22, 2026
  3. mforce commented on Jul 22, 2026

    @mforce
    OwnerAuthor

    Correction to the comment above: Daily entry is removed from this issue, not deferred behind #134.

    #134 already decides it. Its rejected-wizard rationale — highest-traffic habitual screen, every extra step is a per-day cost — applies unchanged to a dialog, which is an extra step on every visit. And its design is concretely incompatible: a sticky footer competing with .dialog-foot (and with the mobile bottom sheet, which owns that edge), and a "+ new flock" dialog nested inside section ①.

    The "Relationship to #133" note in #134 claiming independence is superseded. Body and title updated; the reasoning is recorded there so this does not get re-litigated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions