feat(todo): a project's editor as Todoist's Add project, with sub-projects and favourites
Adding or editing a project was a dialog of a name and a colour. It is now a screen of its own on a phone (a dialog where sheets are dialogs), as Todoist's Add project: the name counted to 120, a description, the colour, the parent project, a Favourite switch and the layout, Display's pictures. All of it lives in the project's sealed payload, the schema still 1, no server model or migration; the payload now keeps fields it doesn't know, as a task's does. A new project starts with the layout picked, and Display's Reset all returns to that default rather than to List. Browse lists sub-projects indented and folding under their parents, and the favourites in a group above; a project is never offered as its own ancestor, and a parent's deletion takes its sub-projects, naming them first, as Todoist's. ADR 0033, D28. Whats-New: Add project and Edit project are a screen of their own, with a description, a parent project, Favourite and the layout. Whats-New: Browse lists sub-projects under their parents and your favourite projects at the top. Whats-New: Reset all in Display returns to the layout the project was made with. Whats-New-De: „Projekt hinzufügen“ und „Projekt bearbeiten“ sind eine eigene Seite, mit Beschreibung, übergeordnetem Projekt, Favorit und Layout. Whats-New-De: „Übersicht“ zeigt Unterprojekte unter ihren Projekten und deine Favoriten oben. Whats-New-De: „Alles zurücksetzen“ in der Anzeige kehrt zum Layout zurück, mit dem das Projekt angelegt wurde. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
7e2f224c66
commit
d0e72cf095
6 changed files with 1094 additions and 93 deletions
|
|
@ -51,11 +51,18 @@
|
|||
"priority4": "Keine Priorität",
|
||||
"projectsTitle": "Projekte",
|
||||
"projectsNone": "Noch keine eigenen Projekte.",
|
||||
"projectAdd": "Neues Projekt",
|
||||
"projectAdd": "Projekt hinzufügen",
|
||||
"projectEdit": "Projekt bearbeiten",
|
||||
"projectDelete": "Projekt löschen",
|
||||
"projectDeleteTitle": "Projekt löschen?",
|
||||
"projectDeleteMessage": "„{name}“ wird mit seinen Abschnitten und Aufgaben auf all deinen Geräten gelöscht.",
|
||||
"projectParent": "Übergeordnetes Projekt",
|
||||
"projectNoParent": "Kein übergeordnetes Projekt",
|
||||
"projectFavorite": "Favorit",
|
||||
"favoritesTitle": "Favoriten",
|
||||
"projectSubProjectsHide": "Unterprojekte ausblenden",
|
||||
"projectSubProjectsShow": "Unterprojekte einblenden",
|
||||
"projectDeleteWithSubProjects": "„{name}“ wird mit seinen Unterprojekten {subProjects} und ihren Abschnitten und Aufgaben auf all deinen Geräten gelöscht.",
|
||||
"projectEmptyTitle": "Hier ist nichts zu tun",
|
||||
"projectEmptyHint": "Füge mit dem Plus eine Aufgabe hinzu.",
|
||||
"projectGone": "Dieses Projekt wurde gelöscht.",
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@
|
|||
"priority4": "No priority",
|
||||
"projectsTitle": "Projects",
|
||||
"projectsNone": "No projects of your own yet.",
|
||||
"projectAdd": "New project",
|
||||
"projectAdd": "Add project",
|
||||
"projectEdit": "Edit project",
|
||||
"projectDelete": "Delete project",
|
||||
"projectDeleteTitle": "Delete the project?",
|
||||
|
|
@ -118,6 +118,27 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"projectParent": "Parent project",
|
||||
"@projectParent": {
|
||||
"description": "A project's editor (ADR 0033, D28), as Todoist's Add project."
|
||||
},
|
||||
"projectNoParent": "No parent",
|
||||
"projectFavorite": "Favourite",
|
||||
"favoritesTitle": "Favourites",
|
||||
"projectSubProjectsHide": "Hide sub-projects",
|
||||
"projectSubProjectsShow": "Show sub-projects",
|
||||
"projectDeleteWithSubProjects": "\"{name}\" is deleted with its sub-projects {subProjects}, and their sections and tasks, on all your devices.",
|
||||
"@projectDeleteWithSubProjects": {
|
||||
"description": "Deleting a project with sub-projects (ADR 0033, D28): subProjects their names, separated by commas.",
|
||||
"placeholders": {
|
||||
"name": {
|
||||
"type": "String"
|
||||
},
|
||||
"subProjects": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"projectEmptyTitle": "Nothing to do here",
|
||||
"projectEmptyHint": "Add a task with the + button.",
|
||||
"projectGone": "This project was deleted.",
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
{
|
||||
"@@locale": "en_US"
|
||||
"@@locale": "en_US",
|
||||
"projectFavorite": "Favorite",
|
||||
"favoritesTitle": "Favorites"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -409,7 +409,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @projectAdd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New project'**
|
||||
/// **'Add project'**
|
||||
String get projectAdd;
|
||||
|
||||
/// No description provided for @projectEdit.
|
||||
|
|
@ -436,6 +436,48 @@ abstract class AppLocalizations {
|
|||
/// **'\"{name}\" is deleted with its sections and tasks, on all your devices.'**
|
||||
String projectDeleteMessage(String name);
|
||||
|
||||
/// A project's editor (ADR 0033, D28), as Todoist's Add project.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Parent project'**
|
||||
String get projectParent;
|
||||
|
||||
/// No description provided for @projectNoParent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No parent'**
|
||||
String get projectNoParent;
|
||||
|
||||
/// No description provided for @projectFavorite.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Favourite'**
|
||||
String get projectFavorite;
|
||||
|
||||
/// No description provided for @favoritesTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Favourites'**
|
||||
String get favoritesTitle;
|
||||
|
||||
/// No description provided for @projectSubProjectsHide.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Hide sub-projects'**
|
||||
String get projectSubProjectsHide;
|
||||
|
||||
/// No description provided for @projectSubProjectsShow.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show sub-projects'**
|
||||
String get projectSubProjectsShow;
|
||||
|
||||
/// Deleting a project with sub-projects (ADR 0033, D28): subProjects their names, separated by commas.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'\"{name}\" is deleted with its sub-projects {subProjects}, and their sections and tasks, on all your devices.'**
|
||||
String projectDeleteWithSubProjects(String name, String subProjects);
|
||||
|
||||
/// No description provided for @projectEmptyTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get projectsNone => 'Noch keine eigenen Projekte.';
|
||||
|
||||
@override
|
||||
String get projectAdd => 'Neues Projekt';
|
||||
String get projectAdd => 'Projekt hinzufügen';
|
||||
|
||||
@override
|
||||
String get projectEdit => 'Projekt bearbeiten';
|
||||
|
|
@ -207,6 +207,29 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
return '„$name“ wird mit seinen Abschnitten und Aufgaben auf all deinen Geräten gelöscht.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectParent => 'Übergeordnetes Projekt';
|
||||
|
||||
@override
|
||||
String get projectNoParent => 'Kein übergeordnetes Projekt';
|
||||
|
||||
@override
|
||||
String get projectFavorite => 'Favorit';
|
||||
|
||||
@override
|
||||
String get favoritesTitle => 'Favoriten';
|
||||
|
||||
@override
|
||||
String get projectSubProjectsHide => 'Unterprojekte ausblenden';
|
||||
|
||||
@override
|
||||
String get projectSubProjectsShow => 'Unterprojekte einblenden';
|
||||
|
||||
@override
|
||||
String projectDeleteWithSubProjects(String name, String subProjects) {
|
||||
return '„$name“ wird mit seinen Unterprojekten $subProjects und ihren Abschnitten und Aufgaben auf all deinen Geräten gelöscht.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectEmptyTitle => 'Hier ist nichts zu tun';
|
||||
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get projectsNone => 'No projects of your own yet.';
|
||||
|
||||
@override
|
||||
String get projectAdd => 'New project';
|
||||
String get projectAdd => 'Add project';
|
||||
|
||||
@override
|
||||
String get projectEdit => 'Edit project';
|
||||
|
|
@ -207,6 +207,29 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
return '\"$name\" is deleted with its sections and tasks, on all your devices.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectParent => 'Parent project';
|
||||
|
||||
@override
|
||||
String get projectNoParent => 'No parent';
|
||||
|
||||
@override
|
||||
String get projectFavorite => 'Favourite';
|
||||
|
||||
@override
|
||||
String get favoritesTitle => 'Favourites';
|
||||
|
||||
@override
|
||||
String get projectSubProjectsHide => 'Hide sub-projects';
|
||||
|
||||
@override
|
||||
String get projectSubProjectsShow => 'Show sub-projects';
|
||||
|
||||
@override
|
||||
String projectDeleteWithSubProjects(String name, String subProjects) {
|
||||
return '\"$name\" is deleted with its sub-projects $subProjects, and their sections and tasks, on all your devices.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectEmptyTitle => 'Nothing to do here';
|
||||
|
||||
|
|
@ -995,4 +1018,10 @@ class AppLocalizationsEnGb extends AppLocalizationsEn {
|
|||
/// The translations for English, as used in the United States (`en_US`).
|
||||
class AppLocalizationsEnUs extends AppLocalizationsEn {
|
||||
AppLocalizationsEnUs() : super('en_US');
|
||||
|
||||
@override
|
||||
String get projectFavorite => 'Favorite';
|
||||
|
||||
@override
|
||||
String get favoritesTitle => 'Favorites';
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue