130 lines
8.7 KiB
XML
130 lines
8.7 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="170"/>
|
|
<ColumnDefinition Width="130"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="{x:Bind EmployeeName}" FontWeight="SemiBold"/>
|
|
<TextBlock Grid.Column="1" Text="{x:Bind LocalTime}"/>
|
|
<TextBlock Grid.Column="2" 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="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="Имя сотрудника"/>
|
|
<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="220"/>
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="{x:Bind PersonnelNumber}"/>
|
|
<TextBlock Grid.Column="1" Text="{x:Bind DisplayName}" FontWeight="SemiBold"/>
|
|
<TextBlock Grid.Column="2" 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"/>
|
|
<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>
|