Utopia-Canteen-System/Views/MealSchedulesView.xaml

118 lines
7.2 KiB
XML

<UserControl x:Class="UtopiaCanteenSystem.Views.MealSchedulesView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:UtopiaCanteenSystem.Converters">
<UserControl.Resources>
<converters:MealSessionToNameConverter x:Key="MealSessionConverter"/>
<SolidColorBrush x:Key="PrimaryText" Color="#2D3748"/>
<SolidColorBrush x:Key="MutedText" Color="#718096"/>
<SolidColorBrush x:Key="PrimaryAccent" Color="#5BA3A0"/>
<SolidColorBrush x:Key="BorderBrush" Color="#E2E8F0"/>
<SolidColorBrush x:Key="ErrorBrush" Color="#E53E3E"/>
<Style x:Key="AccentButton" TargetType="Button">
<Setter Property="Background" Value="{StaticResource PrimaryAccent}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="16,10"/>
<Setter Property="MinHeight" Value="36"/>
</Style>
<Style x:Key="OutlineButton" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource PrimaryText}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="16,10"/>
<Setter Property="MinHeight" Value="36"/>
</Style>
</UserControl.Resources>
<Grid Background="#F0F2F5" Margin="24">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Title + Back + Site filter -->
<Grid Grid.Row="0" Margin="0,0,0,16">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="← Back" Command="{Binding BackCommand}" Style="{StaticResource OutlineButton}" Margin="0,0,16,0"/>
<TextBlock Grid.Column="1" Text="Meal Schedules (production hrms.meal_schedule)" FontSize="22" FontWeight="SemiBold" Foreground="{StaticResource PrimaryText}" VerticalAlignment="Center"/>
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="Site:" VerticalAlignment="Center" Margin="0,0,8,0" Foreground="{StaticResource MutedText}"/>
<ComboBox ItemsSource="{Binding SiteFilterChoices}" SelectedItem="{Binding SelectedSiteFilter, Mode=TwoWay}" MinWidth="80" MinHeight="32" Padding="8,4"/>
</StackPanel>
</Grid>
<!-- DataGrid -->
<DataGrid Grid.Row="1" ItemsSource="{Binding Schedules}" SelectedItem="{Binding SelectedSchedule, Mode=TwoWay}"
AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" CanUserDeleteRows="False"
HeadersVisibility="Column" GridLinesVisibility="Horizontal" BorderThickness="1" BorderBrush="{StaticResource BorderBrush}"
Margin="0,0,0,16" MinHeight="120">
<DataGrid.Columns>
<DataGridTextColumn Header="Site" Binding="{Binding LocationSiteId}" Width="*"/>
<DataGridTextColumn Header="Session" Binding="{Binding MealSession, Converter={StaticResource MealSessionConverter}}" Width="*"/>
<DataGridTextColumn Header="Start" Binding="{Binding StartTime}" Width="*"/>
<DataGridTextColumn Header="End" Binding="{Binding EndTime}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
<!-- Edit form -->
<Border Grid.Row="2" BorderBrush="{StaticResource BorderBrush}" BorderThickness="1" CornerRadius="8" Padding="16" Margin="0,0,0,12" Background="White">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Margin="0,0,8,0">
<TextBlock Text="Location Site ID" FontSize="12" Foreground="{StaticResource MutedText}" Margin="0,0,0,4"/>
<TextBox Text="{Binding LocationSiteId, UpdateSourceTrigger=PropertyChanged}" Padding="8,6" MinHeight="32"/>
</StackPanel>
<StackPanel Grid.Column="1" Margin="8,0">
<TextBlock Text="Meal Session" FontSize="12" Foreground="{StaticResource MutedText}" Margin="0,0,0,4"/>
<ComboBox SelectedIndex="{Binding MealSessionIndex, Mode=TwoWay}" MinHeight="32" Padding="8,4">
<ComboBoxItem Content="Breakfast"/>
<ComboBoxItem Content="Lunch"/>
<ComboBoxItem Content="Tea"/>
<ComboBoxItem Content="Dinner"/>
</ComboBox>
</StackPanel>
<StackPanel Grid.Column="2" Margin="8,0">
<TextBlock Text="Start (HH:mm:ss)" FontSize="12" Foreground="{StaticResource MutedText}" Margin="0,0,0,4"/>
<TextBox Text="{Binding StartTime, UpdateSourceTrigger=PropertyChanged}" Padding="8,6" MinHeight="32"/>
</StackPanel>
<StackPanel Grid.Column="3" Margin="8,0">
<TextBlock Text="End (HH:mm:ss)" FontSize="12" Foreground="{StaticResource MutedText}" Margin="0,0,0,4"/>
<TextBox Text="{Binding EndTime, UpdateSourceTrigger=PropertyChanged}" Padding="8,6" MinHeight="32"/>
</StackPanel>
<StackPanel Grid.Column="4" VerticalAlignment="Bottom" Orientation="Horizontal">
<Button Content="Add new" Command="{Binding AddNewCommand}" Style="{StaticResource OutlineButton}" Margin="0,0,8,0"/>
<Button Content="Save" Command="{Binding SaveCommand}" Style="{StaticResource AccentButton}" Margin="0,0,8,0"/>
<Button Content="Delete" Command="{Binding DeleteCommand}" Style="{StaticResource OutlineButton}"/>
</StackPanel>
</Grid>
</Border>
<!-- Message -->
<TextBlock Grid.Row="3" Text="{Binding Message}" Foreground="{StaticResource PrimaryText}" FontSize="14">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource PrimaryText}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsError}" Value="True">
<Setter Property="Foreground" Value="{StaticResource ErrorBrush}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</UserControl>