feat(daily-prep): add Prepare-day button to MyDay header

This commit is contained in:
mika kuns
2026-06-03 16:36:25 +02:00
parent 5e0859fbb8
commit 46ac3fc930
4 changed files with 20 additions and 0 deletions

View File

@@ -67,6 +67,7 @@
"addPlaceholder": "Aufgabe hinzufügen…", "addPlaceholder": "Aufgabe hinzufügen…",
"enterKey": "ENTER", "enterKey": "ENTER",
"notesPinnedRow": "Notizen (Tagesnotizen)", "notesPinnedRow": "Notizen (Tagesnotizen)",
"prepareDay": "Tag vorbereiten",
"overdue": "ÜBERFÄLLIG", "overdue": "ÜBERFÄLLIG",
"tasks": "AUFGABEN", "tasks": "AUFGABEN",
"clearCompletedTip": "Alle abgeschlossenen löschen", "clearCompletedTip": "Alle abgeschlossenen löschen",

View File

@@ -67,6 +67,7 @@
"addPlaceholder": "Add a task…", "addPlaceholder": "Add a task…",
"enterKey": "ENTER", "enterKey": "ENTER",
"notesPinnedRow": "Notes (daily notes)", "notesPinnedRow": "Notes (daily notes)",
"prepareDay": "Prepare day",
"overdue": "OVERDUE", "overdue": "OVERDUE",
"tasks": "TASKS", "tasks": "TASKS",
"clearCompletedTip": "Clear all completed", "clearCompletedTip": "Clear all completed",

View File

@@ -36,6 +36,14 @@ public sealed partial class TasksIslandViewModel : ViewModelBase
NotesRequested?.Invoke(); NotesRequested?.Invoke();
} }
[RelayCommand]
private async Task PrepareDayAsync()
{
if (_worker is null) return;
try { await _worker.RunDailyPrepNowAsync(); }
catch { /* worker offline; broadcast will reconcile on return */ }
}
public ObservableCollection<TaskRowViewModel> Items { get; } = new(); public ObservableCollection<TaskRowViewModel> Items { get; } = new();
public ObservableCollection<TaskRowViewModel> OverdueItems { get; } = new(); public ObservableCollection<TaskRowViewModel> OverdueItems { get; } = new();
public ObservableCollection<TaskRowViewModel> OpenItems { get; } = new(); public ObservableCollection<TaskRowViewModel> OpenItems { get; } = new();
@@ -55,6 +63,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase
[ObservableProperty] private bool _showOpenLabel; [ObservableProperty] private bool _showOpenLabel;
[ObservableProperty] private string _completedHeader = ""; [ObservableProperty] private string _completedHeader = "";
[ObservableProperty] private bool _showNotesRow; [ObservableProperty] private bool _showNotesRow;
[ObservableProperty] private bool _isMyDayList;
public Func<UnfinishedPlanningModalViewModel, Task>? ShowUnfinishedPlanningModal { get; set; } public Func<UnfinishedPlanningModalViewModel, Task>? ShowUnfinishedPlanningModal { get; set; }
@@ -201,6 +210,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase
HeaderTitle = list.Name; HeaderTitle = list.Name;
HeaderEyebrow = DateTime.Now.ToString("dddd · MMM dd", CultureInfo.InvariantCulture).ToUpperInvariant(); HeaderEyebrow = DateTime.Now.ToString("dddd · MMM dd", CultureInfo.InvariantCulture).ToUpperInvariant();
ShowNotesRow = list.Id == "smart:my-day"; ShowNotesRow = list.Id == "smart:my-day";
IsMyDayList = list.Id == "smart:my-day";
_ = LoadForListAsync(list, ct); _ = LoadForListAsync(list, ct);
} }

View File

@@ -74,6 +74,14 @@
Command="{Binding OpenNotesCommand}" Command="{Binding OpenNotesCommand}"
Content="{loc:Tr tasks.notesPinnedRow}"/> Content="{loc:Tr tasks.notesPinnedRow}"/>
<!-- Prepare Day button (My Day only) -->
<Button DockPanel.Dock="Top"
Classes="btn" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left"
Margin="16,0,16,8"
IsVisible="{Binding IsMyDayList}"
Command="{Binding PrepareDayCommand}"
Content="{loc:Tr tasks.prepareDay}"/>
<!-- Task list --> <!-- Task list -->
<ScrollViewer> <ScrollViewer>
<StackPanel Margin="10,4"> <StackPanel Margin="10,4">