Exit prompt
Cause: any answer other than y was treated as no, so your t discarded the changes. Fix: the prompt now only accepts y (save), n (discard) or c (cancel the exit). Anything else asks again, so a typo can't lose data. In my test, t, an empty line, then y saved correctly. Also: I changed the db restore confirmation to y/n only, with no cancel option. Closing stdin still saves automatically. Wait without a time tsk restat <task> wait: works with no time while the task's account is still waiting, and the task just follows that wait. tsk add <task> <acc> wait works the same way. Time required: otherwise it asks for one, with a message saying why. That covers an account that isn't waiting, an account whose wait is already over (Limit reset), and a task with no account. acc wait: it still requires a time. A plain acc wait would have nothing to do, since the account already has a wait. Account panel: there's a new RESET column showing when the account's wait ends. It shows 16:30 for today, tomorrow 06:40 for the next day, or a full date like 2020-01-01 10:00 (which is how an old, already-reset wait appears). Accounts with no wait show -. Since the time is in its own column now, an account with a wait but no task showing it lists just (wait) or (limit reset) in the TASKS column.
This commit is contained in:
1 parent
0af468f47c
commit
35c568333d
6 files changed
+153
-40
No files matched your search
@@ -69,13 +69,15 @@ goes back to `$VISUAL` / `$EDITOR` / nano / vim / vi. The choice is stored in
|
||||
|
||||
* Data lives in an in-memory SQLite database. `db save` writes it to the file,
|
||||
`db backup` writes a copy, `db restore` loads a file. On `quit` you are asked
|
||||
to save if there are unsaved changes.
|
||||
to save if there are unsaved changes (`y` save, `n` discard, `c` cancel the
|
||||
exit); any other answer asks again, so a mistyped key never loses data.
|
||||
* The stored status is never shown directly: a `wait` task displays as
|
||||
`Wait HH:MM` until that time passes, then as `Limit reset`. Tasks are sorted
|
||||
by computed status (Limit reset, Testing, Prompt, Wait, Uploading, Frozen,
|
||||
Done); Wait and Limit reset tasks then sort by time (earliest first: when
|
||||
the wait ends / ended), then account A-Z (unassigned last), then name. The panels are cleared and redrawn after changes.
|
||||
* Account panel: one row per account, judged by its tasks: `Busy` if any is
|
||||
* Account panel: the RESET column is when the account's wait ends (`16:30`,
|
||||
`tomorrow 06:40`, or a full date); `-` if it has none. One row per account, judged by its tasks: `Busy` if any is
|
||||
Testing, Limit reset or Wait; else `Taken` if any is Prompt; else `Free`
|
||||
(only Done, Frozen or Uploading tasks, or no tasks). The TASKS column lists
|
||||
the tasks at that level, so a Free account shows its Uploading, Frozen and
|
||||
@@ -90,7 +92,11 @@ goes back to `$VISUAL` / `$EDITOR` / nano / vim / vi. The choice is stored in
|
||||
underneath. A wait that no task shows (no tasks, or only Done / Frozen /
|
||||
Uploading ones) is listed in the account row as `(wait HH:MM)` or
|
||||
`(limit reset)` and keeps the account Busy. Tasks without an account keep
|
||||
their own wait. Old databases with per-task waits are converted on load.
|
||||
their own wait.
|
||||
* A time is only optional while the account is already waiting: then
|
||||
`tsk restat <task> wait` (or `tsk add <task> <acc> wait`) just makes the task
|
||||
follow that wait. Otherwise (no account, or its wait is over) a time is
|
||||
required. Old databases with per-task waits are converted on load.
|
||||
* Deleting an account leaves its tasks unassigned (`-`).
|
||||
* Names are case-insensitive; the original spelling is kept.
|
||||
* Notes live in the database (SQLite TEXT, binary-safe, SQLite's default limit is ~1 GB). The task table shows `-` when a task has no notes, otherwise the number of lines (e.g. `3 lines`); open them with `tsk notes <name>`.
|
||||
|
||||
Reference in new issue
Block a user