feat(ui): status/tag context menu + ThemedDatePicker in task row

Adds "Set status" and "Tags" submenus to the row context menu (tags
list is built lazily on Opening from AllTags ∪ row tags). Replaces
the schedule flyout's separate DATE / TIME pickers with a single
ThemedDatePicker in date+time mode.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
mika kuns
2026-04-29 10:40:09 +02:00
parent c1856657b5
commit 9ba238f4ad
2 changed files with 61 additions and 16 deletions

View File

@@ -1,6 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Islands"
xmlns:ctl="using:ClaudeDo.Ui.Views.Controls"
x:Class="ClaudeDo.Ui.Views.Islands.TaskRowView"
x:DataType="vm:TaskRowViewModel">
<Grid>
@@ -30,7 +31,7 @@
Classes.selected="{Binding IsSelected}"
Classes.done="{Binding Done}">
<Border.ContextMenu>
<ContextMenu>
<ContextMenu Opening="OnContextMenuOpening">
<MenuItem Header="Send to queue"
IsVisible="{Binding !IsQueued}"
Click="OnSendToQueueClick"/>
@@ -38,6 +39,16 @@
IsVisible="{Binding CanRemoveFromQueue}"
Click="OnRemoveFromQueueClick"/>
<Separator/>
<MenuItem Header="Set status">
<MenuItem Header="Idle" Tag="Idle" Click="OnSetStatusClick"/>
<MenuItem Header="Queued" Tag="Queued" Click="OnSetStatusClick"/>
<MenuItem Header="Running" Tag="Running" Click="OnSetStatusClick"/>
<MenuItem Header="Done" Tag="Done" Click="OnSetStatusClick"/>
<MenuItem Header="Failed" Tag="Failed" Click="OnSetStatusClick"/>
<MenuItem Header="Cancelled" Tag="Cancelled" Click="OnSetStatusClick"/>
</MenuItem>
<MenuItem Header="Tags" x:Name="TagsMenu"/>
<Separator/>
<MenuItem Header="Run interactively"
Click="OnRunInteractivelyClick"/>
<MenuItem Header="Open planning Session"
@@ -224,16 +235,10 @@
Foreground="{DynamicResource TextBrush}"/>
<StackPanel Spacing="6">
<TextBlock Text="DATE" FontSize="10" Opacity="0.6"
<TextBlock Text="WHEN" FontSize="10" Opacity="0.6"
Foreground="{DynamicResource TextDimBrush}"/>
<DatePicker x:Name="ScheduleDate" HorizontalAlignment="Stretch"/>
</StackPanel>
<StackPanel Spacing="6">
<TextBlock Text="TIME" FontSize="10" Opacity="0.6"
Foreground="{DynamicResource TextDimBrush}"/>
<TimePicker x:Name="ScheduleTime" ClockIdentifier="24HourClock"
HorizontalAlignment="Stretch"/>
<ctl:ThemedDatePicker x:Name="ScheduleDate" ShowTime="True"
HorizontalAlignment="Stretch"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="8"