chore: release v2.4
- Add theme system (Dark/Light palettes, ModernTheme, ThemeManager) - Add InputDialog, Spinner common view - Add DuplicatesCsvExportService - Refresh views, dialogs, and view models across tabs - Update localization strings (en/fr) - Tweak services (transfer, permissions, search, user access, ownership elevation, bulk operations) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
<UserControl x:Class="SharepointToolbox.Views.Tabs.BulkMembersView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:loc="clr-namespace:SharepointToolbox.Localization">
|
||||
xmlns:loc="clr-namespace:SharepointToolbox.Localization"
|
||||
xmlns:common="clr-namespace:SharepointToolbox.Views.Common">
|
||||
<DockPanel Margin="10">
|
||||
<!-- Options Panel (Left) -->
|
||||
<StackPanel DockPanel.Dock="Left" Width="240" Margin="0,0,10,0">
|
||||
<ScrollViewer DockPanel.Dock="Left" Width="240" Margin="0,0,10,0"
|
||||
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
|
||||
<StackPanel>
|
||||
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulkmembers.import]}"
|
||||
Command="{Binding ImportCsvCommand}" Margin="0,0,0,5" />
|
||||
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulkmembers.example]}"
|
||||
@@ -19,8 +22,8 @@
|
||||
Command="{Binding CancelCommand}"
|
||||
Visibility="{Binding IsRunning, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
|
||||
<ProgressBar Height="20" Margin="0,10,0,5" Value="{Binding ProgressValue}"
|
||||
Visibility="{Binding IsRunning, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
<common:Spinner Width="20" Height="20" HorizontalAlignment="Left" Margin="0,10,0,5"
|
||||
Visibility="{Binding IsRunning, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||
<TextBlock Text="{Binding StatusMessage}" TextWrapping="Wrap" />
|
||||
|
||||
<TextBlock Text="{Binding ResultSummary}" FontWeight="Bold" Margin="0,10,0,5" />
|
||||
@@ -29,6 +32,7 @@
|
||||
<Button Content="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulk.exportfailed]}"
|
||||
Command="{Binding ExportFailedCommand}" />
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<!-- Preview DataGrid (Right) -->
|
||||
<DataGrid ItemsSource="{Binding PreviewRows}" AutoGenerateColumns="False"
|
||||
@@ -44,14 +48,15 @@
|
||||
</Style>
|
||||
</DataGrid.RowStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Valid" Binding="{Binding IsValid}" Width="50" />
|
||||
<DataGridTextColumn Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[common.valid]}"
|
||||
Binding="{Binding IsValid}" Width="50" />
|
||||
<DataGridTextColumn Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulkmembers.groupname]}"
|
||||
Binding="{Binding Record.GroupName}" Width="*" />
|
||||
<DataGridTextColumn Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulkmembers.email]}"
|
||||
Binding="{Binding Record.Email}" Width="*" />
|
||||
<DataGridTextColumn Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[bulkmembers.role]}"
|
||||
Binding="{Binding Record.Role}" Width="80" />
|
||||
<DataGridTextColumn Header="Errors"
|
||||
<DataGridTextColumn Header="{Binding Source={x:Static loc:TranslationSource.Instance}, Path=[common.errors]}"
|
||||
Binding="{Binding Errors, Converter={StaticResource ListToStringConverter}}"
|
||||
Width="*" />
|
||||
</DataGrid.Columns>
|
||||
|
||||
Reference in New Issue
Block a user