feat(todo): tasks chosen together, quick add reading what is typed (ADR 0033, D14, D15)
- A section's heading stays atop a project's list while its tasks
scroll beneath it (slivers, PinnedHeaderSliver).
- Upcoming's month unfolds in place beneath its strip, from its name
or its handle; a button beside the month goes back to today.
- Tasks are chosen together: a row swiped right or held, or Select
tasks in Today's, Upcoming's and a project's menu; a bar of date,
move, labels, priority and more (complete, duplicate, deadline,
delete) takes the navigation bar's place. A row swiped left asks
for its date.
- TaskRepository.move moves tasks with their sub-tasks.
- parseQuickAdd reads #project, @label (an unknown one made),
{deadline}, !!1 and p1 to p4, !30m, dates, times and recurrences
(tomorrow 9am, Mon 18:00, ev Tue 7pm, every 2 days, every weekday),
from a table of words per language: English, and German beside it.
- Each token is highlighted and shown on its chip; a tap keeps it as
text, and a chip picked takes it out of the title.
- Quick add shows its title alone at first, its chips once typing
starts, and the description and deadline behind its + (the
description also from the down arrow).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
b908019969
commit
4960234a63
1 changed files with 3619 additions and 383 deletions
|
|
@ -185,8 +185,21 @@ alternative was put to them, the choice is theirs.
|
|||
out by D5). The description's icon stays by its first line.
|
||||
- **D14 Rows and menus**: a row shows its project and section ("Inbox / Errands" with the
|
||||
project's icon) at the end of the line of its date, not beside the whole row; every
|
||||
menu entry has its icon, a destructive one in the error colour (`MenuEntry`).
|
||||
- **D15 Typed tokens in quick add** (amends D7's later step; recommended, the developer
|
||||
menu entry has its icon, a destructive one in the error colour (`MenuEntry`). A
|
||||
section's heading stays atop the list while its tasks scroll beneath it, until the
|
||||
next pushes it away (`PinnedHeaderSliver`). Upcoming's month unfolds in place beneath
|
||||
its strip, from its name or its handle dragged down, the arrows then going by month,
|
||||
the handle dragged up folding it; a button beside the month goes back to today once
|
||||
another week shows. Tasks are chosen to act on together, as Todoist's: a row swiped
|
||||
right or held, or *Select tasks* in Today's, Upcoming's and a project's ⋮, a tap then
|
||||
choosing or letting go; the app bar counts them, with an arrow (or back) ending it,
|
||||
and a bar takes the navigation bar's place: date, move, labels (those all have
|
||||
ticked; a tick added to each, one unticked taken off each), priority, and ⋮ with
|
||||
complete (undone together), duplicate, deadline and delete (asked first). *Assign*
|
||||
waits for shared projects and *View activity* for a history, neither of which Todo
|
||||
has. A row swiped left asks for its date. Neither swipe removes the row; a sheet's
|
||||
sub-tasks and search's results aren't chosen (`TaskSelection`, one for the frame).
|
||||
- **D15 Typed tokens in quick add** (amends D7's later step; the developer's, 1 Nov, after
|
||||
asking whether the keyboard's language could choose): `#project`, `@label`,
|
||||
`{deadline}`, `!!1` and `p1` to `p4`, `!30m`, dates and times (`9am`, `Mon 18:00`,
|
||||
`ev Tue 7pm`) and recurrences (`every day`, `every 2 days`, `every second day`), each
|
||||
|
|
@ -195,16 +208,23 @@ alternative was put to them, the choice is theirs.
|
|||
language and English, so a new app language adds a table, not a parser. Not the
|
||||
keyboard's language: Flutter tells nothing of it, Android doesn't reliably, and it
|
||||
changes as the person switches keyboards while typing. Symbols hold in every language.
|
||||
- **To come, in this order**: section headings that stay atop the list as it scrolls;
|
||||
Upcoming's month opening inline beneath its strip (a handle dragged down, or the
|
||||
month's name) with a way back to today beside it once another week shows, and its ⋮
|
||||
with *Select tasks*; a row swiped left picks its date, swiped right selects it, a tap
|
||||
then selecting more, with a bar of date, move, labels, priority and ⋮ (delete,
|
||||
duplicate, complete, deadline); rows dragged into another order, and a little to the
|
||||
As built (`parseQuickAdd`, `QuickAddWords.en` and `.de`): a `#` naming no project
|
||||
stays text, an `@` naming no label makes one as the task is added; only the first of
|
||||
each kind counts, the rest stays in the title; a time alone is its next to come
|
||||
(tomorrow once it has passed today), a weekday alone the coming one (today too),
|
||||
`next` one after today; a month needs its day (`may` alone is a word), a number alone
|
||||
is none; a recurrence starts on its first day from today (`every weekday` on a Sunday:
|
||||
Monday). `!30m` makes a task without a time due 30 minutes from now, reminded then,
|
||||
and one with a time reminded 30 minutes before it; with a day but no time it is
|
||||
text. German's weekdays only by their whole names, its short forms (`so`, `do`,
|
||||
`die`, `mit`) being everyday words. Quick add shows its title alone at first, its
|
||||
chips once typing starts, a chip picked taking its token out of the title, and the
|
||||
description and the deadline behind its + (the description also from the down
|
||||
arrow).
|
||||
- **To come, in this order**: rows dragged into another order, and a little to the
|
||||
right to become the sub-task of the row above, with Undo; the add button dragged onto
|
||||
the list to add a task there, dropped back on its place (an ×) to give up, wherever
|
||||
it shows; and quick add showing its fields as typing starts, its + opening the rest
|
||||
(D15 with it).
|
||||
it shows; suggestions of projects and labels as `#` and `@` are typed.
|
||||
|
||||
## Steps
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue