diff --git a/src/ClaudeDo.Localization/locales/de.json b/src/ClaudeDo.Localization/locales/de.json index b31f84b..58aa72c 100644 --- a/src/ClaudeDo.Localization/locales/de.json +++ b/src/ClaudeDo.Localization/locales/de.json @@ -50,6 +50,7 @@ "prime": { "description": "Bereite dein Claude-Nutzungsfenster vor, indem an den von dir gewählten Tagen zu einer bestimmten Zeit ein einzelner nicht-interaktiver Ping ausgelöst wird. Läuft nur, solange ClaudeDo geöffnet ist. Wenn die App innerhalb von 30 Minuten vor der Zielzeit startet, wird der Ping sofort ausgelöst.", "addSchedule": "+ Zeitplan hinzufügen", + "dailyPrepMaxTasks": "Max. Aufgaben pro Tag", "dayMo": "Mo", "dayTu": "Di", "dayWe": "Mi", diff --git a/src/ClaudeDo.Localization/locales/en.json b/src/ClaudeDo.Localization/locales/en.json index 398d82b..fddf5e2 100644 --- a/src/ClaudeDo.Localization/locales/en.json +++ b/src/ClaudeDo.Localization/locales/en.json @@ -50,6 +50,7 @@ "prime": { "description": "Prime your Claude usage window by firing a single non-interactive ping on the days you choose, at a chosen time. Only runs while ClaudeDo is open. If the app starts within 30 minutes of the target time, the ping fires immediately.", "addSchedule": "+ Add schedule", + "dailyPrepMaxTasks": "Max tasks per day", "dayMo": "Mo", "dayTu": "Tu", "dayWe": "We", diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/PrimeClaudeTabViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/PrimeClaudeTabViewModel.cs index 1dbf5f2..c161b95 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/PrimeClaudeTabViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/PrimeClaudeTabViewModel.cs @@ -10,6 +10,8 @@ public sealed partial class PrimeClaudeTabViewModel : ViewModelBase private readonly IPrimeScheduleApi _api; private readonly HashSet _initialIds = new(); + [ObservableProperty] private int _dailyPrepMaxTasks = 5; + public ObservableCollection Rows { get; } = new(); public PrimeClaudeTabViewModel(IPrimeScheduleApi api) => _api = api; diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs index 2b74a5d..827981f 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs @@ -22,8 +22,6 @@ public sealed partial class SettingsModalViewModel : ViewModelBase [ObservableProperty] private bool _isBusy; [ObservableProperty] private string _statusMessage = ""; - private int _loadedDailyPrepMaxTasks = 5; - public Action? CloseAction { get; set; } public SettingsModalViewModel(WorkerClient worker, PrimeClaudeTabViewModel prime, @@ -62,7 +60,7 @@ public sealed partial class SettingsModalViewModel : ViewModelBase : string.Join(Environment.NewLine, System.Text.Json.JsonSerializer.Deserialize>(dto.ReportExcludedPaths) ?? new()); General.StandupWeekday = dto.StandupWeekday is >= 0 and <= 6 ? dto.StandupWeekday : (int)DayOfWeek.Wednesday; - _loadedDailyPrepMaxTasks = dto.DailyPrepMaxTasks < 1 ? 5 : dto.DailyPrepMaxTasks; + Prime.DailyPrepMaxTasks = dto.DailyPrepMaxTasks < 1 ? 5 : dto.DailyPrepMaxTasks; } else StatusMessage = Loc.T("vm.settingsModal.workerOffline"); @@ -95,7 +93,7 @@ public sealed partial class SettingsModalViewModel : ViewModelBase General.ReportExcludedPaths .Split('\n').Select(l => l.Trim().TrimEnd('\r')).Where(l => l.Length > 0).ToList()), General.StandupWeekday, - _loadedDailyPrepMaxTasks); + Prime.DailyPrepMaxTasks); await _worker.UpdateAppSettingsAsync(dto); await Prime.SaveAsync(); CloseAction?.Invoke(); diff --git a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml index 8b137a3..9da80d3 100644 --- a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml +++ b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml @@ -239,6 +239,11 @@