max / goingson
1 file changed,
+15 insertions,
-7 deletions
| @@ -16,7 +16,7 @@ | |||
| 16 | 16 | //! This is the first port of a screen that reads something the app did not | |
| 17 | 17 | //! write. A task is ours down to its column types; an email arrived from | |
| 18 | 18 | //! somewhere else, carrying a body in a format nobody here chose, and two of | |
| 19 | - | //! the six findings below come from that one fact. | |
| 19 | + | //! the seven findings below come from that one fact. | |
| 20 | 20 | //! | |
| 21 | 21 | //! # The shape | |
| 22 | 22 | //! | |
| @@ -759,12 +759,20 @@ | |||
| 759 | 759 | at("snooze").with("until", option.time.to_rfc3339()), | |
| 760 | 760 | ) | |
| 761 | 761 | })); | |
| 762 | - | // The JS also offers a custom datetime. Left to the presets: a | |
| 763 | - | // `FieldKind::DateTime` with a `changes` action would describe it, and | |
| 764 | - | // the minimum it has to enforce — not in the past — is a validity rule | |
| 765 | - | // the description cannot state, so it would be a box that accepts | |
| 766 | - | // yesterday and a route that has to refuse it. Not worth a fifth finding; | |
| 767 | - | // recorded here. | |
| 762 | + | // The JS also offers a custom datetime, and that is the seventh finding: | |
| 763 | + | // **`FieldKind` has no date, time or datetime member**, so a moment a | |
| 764 | + | // user picks cannot be described at all. Text, Secret, Number, Email, | |
| 765 | + | // Url, Tel, Textarea, Select, Radio, Checkbox, File, Hidden — every | |
| 766 | + | // `<input type=...>` the two apps had reached for, and this is the first | |
| 767 | + | // screen to want one. The floor it needs is not the problem: `Field::min` | |
| 768 | + | // exists and takes the host's own spelling of a bound, which is exactly | |
| 769 | + | // what `min` on a `datetime-local` is. | |
| 770 | + | // | |
| 771 | + | // So the presets are the whole of it here, and they are the better half | |
| 772 | + | // of the control anyway — `get_snooze_options` computes them from the | |
| 773 | + | // local clock and drops "Later Today" once it is too late for it to mean | |
| 774 | + | // anything, which a bare picker cannot do. Filed against quasicoherent | |
| 775 | + | // rather than worked around with a text box that parses RFC 3339. | |
| 768 | 776 | } | |
| 769 | 777 | ||
| 770 | 778 | out.push(Node::Heading { |