feat(ui): open Weekly Report modal from the menu
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,7 @@ public sealed partial class IslandsShellViewModel : ViewModelBase
|
||||
private readonly WorkerLocator _workerLocator = null!;
|
||||
private readonly IDbContextFactory<ClaudeDoDbContext>? _dbFactory;
|
||||
private readonly Func<WorktreesOverviewModalViewModel> _worktreesOverviewVmFactory = () => null!;
|
||||
private readonly Func<WeeklyReportModalViewModel> _weeklyReportVmFactory = () => null!;
|
||||
private readonly Func<MergeModalViewModel> _mergeVmFactory = () => null!;
|
||||
private readonly Func<RepoImportModalViewModel>? _repoImportVmFactory;
|
||||
|
||||
@@ -51,6 +52,9 @@ public sealed partial class IslandsShellViewModel : ViewModelBase
|
||||
// Set by MainWindow to open the global worktrees overview dialog.
|
||||
public Func<WorktreesOverviewModalViewModel, Task>? ShowWorktreesOverviewModal { get; set; }
|
||||
|
||||
// Set by MainWindow to open the weekly report dialog.
|
||||
public Func<WeeklyReportModalViewModel, Task>? ShowWeeklyReportModal { get; set; }
|
||||
|
||||
// Set by MainWindow to open the worker-connection help dialog.
|
||||
public Func<WorkerConnectionModalViewModel, Task>? ShowWorkerConnectionModal { get; set; }
|
||||
|
||||
@@ -178,6 +182,7 @@ public sealed partial class IslandsShellViewModel : ViewModelBase
|
||||
WorkerLocator workerLocator,
|
||||
IDbContextFactory<ClaudeDoDbContext> dbFactory,
|
||||
Func<WorktreesOverviewModalViewModel> worktreesOverviewVmFactory,
|
||||
Func<WeeklyReportModalViewModel> weeklyReportVmFactory,
|
||||
Func<MergeModalViewModel> mergeVmFactory,
|
||||
Func<RepoImportModalViewModel> repoImportVmFactory)
|
||||
{
|
||||
@@ -187,6 +192,7 @@ public sealed partial class IslandsShellViewModel : ViewModelBase
|
||||
_workerLocator = workerLocator;
|
||||
_dbFactory = dbFactory;
|
||||
_worktreesOverviewVmFactory = worktreesOverviewVmFactory;
|
||||
_weeklyReportVmFactory = weeklyReportVmFactory;
|
||||
_mergeVmFactory = mergeVmFactory;
|
||||
_repoImportVmFactory = repoImportVmFactory;
|
||||
Lists.SelectionChanged += (_, _) => Tasks.LoadForList(Lists.SelectedList);
|
||||
@@ -324,6 +330,22 @@ public sealed partial class IslandsShellViewModel : ViewModelBase
|
||||
finally { _worktreesOverviewOpen = false; }
|
||||
}
|
||||
|
||||
private bool _weeklyReportOpen;
|
||||
|
||||
[RelayCommand]
|
||||
private async Task OpenWeeklyReport()
|
||||
{
|
||||
if (ShowWeeklyReportModal is null || _weeklyReportOpen) return;
|
||||
_weeklyReportOpen = true;
|
||||
try
|
||||
{
|
||||
var vm = _weeklyReportVmFactory();
|
||||
await vm.InitializeAsync();
|
||||
await ShowWeeklyReportModal(vm);
|
||||
}
|
||||
finally { _weeklyReportOpen = false; }
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task CheckForUpdatesAsync()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user