/
kochkatech
/
Queue
Обзор
Документация
Войти
/
kochkatech
/
Queue
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
dev
src/Queue.Admin/Views/EmployeesView.xaml
116 строк
7 KB
kochkareal
refactor: применить общие стили и добавить поиск/фильтры в панели администратора
27 июл 2026, 18:37
27 июл 2026, 18:37
cd6a08b
Код
Авторство
О чём код?
<UserControl x:Class="Queue.Admin.Views.EmployeesView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Grid Margin="24"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Text="Сотрудники" Style="{StaticResource HeaderTextStyle}" Margin="0,0,0,16" /> <StackPanel Grid.Row="1" Margin="0,0,0,16"> <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom"> <StackPanel Margin="0,0,8,0"> <TextBlock Text="ФИО" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <TextBox Width="180" VerticalContentAlignment="Center" Text="{Binding NewFullName, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <StackPanel Margin="0,0,8,0"> <TextBlock Text="Логин" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <TextBox Width="120" VerticalContentAlignment="Center" Text="{Binding NewLogin, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <StackPanel Margin="0,0,8,0"> <TextBlock Text="Пароль" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <PasswordBox x:Name="NewPasswordBox" Width="120" VerticalContentAlignment="Center" /> </StackPanel> <StackPanel Margin="0,0,8,0"> <TextBlock Text="Роль" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <ComboBox Width="140" ItemsSource="{Binding Roles}" DisplayMemberPath="Display" SelectedValuePath="Value" SelectedValue="{Binding NewRole}" /> </StackPanel> <Button Content="Добавить сотрудника" Click="AddButton_Click" /> </StackPanel> <TextBlock Text="{Binding StatusMessage}" Foreground="#D32F2F" Margin="0,6,0,0" TextWrapping="Wrap" /> </StackPanel> <Grid Grid.Row="2"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*" /> <ColumnDefinition Width="16" /> <ColumnDefinition Width="260" /> </Grid.ColumnDefinitions> <StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0,0,0,8"> <StackPanel Margin="0,0,8,0"> <TextBlock Text="Поиск по ФИО или логину" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <TextBox Width="260" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel> <StackPanel> <TextBlock Text="Роль" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,2" /> <ComboBox Width="160" ItemsSource="{Binding RoleFilterOptions}" SelectedItem="{Binding RoleFilter}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Display, TargetNullValue=Все роли}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> </StackPanel> </StackPanel> <DataGrid x:Name="EmployeesGrid" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding EmployeesView}" SelectedItem="{Binding SelectedEmployee}" AutoGenerateColumns="False" IsReadOnly="False" CanUserAddRows="False" GridLinesVisibility="Horizontal" RowEditEnding="EmployeesGrid_RowEditEnding"> <DataGrid.Columns> <DataGridTextColumn Header="ФИО" Binding="{Binding FullName}" Width="2*" /> <DataGridTextColumn Header="Логин" Binding="{Binding Login}" Width="*" /> <DataGridTextColumn Header="Роль" Binding="{Binding RoleDisplay}" Width="*" IsReadOnly="True" /> <DataGridTextColumn Header="Окно" Binding="{Binding WindowDisplay}" Width="*" IsReadOnly="True" /> <DataGridCheckBoxColumn Header="Активен" Binding="{Binding IsActive}" Width="Auto" /> <DataGridTemplateColumn Header="" Width="Auto"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Content="Удалить" Padding="6,2" Background="Transparent" Foreground="#D32F2F" BorderThickness="0" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource AncestorType=UserControl}}" CommandParameter="{Binding}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> <Border Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Style="{StaticResource SectionBorderStyle}"> <StackPanel> <TextBlock Text="Сотрудник" FontWeight="Bold" Margin="0,0,0,4" /> <TextBlock Text="{Binding SelectedEmployee.FullName, FallbackValue=Выберите сотрудника в списке слева}" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,12" TextWrapping="Wrap" /> <TextBlock Text="Роль" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,4" /> <ComboBox Margin="0,0,0,12" ItemsSource="{Binding Roles}" DisplayMemberPath="Display" SelectedValuePath="Value" SelectedValue="{Binding EditingRole}" /> <TextBlock Text="Окно (для операторов)" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,4" /> <ComboBox Margin="0,0,0,12" ItemsSource="{Binding WindowOptions}" DisplayMemberPath="Name" SelectedItem="{Binding EditingWindow}" /> <Button Content="Сохранить роль и окно" Command="{Binding SaveRoleAndWindowCommand}" Margin="0,0,0,20" HorizontalAlignment="Stretch" /> <TextBlock Text="Новый пароль (оставьте пустым, чтобы не менять)" Style="{StaticResource SubLabelTextStyle}" Margin="0,0,0,4" TextWrapping="Wrap" /> <PasswordBox x:Name="EditPasswordBox" Margin="0,0,0,8" /> <Button Content="Обновить пароль" Click="UpdatePasswordButton_Click" HorizontalAlignment="Stretch" /> </StackPanel> </Border> </Grid> </Grid> </UserControl>