feat(todo): a project linked to a calendar shows its events beside the tasks (ADR 0033, D39)
A project's editor takes a calendar's address (https:// or webcal://, refused otherwise), and its events show read-only, marked in the project's colour: in Today's list and Upcoming's agenda above each day's tasks, as blocks in the hour grids (Today's Calendar, Upcoming's 3-day) sharing the lanes with timed tasks and all-day ones under All day, in the project's Calendar (its agenda and month, its own events alone), and in saved filters of days. A tap shows what an event is: when, where, and whose calendar. The grid's lane layout is generic for it (`layOutItems`); a task's row's box is shared (`rowBox`). Whats-New: Link a calendar to a project in its settings: its events show beside your tasks in Today, Upcoming and the project. Whats-New-De: Verknüpfe einen Kalender in den Einstellungen eines Projekts: Seine Termine erscheinen neben deinen Aufgaben in Heute, Demnächst und im Projekt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
63d50f77d4
commit
85a022af98
5 changed files with 1032 additions and 83 deletions
|
|
@ -404,5 +404,10 @@
|
|||
"locationArrived": "Du bist bei {name}",
|
||||
"locationLeft": "Du hast {name} verlassen",
|
||||
"tasksDeleteCompleted": "Erledigte Aufgaben löschen",
|
||||
"tasksCompletedDeleted": "{count, plural, =1{1 erledigte Aufgabe gelöscht} other{{count} erledigte Aufgaben gelöscht}}"
|
||||
"tasksCompletedDeleted": "{count, plural, =1{1 erledigte Aufgabe gelöscht} other{{count} erledigte Aufgaben gelöscht}}",
|
||||
"projectCalendarTitle": "Verknüpfter Kalender",
|
||||
"projectCalendarAddress": "Kalenderadresse (iCal)",
|
||||
"projectCalendarHelp": "Seine Termine stehen neben den Aufgaben dieses Projekts, nur zum Lesen. Jedes deiner Geräte ruft ihn selbst ab.",
|
||||
"projectCalendarInvalid": "Eine Adresse, die mit https:// oder webcal:// beginnt",
|
||||
"eventFromCalendar": "Aus dem Kalender von {project}"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1262,5 +1262,30 @@
|
|||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"projectCalendarTitle": "Linked calendar",
|
||||
"@projectCalendarTitle": {
|
||||
"description": "The project's editor: the calendar linked to it, whose events show beside its tasks (ADR 0033, D39)."
|
||||
},
|
||||
"projectCalendarAddress": "Calendar address (iCal)",
|
||||
"@projectCalendarAddress": {
|
||||
"description": "The project's editor: the field for the calendar's feed address (ADR 0033, D39)."
|
||||
},
|
||||
"projectCalendarHelp": "Its events show beside this project's tasks, read-only. Each of your devices fetches it itself.",
|
||||
"@projectCalendarHelp": {
|
||||
"description": "The project's editor, below the calendar's address (ADR 0033, D39)."
|
||||
},
|
||||
"projectCalendarInvalid": "An address starting with https:// or webcal://",
|
||||
"@projectCalendarInvalid": {
|
||||
"description": "The project's editor: an address no feed can be fetched from (ADR 0033, D39)."
|
||||
},
|
||||
"eventFromCalendar": "From {project}'s calendar",
|
||||
"@eventFromCalendar": {
|
||||
"description": "An event's details: which project's calendar it comes from (ADR 0033, D39).",
|
||||
"placeholders": {
|
||||
"project": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2529,6 +2529,36 @@ abstract class AppLocalizations {
|
|||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{1 completed task deleted} other{{count} completed tasks deleted}}'**
|
||||
String tasksCompletedDeleted(int count);
|
||||
|
||||
/// The project's editor: the calendar linked to it, whose events show beside its tasks (ADR 0033, D39).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Linked calendar'**
|
||||
String get projectCalendarTitle;
|
||||
|
||||
/// The project's editor: the field for the calendar's feed address (ADR 0033, D39).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Calendar address (iCal)'**
|
||||
String get projectCalendarAddress;
|
||||
|
||||
/// The project's editor, below the calendar's address (ADR 0033, D39).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Its events show beside this project\'s tasks, read-only. Each of your devices fetches it itself.'**
|
||||
String get projectCalendarHelp;
|
||||
|
||||
/// The project's editor: an address no feed can be fetched from (ADR 0033, D39).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'An address starting with https:// or webcal://'**
|
||||
String get projectCalendarInvalid;
|
||||
|
||||
/// An event's details: which project's calendar it comes from (ADR 0033, D39).
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'From {project}\'s calendar'**
|
||||
String eventFromCalendar(String project);
|
||||
}
|
||||
|
||||
class _AppLocalizationsDelegate
|
||||
|
|
|
|||
|
|
@ -1589,4 +1589,23 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectCalendarTitle => 'Verknüpfter Kalender';
|
||||
|
||||
@override
|
||||
String get projectCalendarAddress => 'Kalenderadresse (iCal)';
|
||||
|
||||
@override
|
||||
String get projectCalendarHelp =>
|
||||
'Seine Termine stehen neben den Aufgaben dieses Projekts, nur zum Lesen. Jedes deiner Geräte ruft ihn selbst ab.';
|
||||
|
||||
@override
|
||||
String get projectCalendarInvalid =>
|
||||
'Eine Adresse, die mit https:// oder webcal:// beginnt';
|
||||
|
||||
@override
|
||||
String eventFromCalendar(String project) {
|
||||
return 'Aus dem Kalender von $project';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1586,6 +1586,25 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get projectCalendarTitle => 'Linked calendar';
|
||||
|
||||
@override
|
||||
String get projectCalendarAddress => 'Calendar address (iCal)';
|
||||
|
||||
@override
|
||||
String get projectCalendarHelp =>
|
||||
'Its events show beside this project\'s tasks, read-only. Each of your devices fetches it itself.';
|
||||
|
||||
@override
|
||||
String get projectCalendarInvalid =>
|
||||
'An address starting with https:// or webcal://';
|
||||
|
||||
@override
|
||||
String eventFromCalendar(String project) {
|
||||
return 'From $project\'s calendar';
|
||||
}
|
||||
}
|
||||
|
||||
/// The translations for English, as used in the United Kingdom (`en_GB`).
|
||||
|
|
|
|||
Loading…
Reference in a new issue