Files
Sharepoint-Toolbox/SharepointToolbox/MainWindow.xaml
Dev b815c323d7 fix: resolve post-milestone tech debt items
- Add DataGrid RowStyle with red highlighting for invalid CSV rows
  in BulkMembersView, BulkSitesView, and FolderStructureView
- Fix cancel test locale mismatch by setting EN culture before assertion
- Remove dead FeatureTabBase placeholder (replaced by full tab views)
- Clean up unused xmlns:controls from MainWindow.xaml

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 09:15:02 +02:00

78 lines
3.8 KiB
XML

<Window x:Class="SharepointToolbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:loc="clr-namespace:SharepointToolbox.Localization"
xmlns:views="clr-namespace:SharepointToolbox.Views.Tabs"
mc:Ignorable="d"
Title="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[app.title]}"
MinWidth="900" MinHeight="600" Height="700" Width="1100">
<DockPanel>
<!-- Toolbar -->
<ToolBar DockPanel.Dock="Top">
<ComboBox Width="220" ItemsSource="{Binding TenantProfiles}"
SelectedItem="{Binding SelectedProfile}"
DisplayMemberPath="Name" />
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[toolbar.connect]}"
Command="{Binding ConnectCommand}" />
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[toolbar.manage]}"
Command="{Binding ManageProfilesCommand}" />
<Separator />
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[toolbar.clear]}"
Command="{Binding ClearSessionCommand}" />
</ToolBar>
<!-- StatusBar: tenant name | operation status text | progress % -->
<StatusBar DockPanel.Dock="Bottom" Height="24">
<StatusBarItem Content="{Binding SelectedProfile.Name}" />
<Separator />
<StatusBarItem Content="{Binding ProgressStatus}" />
<Separator />
<StatusBarItem Content="{Binding ProgressPercentage, StringFormat={}{0}%}" />
</StatusBar>
<!-- Log Panel -->
<RichTextBox x:Name="LogPanel" DockPanel.Dock="Bottom" Height="150"
IsReadOnly="True" VerticalScrollBarVisibility="Auto"
Background="Black" Foreground="LimeGreen"
FontFamily="Consolas" FontSize="11" />
<!-- TabControl -->
<TabControl>
<TabItem x:Name="PermissionsTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.permissions]}">
</TabItem>
<TabItem x:Name="StorageTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.storage]}">
</TabItem>
<TabItem x:Name="SearchTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.search]}">
</TabItem>
<TabItem x:Name="DuplicatesTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.duplicates]}">
</TabItem>
<TabItem x:Name="TransferTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.transfer]}">
</TabItem>
<TabItem x:Name="BulkMembersTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.bulkMembers]}">
</TabItem>
<TabItem x:Name="BulkSitesTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.bulkSites]}">
</TabItem>
<TabItem x:Name="FolderStructureTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.folderStructure]}">
</TabItem>
<TabItem x:Name="TemplatesTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.templates]}">
</TabItem>
<!-- Settings tab: content set from code-behind via DI-resolved SettingsView -->
<TabItem x:Name="SettingsTabItem"
Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[tab.settings]}">
</TabItem>
</TabControl>
</DockPanel>
</Window>