143 lines
10 KiB
XML
143 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<Page
|
||
x:Class="KronaStaffTerminal.MainPage"
|
||
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:models="using:KronaStaffTerminal.Models"
|
||
Loaded="Page_Loaded"
|
||
Unloaded="Page_Unloaded"
|
||
mc:Ignorable="d">
|
||
|
||
<Grid Padding="24,16,24,24" RowSpacing="12">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="*"/>
|
||
</Grid.RowDefinitions>
|
||
|
||
<InfoBar x:Name="StatusBar"
|
||
IsOpen="True"
|
||
IsClosable="False"
|
||
Severity="Informational"
|
||
Title="Подключение"
|
||
Message="Запуск терминала…"/>
|
||
|
||
<TabView Grid.Row="1" IsAddTabButtonVisible="False">
|
||
<TabViewItem Header="Терминал" IsClosable="False">
|
||
<Grid Padding="4,16,4,4" ColumnSpacing="24">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="2*"/>
|
||
<ColumnDefinition Width="3*"/>
|
||
</Grid.ColumnDefinitions>
|
||
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Spacing="16">
|
||
<FontIcon Glyph="" FontSize="88"/>
|
||
<TextBlock Text="Приложите палец" Style="{StaticResource TitleTextBlockStyle}" HorizontalAlignment="Center"/>
|
||
<TextBlock x:Name="TerminalMessage" Text="Ожидание сканирования" TextWrapping="Wrap" TextAlignment="Center" MaxWidth="360"/>
|
||
</StackPanel>
|
||
<Grid Grid.Column="1" RowSpacing="12">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="*"/>
|
||
</Grid.RowDefinitions>
|
||
<TextBlock Text="Последние отметки" Style="{StaticResource SubtitleTextBlockStyle}"/>
|
||
<ListView x:Name="AttendanceList" Grid.Row="1" SelectionMode="None">
|
||
<ListView.ItemTemplate>
|
||
<DataTemplate x:DataType="models:AttendanceRecord">
|
||
<Grid Padding="4,10" ColumnSpacing="16">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*"/>
|
||
<ColumnDefinition Width="90"/>
|
||
<ColumnDefinition Width="160"/>
|
||
<ColumnDefinition Width="120"/>
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Text="{x:Bind EmployeeName}" FontWeight="SemiBold"/>
|
||
<TextBlock Grid.Column="1" Text="{x:Bind EventType}" FontWeight="SemiBold"/>
|
||
<TextBlock Grid.Column="2" Text="{x:Bind LocalTime}"/>
|
||
<TextBlock Grid.Column="3" Text="{x:Bind DeliveryStatus}"/>
|
||
</Grid>
|
||
</DataTemplate>
|
||
</ListView.ItemTemplate>
|
||
</ListView>
|
||
</Grid>
|
||
</Grid>
|
||
</TabViewItem>
|
||
|
||
<TabViewItem Header="Сотрудники" IsClosable="False">
|
||
<Grid Padding="4,16,4,4" RowSpacing="12">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="*"/>
|
||
</Grid.RowDefinitions>
|
||
<TextBlock Text="Добавление и регистрация сотрудников" Style="{StaticResource SubtitleTextBlockStyle}"/>
|
||
<CommandBar Grid.Row="1" DefaultLabelPosition="Right">
|
||
<AppBarButton Icon="Add" Label="Добавить" Click="AddEmployee_Click"/>
|
||
<AppBarButton Icon="Contact" Label="Зарегистрировать отпечаток" Click="RegisterFingerprint_Click"/>
|
||
<AppBarButton Icon="Permissions" Label="Права администратора" Click="ToggleAdministrator_Click"/>
|
||
<AppBarButton Icon="Delete" Label="Удалить" Click="DeleteEmployee_Click"/>
|
||
</CommandBar>
|
||
<Grid Grid.Row="2" ColumnSpacing="20">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="300"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
<StackPanel Spacing="10">
|
||
<TextBox x:Name="PersonnelNumberBox" Header="Табельный номер" PlaceholderText="Например, 001" AutomationProperties.Name="Табельный номер"/>
|
||
<TextBox x:Name="EmployeeNameBox" Header="Имя сотрудника" PlaceholderText="Иван Петров" AutomationProperties.Name="Имя сотрудника"/>
|
||
<TextBox x:Name="PositionBox" Header="Должность" PlaceholderText="Например, менеджер" AutomationProperties.Name="Должность"/>
|
||
<CheckBox x:Name="AdministratorCheckBox" Content="Администратор терминала"/>
|
||
<TextBlock Text="Выберите сотрудника справа и нажмите «Зарегистрировать отпечаток». Сканер попросит приложить один палец три раза." TextWrapping="Wrap" Opacity="0.75"/>
|
||
</StackPanel>
|
||
<ListView x:Name="EmployeesList" Grid.Column="1" SelectionMode="Single">
|
||
<ListView.ItemTemplate>
|
||
<DataTemplate x:DataType="models:EmployeeRecord">
|
||
<Grid Padding="4,10" ColumnSpacing="14">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="90"/>
|
||
<ColumnDefinition Width="*"/>
|
||
<ColumnDefinition Width="150"/>
|
||
<ColumnDefinition Width="140"/>
|
||
<ColumnDefinition Width="210"/>
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Text="{x:Bind PersonnelNumber}"/>
|
||
<TextBlock Grid.Column="1" Text="{x:Bind DisplayName}" FontWeight="SemiBold"/>
|
||
<TextBlock Grid.Column="2" Text="{x:Bind Position}"/>
|
||
<TextBlock Grid.Column="3" Text="{x:Bind AccessStatus}"/>
|
||
<TextBlock Grid.Column="4" Text="{x:Bind FingerprintStatus}"/>
|
||
</Grid>
|
||
</DataTemplate>
|
||
</ListView.ItemTemplate>
|
||
</ListView>
|
||
</Grid>
|
||
</Grid>
|
||
</TabViewItem>
|
||
|
||
<TabViewItem Header="Уведомления и сканер" IsClosable="False">
|
||
<ScrollViewer>
|
||
<StackPanel Padding="4,16,20,24" Spacing="14" MaxWidth="720" HorizontalAlignment="Left">
|
||
<TextBlock Text="Сканер" Style="{StaticResource SubtitleTextBlockStyle}"/>
|
||
<ComboBox x:Name="ReaderCombo" Header="Используемое устройство" MinWidth="320"/>
|
||
<ToggleSwitch x:Name="StartWithWindowsSwitch" Header="Автозагрузка" OffContent="Выключена" OnContent="Запускать вместе с Windows"/>
|
||
<NumberBox x:Name="DuplicateGuardBox" Header="Защита от повторного скана, секунд" Minimum="10" Maximum="3600" SpinButtonPlacementMode="Compact"/>
|
||
<PasswordBox x:Name="NewAdminPinBox" Header="Новый PIN администратора" PasswordRevealMode="Peek"/>
|
||
<Button Content="Установить новый PIN" HorizontalAlignment="Left" Click="SetAdminPin_Click"/>
|
||
<Border Height="1" Background="{ThemeResource DividerStrokeColorDefaultBrush}"/>
|
||
<ToggleSwitch x:Name="TelegramEnabledSwitch" Header="Telegram" OffContent="Выключен" OnContent="Включён"/>
|
||
<PasswordBox x:Name="TelegramTokenBox" Header="Токен Telegram-бота" PasswordRevealMode="Peek"/>
|
||
<TextBox x:Name="TelegramChatBox" Header="Chat ID Telegram"/>
|
||
<Border Height="1" Background="{ThemeResource DividerStrokeColorDefaultBrush}"/>
|
||
<ToggleSwitch x:Name="MaxEnabledSwitch" Header="MAX" OffContent="Выключен" OnContent="Включён"/>
|
||
<PasswordBox x:Name="MaxTokenBox" Header="Токен MAX-бота" PasswordRevealMode="Peek"/>
|
||
<TextBox x:Name="MaxChatBox" Header="Chat ID MAX"/>
|
||
<StackPanel Orientation="Horizontal" Spacing="10">
|
||
<Button Content="Сохранить настройки" Click="SaveSettings_Click"/>
|
||
<Button Content="Отправить тест" Click="TestNotification_Click"/>
|
||
</StackPanel>
|
||
<TextBlock Text="Токены, сотрудники и шаблоны отпечатков хранятся в зашифрованном хранилище текущей учётной записи Windows." TextWrapping="Wrap" Opacity="0.7"/>
|
||
</StackPanel>
|
||
</ScrollViewer>
|
||
</TabViewItem>
|
||
</TabView>
|
||
</Grid>
|
||
</Page>
|