﻿<local:LayoutAwarePage
    x:Name="pageRoot"
    x:Class="PilotsHubApp.CommonAnnouncementsPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:PilotsHubApp"
    xmlns:data="using:PilotsHubApp.DataModel"
    xmlns:style="using:PilotsHubApp.Styling"
    xmlns:dep="using:PilotsHubApp.DependencyProperties"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:dependencyProperties="using:PilotsHubApp.DependencyProperties"
    xmlns:converters="using:PilotsHubApp.Converters"
    xmlns:sampleData="using:PilotsHubApp.SampleData"
    mc:Ignorable="d"
    d:DataContext="{d:DesignInstance 
                    Type=sampleData:MockAnnouncementsHubViewModel, 
                    IsDesignTimeCreatable=True}"
    >

    <Page.Resources>
        <converters:VisitedStyleConverter x:Key="VisitedStyleConverter"/>
        <converters:StringFormatConverter x:Key="StringFormatConverter" />
        <converters:PilotContentFlagsToVisibilityConverter x:Key="PilotContentFlagsToVisibilityConverter" />
        <converters:ContentFilterStringToFlagsConverter x:Key="ContentFilterStringToFlagsConverter" />
        <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
        <converters:BooleanToColorConverter x:Key="ReadKnownIssueColorConverter" TrueColorBrush="{StaticResource ReadKnownIssueBrush}" FalseColorBrush="{StaticResource UnreadKnownIssueBrush}"/>
        <converters:BooleanToColorConverter x:Key="ReadKnownIssueTextColorConverter" TrueColorBrush="{StaticResource ReadKnownIssueTextBrush}" FalseColorBrush="{StaticResource UnreadKnownIssueTextBrush}"/>
        
        <DataTemplate x:Key="AnnounecementItemTemplate" x:Name="AnnounecementItemTemplate">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid Grid.Row="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <TextBlock HorizontalAlignment="Left"
                               TextWrapping="Wrap"
                               Text="{Binding PublishedDate, Converter={StaticResource StringFormatConverter}, ConverterParameter='\{0:d\}'}"
                               VerticalAlignment="Top"
                               FontSize="15"
                               Foreground="Gray"
                               Margin="24,8,24,0" />

                    <Border BorderThickness="0"
                            CornerRadius="3"
                            Background="{ThemeResource AccentBrushAt70Percent}" Grid.Column="1"
                            Opacity="60"
                            Visibility="{Binding Flags, Converter={StaticResource PilotContentFlagsToVisibilityConverter}, ConverterParameter=KnownIssue}"
                            Padding="6,2,6,3"
                            Margin="0,0,0,0"
                            VerticalAlignment="Bottom">
                        
                        <TextBlock x:Uid="KnownIssueLabel"
                                   x:Name="KnownIssueLabel"
                                   HorizontalAlignment="Left"
                                   TextWrapping="Wrap"
                                   VerticalAlignment="Center"
                                   FontSize="12"
                                   Foreground="{ThemeResource ApplicationForegroundThemeBrush}"/>
                    </Border>
                </Grid>
                <TextBlock Grid.Row="1"
                           HorizontalAlignment="Left"
                           TextWrapping="Wrap"
                           Text="{Binding Title}"
                           VerticalAlignment="Top"
                           FontSize="15"
                           Margin="24,0,24,10"
                           FontWeight="{Binding Visited, Converter={StaticResource VisitedStyleConverter}}"/>
            </Grid>
        </DataTemplate>

        <Style x:Key="AnnonucementsContainerStyle" TargetType="ListViewItem">
            <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
            <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="Foreground" Value="{ThemeResource PilotsHubTextColorBrush}" />
            <Setter Property="TabNavigation" Value="Local" />
            <Setter Property="IsHoldingEnabled" Value="True" />
            <Setter Property="Margin" Value="0,0,0,0" />
            <Setter Property="HorizontalContentAlignment" Value="Left" />
            <Setter Property="VerticalContentAlignment" Value="Top" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <ListViewItemPresenter 
                                   FocusBorderBrush="{ThemeResource ListViewItemPointerOverBackgroundThemeBrush}" 
                                   SelectedForeground="{ThemeResource PilotsHubTextColorBrush}"                                    
                                   SelectedBackground="{ThemeResource AccentBrushAt60Percent}"
                                   VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
                                   SelectedPointerOverBackground="{StaticResource AccentBrushAt70Percent}"
                                   PointerOverBackground="{ThemeResource AccentBrushAt40Percent}"
                                   PointerOverForeground="{ThemeResource ApplicationForegroundThemeBrush}"
                            /> 
                        
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Page.Resources>
    <Grid Background="{StaticResource PageBackgroundColorBrush}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="320"/>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto">
            <Grid Grid.Column="0" >
                <Grid.ChildrenTransitions>
                    <TransitionCollection>
                        <EntranceThemeTransition />
                    </TransitionCollection>
                </Grid.ChildrenTransitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="320" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <Grid.Resources>
                    <ResourceDictionary>
                        <Style TargetType="TextBlock" BasedOn="{StaticResource AnnouncementPageTextBlockHeaderStyle}"/>
                    </ResourceDictionary>
                </Grid.Resources>
                
                <ListView x:ConnectionId='2' VerticalAlignment="Top" HorizontalAlignment="Stretch"
                          Margin="0,0,0,30"
                          ItemsSource="{Binding PresentedAnnouncements}"
                          Grid.Row="1"
                          Grid.Column="0"
                          ScrollViewer.VerticalScrollBarVisibility="Disabled"
                          ScrollViewer.VerticalScrollMode="Disabled"
                          SelectedItem="{Binding SelectedAnnouncement, Mode=TwoWay}"
                          SelectionMode="Single"
                          ItemTemplate="{StaticResource AnnounecementItemTemplate}"
                          ItemContainerStyle="{StaticResource AnnonucementsContainerStyle}"
                          TabIndex="1"
                          SelectedIndex="{Binding SelectedIndex, Mode=TwoWay}"
                          IsItemClickEnabled="True"
                                                              
                          IsTabStop="True"
                          x:Name="PresentedAnnouncements">
                    <ListView.Header>
                        <StackPanel>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="*" />
                                </Grid.RowDefinitions>

                                <Grid
                                    Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,0,0,0">
                                    <Button Margin="24,10,24,0"
                                            Style="{StaticResource FlyoutButtonStyle}" x:Name="FlyoutButton" AutomationProperties.Name="Filter Announcements"
                                            Visibility="{Binding IsContentFilteringFlyoutVisible, Converter={StaticResource BooleanToVisibilityConverter}}">
                                        <Button.Flyout>
                                            <Flyout dep:FlyoutHelpers.Parent="{Binding ElementName=FlyoutButton}"
                                                    dep:FlyoutHelpers.IsOpen="{Binding IsContentFilteringFlyoutOpen, Mode=TwoWay}" >
                                                <Grid>
                                                    <Grid.RowDefinitions>
                                                        <RowDefinition Height="Auto" />
                                                        <RowDefinition Height="*" />
                                                    </Grid.RowDefinitions>
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition Width="Auto" />
                                                        <ColumnDefinition Width="*" />
                                                    </Grid.ColumnDefinitions>
                                                    <TextBlock Text="&#57611;"
                                                               FontFamily="{ThemeResource SymbolThemeFontFamily}"
                                                               VerticalAlignment="Center"
                                                               Grid.Row="0" Grid.Column="0"
                                                               Visibility="{Binding CurentFilterFlags, Mode=TwoWay,
                                                                            Converter={StaticResource PilotContentFlagsToVisibilityConverter},
                                                                            ConverterParameter=NotKnownIssue}" />
                                                    <HyperlinkButton Command="{Binding CloseFlyoutCommand}"
                                                                     CommandParameter="Any"
                                                                     FontSize="16"
                                                                     Grid.Row="0" Grid.Column="1"
                                                                     Margin="7, 0, 0, 0">
                                                        <TextBlock x:Uid="ViewAllAnnouncementsLabel" Text="All Announcements (PH)" />
                                                    </HyperlinkButton>
                                                    <TextBlock Text="&#57611;"
                                                               FontFamily="{ThemeResource SymbolThemeFontFamily}"
                                                               VerticalAlignment="Center"
                                                               Grid.Row="1" Grid.Column="0"
                                                               Visibility="{Binding CurentFilterFlags, Mode=TwoWay,
                                                                            Converter={StaticResource PilotContentFlagsToVisibilityConverter},
                                                                            ConverterParameter=KnownIssue}" />
                                                    <HyperlinkButton Command="{Binding CloseFlyoutCommand}"
                                                                     CommandParameter="KnownIssue"
                                                                     FontSize="16"
                                                                     Grid.Row="1" Grid.Column="1"
                                                                     Margin="7, 0, 0, 0">
                                                        <TextBlock x:Uid="KnownIssues" Text="Known Issues (PH)"/>
                                                    </HyperlinkButton>
                                                </Grid>
                                            </Flyout>
                                        </Button.Flyout>
                                    </Button>
                                </Grid>
                            </Grid>
                            <Border Visibility="{Binding IsContentFilteringFlyoutVisible, Converter={StaticResource BooleanToVisibilityConverter}}"
                                    Grid.Row="1" 
                                    Background="{StaticResource DividerColorBrush}" 
                                    Height="1" 
                                    Margin="24,0,24,8"/>
                        </StackPanel>
                    </ListView.Header>
                </ListView>
            </Grid>
        </ScrollViewer>
        <Rectangle Grid.Column="1" Fill="{StaticResource DividerColorBrush}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.RowSpan="2"/>
        <ScrollViewer Grid.Column="2" 
            x:Name="ContentScrollViewer"
            Background="{ThemeResource PilotsHubWhiteBackgroundBrush}"
            HorizontalAlignment="Stretch"
            VerticalScrollBarVisibility="Auto" 
            HorizontalScrollBarVisibility="Disabled">
            <Grid 
                Margin="100,0,0,0"
                Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition MaxWidth="828" MinWidth="484" />
                </Grid.ColumnDefinitions>
                
                <ProgressRing Background="Transparent"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                Style="{StaticResource MediumProgressRingStyle}"
                                IsActive="{Binding State, Converter={StaticResource loadingStateToBooleanConverter}, ConverterParameter=Loading}"
                                Visibility="{Binding State, Converter={StaticResource loadingStateToVisibilityConverter}, ConverterParameter=Loading}" />
                    
                <TextBlock 
                    Grid.Row="0"
                    Margin="0,10,0,0"
                    Foreground="{ThemeResource PilotsHubTextColorBrush}"
                    FontWeight="Light"
                    Text="{Binding SelectedAnnouncement.Title}"
                    FontSize="46"
                    IsHitTestVisible="false"
                    TextWrapping="Wrap"
                    HorizontalAlignment="Stretch"/>


                <WebView x:ConnectionId='1'
                        DefaultBackgroundColor="Transparent"
                        Grid.Row="1"
                        x:Name="AnnouncementWebView"
                                                                       
                        Margin="0,15,0,0"
                                                                
                        dependencyProperties:WebViewStringDependency.HtmlString="{Binding SelectedAnnouncement.Description}"
                        IsHitTestVisible="false"
                        VerticalAlignment="Top"
                        ScrollViewer.VerticalScrollBarVisibility="Disabled"/>
            </Grid>
        </ScrollViewer>
    </Grid>
</local:LayoutAwarePage>

