Put the trail above the GROUPS label rather than under it

It was drawn as the transfers screen's is, under the heading of the list it
belongs to. That is right there and wrong here: over there a path describes the
one pane beneath it, and this one describes two. Opening a group narrows the
host grid as well as the row of cards, so a trail sitting under GROUPS reads as
one more fact about the groups while it is also the reason the grid at the
bottom of the screen is showing eleven machines instead of forty.

So it is the first thing in the section, and both headings below — GROUPS and
HOSTS — belong to it. Markup only: the trail moved, the note on it says why it
is not placed like its sibling, and the group buttons' note now points up rather
than down. 85 layout tests pass, including the one that presses a rendered crumb
and would have caught the $parent binding failing to resolve from its new place.
This commit is contained in:
2026-08-03 16:32:09 +02:00
parent 0c0ac94312
commit 01d54ba4fa
+27 -20
View File
@@ -171,26 +171,6 @@
--> -->
<StackPanel Spacing="8" IsVisible="{Binding HasGroups}"> <StackPanel Spacing="8" IsVisible="{Binding HasGroups}">
<Grid ColumnDefinitions="Auto,*,Auto">
<TextBlock Grid.Column="0" Classes="label" Text="GROUPS"
Foreground="{StaticResource TextDim}" VerticalAlignment="Center" />
<!--
The group's own two actions, beside the group cards rather than in the toolbar, because they
act on the card that is selected — and this is where the selection is made. Hidden rather
than disabled while DELETE's question is up, as every other pair in this application is, so
it cannot be pressed twice, and hidden again when there is nothing for them to act on. What
that is, with no card selected, is the group the trail below ends with; see
VaultViewModel.GroupTarget.
-->
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="6">
<Button Classes="ghost" Content="EDIT" Command="{Binding EditGroupCommand}"
IsVisible="{Binding ShowsGroupActions}" />
<Button Classes="ghost" Content="DELETE" Command="{Binding DeleteGroupCommand}"
IsVisible="{Binding ShowsGroupActions}" />
</StackPanel>
</Grid>
<!-- <!--
============ WHERE YOU ARE ============ ============ WHERE YOU ARE ============
The trail, drawn exactly as the transfers screen draws a directory path, because it is the same The trail, drawn exactly as the transfers screen draws a directory path, because it is the same
@@ -202,6 +182,13 @@
there and always goes back to every host, which is what the SHOW ALL button used to be: a there and always goes back to every host, which is what the SHOW ALL button used to be: a
button that only says "stop" beside a trail that says where you are is the second control for button that only says "stop" beside a trail that says where you are is the second control for
the same job, and this one also gets you halfway back rather than all the way. the same job, and this one also gets you halfway back rather than all the way.
◆ ABOVE THE GROUPS LABEL, and deliberately not under it as the transfers screen's is. That one
sits below its heading because it describes the one list beneath it; this one describes two.
Opening a group narrows the hosts as well as the cards, so a trail drawn under GROUPS would
read as one more thing about the groups while it is also the reason the grid at the bottom of
the screen is showing eleven machines instead of forty. First in the section, and both headings
below belong to it.
--> -->
<ItemsControl ItemsSource="{Binding GroupTrail}"> <ItemsControl ItemsSource="{Binding GroupTrail}">
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
@@ -228,6 +215,26 @@
</ItemsControl.ItemTemplate> </ItemsControl.ItemTemplate>
</ItemsControl> </ItemsControl>
<Grid ColumnDefinitions="Auto,*,Auto">
<TextBlock Grid.Column="0" Classes="label" Text="GROUPS"
Foreground="{StaticResource TextDim}" VerticalAlignment="Center" />
<!--
The group's own two actions, beside the group cards rather than in the toolbar, because they
act on the card that is selected — and this is where the selection is made. Hidden rather
than disabled while DELETE's question is up, as every other pair in this application is, so
it cannot be pressed twice, and hidden again when there is nothing for them to act on. What
that is, with no card selected, is the group the trail above ends with; see
VaultViewModel.GroupTarget.
-->
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="6">
<Button Classes="ghost" Content="EDIT" Command="{Binding EditGroupCommand}"
IsVisible="{Binding ShowsGroupActions}" />
<Button Classes="ghost" Content="DELETE" Command="{Binding DeleteGroupCommand}"
IsVisible="{Binding ShowsGroupActions}" />
</StackPanel>
</Grid>
<Border Padding="10" Background="{StaticResource DangerWash}" CornerRadius="6" <Border Padding="10" Background="{StaticResource DangerWash}" CornerRadius="6"
IsVisible="{Binding IsConfirmingGroupDeletion}"> IsVisible="{Binding IsConfirmingGroupDeletion}">
<views:ConfirmDeleteCard /> <views:ConfirmDeleteCard />