feat(todo): dialogs on the desktop, the tabs reordered, a task's path and menu (ADR 0033, D11 to D14)
- halkyon_ui: showAdaptiveSheet shows a dialog on Linux, macOS and Windows at every width (bottom sheets stay on phones and tablets below expanded windows), so Learn and Train follow; SheetScaffold takes a heading in the title's place and may leave out its close button. - Todo: the tabs are Inbox, Today, Upcoming, Browse, Today still opening; `serverpod start` launches the app on Linux, as it has no web build. - A task's sheet shows where the task is (its project, an icon once tasks are above it, and the tasks above it, each opening what it names) and a ⋮ menu in place of its close button: when it was added (its UUID v7), Duplicate with its sub-tasks, hiding its done sub-tasks (synced in its payload), Close in the pane, Delete after asking. The description's icon stays by its first line. - A row names its project and section at the end of its date's line; every menu entry has its icon. - Learn: a studyset's path starts at the Library tab's icon, named by its tooltip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
666e8dbcbb
commit
b908019969
5 changed files with 1050 additions and 125 deletions
|
|
@ -137,5 +137,13 @@
|
|||
"searchEmpty": "Finde eine Aufgabe über die Wörter in ihrem Titel, ihrer Beschreibung oder ihren Labels. Die Suche läuft auf diesem Gerät: deine Instanz kann deine Aufgaben nicht lesen.",
|
||||
"searchNone": "Nichts gefunden für „{query}“.",
|
||||
"searchProjects": "Projekte",
|
||||
"searchTasks": "Aufgaben"
|
||||
"searchTasks": "Aufgaben",
|
||||
"taskMore": "Optionen der Aufgabe",
|
||||
"taskAddedOn": "Hinzugefügt am {when}",
|
||||
"taskDuplicate": "Duplizieren",
|
||||
"taskDuplicated": "Aufgabe dupliziert",
|
||||
"subTasksHideDone": "Erledigte Unteraufgaben ausblenden",
|
||||
"subTasksShowDone": "Erledigte Unteraufgaben zeigen",
|
||||
"taskClose": "Schließen",
|
||||
"taskPath": "Wo die Aufgabe liegt"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,5 +167,14 @@
|
|||
"searchNone": "Nothing found for “{query}”.",
|
||||
"@searchNone": {"placeholders": {"query": {"type": "String"}}},
|
||||
"searchProjects": "Projects",
|
||||
"searchTasks": "Tasks"
|
||||
"searchTasks": "Tasks",
|
||||
"taskMore": "Task options",
|
||||
"taskAddedOn": "Added on {when}",
|
||||
"@taskAddedOn": {"placeholders": {"when": {"type": "String"}}},
|
||||
"taskDuplicate": "Duplicate",
|
||||
"taskDuplicated": "Task duplicated",
|
||||
"subTasksHideDone": "Hide done sub-tasks",
|
||||
"subTasksShowDone": "Show done sub-tasks",
|
||||
"taskClose": "Close",
|
||||
"taskPath": "Where the task is"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -891,6 +891,54 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'Tasks'**
|
||||
String get searchTasks;
|
||||
|
||||
/// No description provided for @taskMore.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Task options'**
|
||||
String get taskMore;
|
||||
|
||||
/// No description provided for @taskAddedOn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Added on {when}'**
|
||||
String taskAddedOn(String when);
|
||||
|
||||
/// No description provided for @taskDuplicate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Duplicate'**
|
||||
String get taskDuplicate;
|
||||
|
||||
/// No description provided for @taskDuplicated.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Task duplicated'**
|
||||
String get taskDuplicated;
|
||||
|
||||
/// No description provided for @subTasksHideDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Hide done sub-tasks'**
|
||||
String get subTasksHideDone;
|
||||
|
||||
/// No description provided for @subTasksShowDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show done sub-tasks'**
|
||||
String get subTasksShowDone;
|
||||
|
||||
/// No description provided for @taskClose.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Close'**
|
||||
String get taskClose;
|
||||
|
||||
/// No description provided for @taskPath.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Where the task is'**
|
||||
String get taskPath;
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -552,4 +552,30 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get searchTasks => 'Aufgaben';
|
||||
|
||||
@override
|
||||
String get taskMore => 'Optionen der Aufgabe';
|
||||
|
||||
@override
|
||||
String taskAddedOn(String when) {
|
||||
return 'Hinzugefügt am $when';
|
||||
}
|
||||
|
||||
@override
|
||||
String get taskDuplicate => 'Duplizieren';
|
||||
|
||||
@override
|
||||
String get taskDuplicated => 'Aufgabe dupliziert';
|
||||
|
||||
@override
|
||||
String get subTasksHideDone => 'Erledigte Unteraufgaben ausblenden';
|
||||
|
||||
@override
|
||||
String get subTasksShowDone => 'Erledigte Unteraufgaben zeigen';
|
||||
|
||||
@override
|
||||
String get taskClose => 'Schließen';
|
||||
|
||||
@override
|
||||
String get taskPath => 'Wo die Aufgabe liegt';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -552,6 +552,32 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get searchTasks => 'Tasks';
|
||||
|
||||
@override
|
||||
String get taskMore => 'Task options';
|
||||
|
||||
@override
|
||||
String taskAddedOn(String when) {
|
||||
return 'Added on $when';
|
||||
}
|
||||
|
||||
@override
|
||||
String get taskDuplicate => 'Duplicate';
|
||||
|
||||
@override
|
||||
String get taskDuplicated => 'Task duplicated';
|
||||
|
||||
@override
|
||||
String get subTasksHideDone => 'Hide done sub-tasks';
|
||||
|
||||
@override
|
||||
String get subTasksShowDone => 'Show done sub-tasks';
|
||||
|
||||
@override
|
||||
String get taskClose => 'Close';
|
||||
|
||||
@override
|
||||
String get taskPath => 'Where the task is';
|
||||
}
|
||||
|
||||
/// The translations for English, as used in the United Kingdom (`en_GB`).
|
||||
|
|
|
|||
Loading…
Reference in a new issue