{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE OverloadedStrings #-}
module Data.Aviation.Casr.Logbook.Html.Html(
htmlTimeAmount
, strTimeAmount
, strEngine
, htmlAircraft
, htmlRatingDay
, htmlRating
, htmlRatingShort
, htmlRatings
, htmlRatingsShort
, htmlAviatorName
, htmlAviatorARN
, htmlAviatorDob
, htmlAviatorRatings
, htmlAviator
, htmlAviatorShort
, htmlFlightPoint
, htmlFlightPath
, htmlCommand
, htmlTimeAmountZero
, htmlTimeAmountZeroWith
, htmlAviators
, htmlAircraftFlightName
, htmlAircraftFlight
, htmlTimeOfDayTime
, htmlTime
, htmlFlightPathTime
, htmlSimulatorFlightName
, htmlSimulatorFlight
, htmlLocation
, htmlExamResult
, htmlExamName
, htmlExam
, htmlBriefingName
, htmlBriefing
, space2dot
, htmlEntryTag
, htmlEntry
, htmlEntries
, htmlLogbook
, htmlTitleAviator
, htmlLogbookDocument
, htmlLogbookHeader
) where
import Control.Applicative((*>))
import Control.Category((.), id)
import Control.Lens
import Control.Monad(when, (=<<), (>>=))
import Data.Aviation.Casr.Logbook.Types
( Location(Location),
Engine(..),
Time(Time),
TimeAmount(TimeAmount),
HasTime(daytime),
zerotimeamount,
Rating(Rating),
Aircraft(Aircraft),
FlightPoint(FlightPoint),
Aviator(Aviator),
HasAircraft(aircraftRegistration),
DayNight(DayNight),
HasFlightPoint(point, landingTime),
HasAviator(arn, surname, firstname),
FlightPath,
HasFlightPath(flightEnd, flightStart),
flightPathList,
Command(..),
SimulatorFlight(SimulatorFlight),
Briefing(Briefing),
Exam(Exam),
HasExam(examTime, examName),
HasSimulatorFlight(simulatortype, simulatorflightname),
HasBriefing(briefingTime, briefingName),
AircraftFlight(AircraftFlight),
HasAircraftFlight(flightpath, flightaircraft, aircraftflightname),
Entry(..),
Entries(..),
Logbook(Logbook),
HasLogbook(logbookaviator),
Instruction,
HasInstructionRating(instructionRating),
HasInstructionLesson(lesson, student, instructionLesson),
shortStringRating )
import Data.Bool(not)
import Data.Char(toUpper)
import Data.Digit(DecDigit, charDecimal)
import Data.Eq((==))
import Data.Foldable(fold, sequence_, mapM_, null)
import Data.Function(($))
import Data.Functor((<$>))
import Data.Int(Int)
import Data.List(intersperse, concat)
import Data.Maybe(Maybe, maybe)
import Data.Monoid(Monoid, (<>), mempty)
import Data.String(String, fromString)
import Data.Time(Day, TimeOfDay)
import Data.Text(Text)
import qualified Data.Text as Text(pack)
import Lucid(
id_
, class_
, h1_
, h2_
, h3_
, span_
, a_
, div_
, href_
, src_
, type_
, script_
, body_
, title_
, rel_
, link_
, title_
, html_
, doctype_
, head_
, lang_
, hr_
, ul_
, li_
, Html
, toHtmlRaw
)
import Text.Printf(printf)
import Prelude(show, fromIntegral, (/), (*), Double)
htmlTimeAmount ::
TimeAmount
-> Html ()
htmlTimeAmount :: TimeAmount -> Html ()
htmlTimeAmount TimeAmount
t =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (TimeAmount -> [Char]
strTimeAmount TimeAmount
t)
Html ()
"hrs"
strTimeAmount ::
TimeAmount
-> String
strTimeAmount :: TimeAmount -> [Char]
strTimeAmount (TimeAmount Int
h DecDigit
x) =
Int -> [Char]
forall a. Show a => a -> [Char]
show Int
h [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Char]
"." [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Tagged DecDigit (Identity DecDigit) -> Tagged Char (Identity Char)
forall d. Decimal d => Prism' Char d
Prism' Char DecDigit
charDecimal (Tagged DecDigit (Identity DecDigit)
-> Tagged Char (Identity Char))
-> DecDigit -> Char
forall t b. AReview t b -> b -> t
# DecDigit
x]
strEngine ::
Engine
-> String
strEngine :: Engine -> [Char]
strEngine Engine
Single =
[Char]
"single-engine"
strEngine Engine
Multi =
[Char]
"multi-engine"
htmlAircraft ::
AircraftFlight
-> Aircraft
-> Html ()
htmlAircraft :: AircraftFlight -> Aircraft -> Html ()
htmlAircraft AircraftFlight
_ (Aircraft [Char]
t [Char]
r Engine
e) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"aircraft"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"aircrafttype"] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
t)
Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"aircraftregistration"] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
r)
Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"aircraftengine"] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Engine -> [Char]
strEngine Engine
e))
htmlRatingDay ::
Maybe Day
-> Html ()
htmlRatingDay :: Maybe Day -> Html ()
htmlRatingDay =
Html () -> (Day -> Html ()) -> Maybe Day -> Html ()
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Html ()
forall a. Monoid a => a
mempty (\Day
q ->
do Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Day -> [Char]
forall a. Show a => a -> [Char]
show Day
q))
htmlRating ::
Rating
-> Html ()
htmlRating :: Rating -> Html ()
htmlRating (Rating [Char]
n Maybe Day
d) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n)
Maybe Day -> Html ()
htmlRatingDay Maybe Day
d
htmlRatingShort ::
Rating
-> Html ()
htmlRatingShort :: Rating -> Html ()
htmlRatingShort (Rating [Char]
n Maybe Day
_) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n)
htmlRatings ::
[Rating]
-> Html ()
htmlRatings :: [Rating] -> Html ()
htmlRatings =
[Html ()] -> Html ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ ([Html ()] -> Html ())
-> ([Rating] -> [Html ()]) -> [Rating] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Html () -> [Html ()] -> [Html ()]
forall a. a -> [a] -> [a]
intersperse Html ()
", " ([Html ()] -> [Html ()])
-> ([Rating] -> [Html ()]) -> [Rating] -> [Html ()]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Rating -> Html ()
htmlRating (Rating -> Html ()) -> [Rating] -> [Html ()]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
htmlRatingsShort ::
[Rating]
-> Html ()
htmlRatingsShort :: [Rating] -> Html ()
htmlRatingsShort =
[Html ()] -> Html ()
forall (t :: * -> *) (m :: * -> *) a.
(Foldable t, Monad m) =>
t (m a) -> m ()
sequence_ ([Html ()] -> Html ())
-> ([Rating] -> [Html ()]) -> [Rating] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Html () -> [Html ()] -> [Html ()]
forall a. a -> [a] -> [a]
intersperse Html ()
", " ([Html ()] -> [Html ()])
-> ([Rating] -> [Html ()]) -> [Rating] -> [Html ()]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Rating -> Html ()
htmlRatingShort (Rating -> Html ()) -> [Rating] -> [Html ()]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
htmlAviatorName ::
String
-> String
-> Html ()
htmlAviatorName :: [Char] -> [Char] -> Html ()
htmlAviatorName [Char]
s [Char]
f =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [Text -> Attribute
id_ Text
"aviatorname"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Name: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Char -> Char
toUpper (Char -> Char) -> [Char] -> [Char]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Char]
s)
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([Char] -> Bool) -> [Char] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Char] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Char] -> Bool) -> [Char] -> Bool
forall a b. (a -> b) -> a -> b
$ [Char]
f) (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => [Char] -> HtmlT m ()
toHtmlRaw ([Char]
", " [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> [Char]
f)
htmlAviatorARN ::
[DecDigit]
-> Html ()
htmlAviatorARN :: [DecDigit] -> Html ()
htmlAviatorARN [DecDigit]
a =
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([DecDigit] -> Bool) -> [DecDigit] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [DecDigit] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([DecDigit] -> Bool) -> [DecDigit] -> Bool
forall a b. (a -> b) -> a -> b
$ [DecDigit]
a) (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [Text -> Attribute
id_ Text
"aviatorarn"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"ARN: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([DecDigit]
a [DecDigit] -> (DecDigit -> [Char]) -> [Char]
forall a b. [a] -> (a -> [b]) -> [b]
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (\DecDigit
d -> [Tagged DecDigit (Identity DecDigit) -> Tagged Char (Identity Char)
forall d. Decimal d => Prism' Char d
Prism' Char DecDigit
charDecimal (Tagged DecDigit (Identity DecDigit)
-> Tagged Char (Identity Char))
-> DecDigit -> Char
forall t b. AReview t b -> b -> t
# DecDigit
d]))
htmlAviatorDob ::
Maybe Day
-> Html ()
htmlAviatorDob :: Maybe Day -> Html ()
htmlAviatorDob =
Html () -> (Day -> Html ()) -> Maybe Day -> Html ()
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Html ()
forall a. Monoid a => a
mempty (\Day
q ->
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [Text -> Attribute
id_ Text
"aviatordob"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Date of Birth: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Day -> Html ()) -> Day -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([Char] -> Html ()) -> (Day -> [Char]) -> Day -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Day -> [Char]
forall a. Show a => a -> [Char]
show (Day -> Html ()) -> Day -> Html ()
forall a b. (a -> b) -> a -> b
$ Day
q)
htmlAviatorRatings ::
[Rating]
-> Html ()
htmlAviatorRatings :: [Rating] -> Html ()
htmlAviatorRatings [Rating]
r =
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([Rating] -> Bool) -> [Rating] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Rating] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Rating] -> Bool) -> [Rating] -> Bool
forall a b. (a -> b) -> a -> b
$ [Rating]
r) (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [Text -> Attribute
id_ Text
"aviatorratings"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Ratings: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> ([Rating] -> Html ()) -> [Rating] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
[Rating] -> Html ()
htmlRatings ([Rating] -> Html ()) -> [Rating] -> Html ()
forall a b. (a -> b) -> a -> b
$ [Rating]
r
htmlAviator ::
Aviator
-> Html ()
htmlAviator :: Aviator -> Html ()
htmlAviator (Aviator [Char]
s [Char]
f [DecDigit]
a Maybe Day
d [Rating]
r) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
id_ Text
"aviator", Text -> Attribute
class_ Text
"aviator"] (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> [Char] -> Html ()
htmlAviatorName [Char]
s [Char]
f
[DecDigit] -> Html ()
htmlAviatorARN [DecDigit]
a
Maybe Day -> Html ()
htmlAviatorDob Maybe Day
d
[Rating] -> Html ()
htmlAviatorRatings [Rating]
r
htmlAviatorShort ::
Aviator
-> Html ()
htmlAviatorShort :: Aviator -> Html ()
htmlAviatorShort (Aviator [Char]
s [Char]
f [DecDigit]
a Maybe Day
_ [Rating]
r) =
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
f
Html ()
" "
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
s
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([DecDigit] -> Bool) -> [DecDigit] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [DecDigit] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([DecDigit] -> Bool) -> [DecDigit] -> Bool
forall a b. (a -> b) -> a -> b
$ [DecDigit]
a) Html ()
" "
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([DecDigit]
a [DecDigit] -> (DecDigit -> [Char]) -> [Char]
forall a b. [a] -> (a -> [b]) -> [b]
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (\DecDigit
d -> [Tagged DecDigit (Identity DecDigit) -> Tagged Char (Identity Char)
forall d. Decimal d => Prism' Char d
Prism' Char DecDigit
charDecimal (Tagged DecDigit (Identity DecDigit)
-> Tagged Char (Identity Char))
-> DecDigit -> Char
forall t b. AReview t b -> b -> t
# DecDigit
d]))
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([Rating] -> Bool) -> [Rating] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Rating] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Rating] -> Bool) -> [Rating] -> Bool
forall a b. (a -> b) -> a -> b
$ [Rating]
r) Html ()
" "
[Rating] -> Html ()
htmlRatingsShort [Rating]
r
htmlFlightPoint ::
AircraftFlight
-> FlightPoint
-> Html ()
htmlFlightPoint :: AircraftFlight -> FlightPoint -> Html ()
htmlFlightPoint AircraftFlight
_ (FlightPoint [Char]
p Maybe [Char]
_ Time
_) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"flightpoint"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
p
htmlFlightPath ::
AircraftFlight
-> FlightPath
-> Html ()
htmlFlightPath :: AircraftFlight -> FlightPath -> Html ()
htmlFlightPath AircraftFlight
fl FlightPath
p =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"flightpath"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Html ()] -> Html ()
forall m. Monoid m => [m] -> m
forall (t :: * -> *) m. (Foldable t, Monoid m) => t m -> m
fold (Html () -> [Html ()] -> [Html ()]
forall a. a -> [a] -> [a]
intersperse (Text -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => Text -> HtmlT m ()
toHtmlRaw (Text
" — " :: Text)) (AircraftFlight -> FlightPoint -> Html ()
htmlFlightPoint AircraftFlight
fl (FlightPoint -> Html ()) -> [FlightPoint] -> [Html ()]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> FlightPath -> [FlightPoint]
flightPathList FlightPath
p))
htmlInstruction ::
Instruction
-> Html ()
htmlInstruction :: Instruction -> Html ()
htmlInstruction Instruction
i =
let r :: InstructionRating
r = Getting InstructionRating Instruction InstructionRating
-> Instruction -> InstructionRating
forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a
view Getting InstructionRating Instruction InstructionRating
forall c. HasInstructionRating c => Lens' c InstructionRating
Lens' Instruction InstructionRating
instructionRating Instruction
i
l :: InstructionLesson
l = Getting InstructionLesson Instruction InstructionLesson
-> Instruction -> InstructionLesson
forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a
view Getting InstructionLesson Instruction InstructionLesson
forall c. HasInstructionLesson c => Lens' c InstructionLesson
Lens' Instruction InstructionLesson
instructionLesson Instruction
i
a :: Aviator
a = Getting Aviator InstructionLesson Aviator
-> InstructionLesson -> Aviator
forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a
view Getting Aviator InstructionLesson Aviator
forall c. HasInstructionLesson c => Lens' c Aviator
Lens' InstructionLesson Aviator
student InstructionLesson
l
in do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"instructionrating"] ([Char] -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => [Char] -> HtmlT m ()
toHtmlRaw (InstructionRating -> [Char]
shortStringRating InstructionRating
r))
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" for "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandaviator"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator -> Html ()
htmlAviatorShort Aviator
a
Html () -> ([Char] -> Html ()) -> Maybe [Char] -> Html ()
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Html ()
forall a. Monoid a => a
mempty (\[Char]
c ->
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"instructionlesson"] ([Char] -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => [Char] -> HtmlT m ()
toHtmlRaw [Char]
c)
) (Getting (Maybe [Char]) InstructionLesson (Maybe [Char])
-> InstructionLesson -> Maybe [Char]
forall s (m :: * -> *) a. MonadReader s m => Getting a s a -> m a
view Getting (Maybe [Char]) InstructionLesson (Maybe [Char])
forall c. HasInstructionLesson c => Lens' c (Maybe [Char])
Lens' InstructionLesson (Maybe [Char])
lesson InstructionLesson
l)
htmlCommand ::
AircraftFlight
-> Command
-> Html ()
htmlCommand :: AircraftFlight -> Command -> Html ()
htmlCommand AircraftFlight
_ Command
InCommand =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"command incommand"] Html ()
"In-Command"
htmlCommand AircraftFlight
_ (InCommandInstructing Instruction
a) =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"command incommandinstruction"] Html ()
"Instruction"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" as "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandinstruction"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Instruction -> Html ()
htmlInstruction Instruction
a
htmlCommand AircraftFlight
_ (ICUS Aviator
a) =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"command incommandunderinstruction"] Html ()
"In-Command Under-Instruction"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" by "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandaviator"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator -> Html ()
htmlAviatorShort Aviator
a
htmlCommand AircraftFlight
_ (Dual Aviator
a) =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"command dualunderinstruction"] Html ()
"Dual Under-Instruction"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" by "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandaviator"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator -> Html ()
htmlAviatorShort Aviator
a
htmlCommand AircraftFlight
_ (ApprovedSolo Aviator
a InstructionRating
r) =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"instructionrating"] ([Char] -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => [Char] -> HtmlT m ()
toHtmlRaw (InstructionRating -> [Char]
shortStringRating InstructionRating
r))
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" for "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"command approvedsolo"] Html ()
"Approved Solo"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandphrase"] Html ()
" by "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"commandaviator"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator -> Html ()
htmlAviatorShort Aviator
a
htmlTimeAmountZero ::
TimeAmount
-> Html ()
htmlTimeAmountZero :: TimeAmount -> Html ()
htmlTimeAmountZero =
(Html () -> Html ()) -> TimeAmount -> Html ()
forall a. Monoid a => (Html () -> a) -> TimeAmount -> a
htmlTimeAmountZeroWith Html () -> Html ()
forall a. a -> a
forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
htmlTimeAmountZeroWith ::
Monoid a =>
(Html () -> a)
-> TimeAmount
-> a
htmlTimeAmountZeroWith :: forall a. Monoid a => (Html () -> a) -> TimeAmount -> a
htmlTimeAmountZeroWith Html () -> a
f TimeAmount
z =
if TimeAmount
z TimeAmount -> TimeAmount -> Bool
forall a. Eq a => a -> a -> Bool
== TimeAmount
zerotimeamount
then
a
forall a. Monoid a => a
mempty
else
Html () -> a
f (TimeAmount -> Html ()
htmlTimeAmount TimeAmount
z)
htmlAviators ::
[Aviator]
-> Html ()
htmlAviators :: [Aviator] -> Html ()
htmlAviators =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ())
-> ([Aviator] -> Html ()) -> [Aviator] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
(Aviator -> Html ()) -> [Aviator] -> Html ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ ([Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> (Aviator -> Html ()) -> Aviator -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Aviator -> Html ()
htmlAviatorShort)
htmlAircraftFlightName ::
String
-> Html ()
htmlAircraftFlightName :: [Char] -> Html ()
htmlAircraftFlightName [Char]
n =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
h3_ [Text -> Attribute
class_ Text
"aircraftflightname"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n
htmlAircraftFlight ::
AircraftFlight
-> Html ()
htmlAircraftFlight :: AircraftFlight -> Html ()
htmlAircraftFlight fl :: AircraftFlight
fl@(AircraftFlight [Char]
n Aircraft
a Command
c (DayNight TimeAmount
d TimeAmount
m) FlightPath
p [Aviator]
o TimeAmount
i) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
class_ Text
"aircraftflight"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
htmlAircraftFlightName [Char]
n
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Time: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (FlightPath -> Html ()) -> FlightPath -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
FlightPath -> Html ()
htmlFlightPathTime (FlightPath -> Html ()) -> FlightPath -> Html ()
forall a b. (a -> b) -> a -> b
$ FlightPath
p
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Aircraft: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (Aircraft -> Html ()) -> Aircraft -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
AircraftFlight -> Aircraft -> Html ()
htmlAircraft AircraftFlight
fl (Aircraft -> Html ()) -> Aircraft -> Html ()
forall a b. (a -> b) -> a -> b
$ Aircraft
a
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Command: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Command -> Html ()) -> Command -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
AircraftFlight -> Command -> Html ()
htmlCommand AircraftFlight
fl (Command -> Html ()) -> Command -> Html ()
forall a b. (a -> b) -> a -> b
$ Command
c
(Html () -> Html ()) -> TimeAmount -> Html ()
forall a. Monoid a => (Html () -> a) -> TimeAmount -> a
htmlTimeAmountZeroWith (\Html ()
t ->
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Amount (day): "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] Html ()
t) TimeAmount
d
(Html () -> Html ()) -> TimeAmount -> Html ()
forall a. Monoid a => (Html () -> a) -> TimeAmount -> a
htmlTimeAmountZeroWith (\Html ()
t ->
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Amount (night): "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] Html ()
t) TimeAmount
m
(Html () -> Html ()) -> TimeAmount -> Html ()
forall a. Monoid a => (Html () -> a) -> TimeAmount -> a
htmlTimeAmountZeroWith (\Html ()
t ->
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Amount (instrument): "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] Html ()
t) TimeAmount
i
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Flight Path: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (FlightPath -> Html ()) -> FlightPath -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
AircraftFlight -> FlightPath -> Html ()
htmlFlightPath AircraftFlight
fl (FlightPath -> Html ()) -> FlightPath -> Html ()
forall a b. (a -> b) -> a -> b
$ FlightPath
p
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([Aviator] -> Bool) -> [Aviator] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Aviator] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Aviator] -> Bool) -> [Aviator] -> Bool
forall a b. (a -> b) -> a -> b
$ [Aviator]
o) (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Other Crew: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> ([Aviator] -> Html ()) -> [Aviator] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
[Aviator] -> Html ()
htmlAviators ([Aviator] -> Html ()) -> [Aviator] -> Html ()
forall a b. (a -> b) -> a -> b
$ [Aviator]
o
htmlTimeOfDayTime ::
Maybe TimeOfDay
-> Html ()
htmlTimeOfDayTime :: Maybe TimeOfDay -> Html ()
htmlTimeOfDayTime =
Html () -> (TimeOfDay -> Html ()) -> Maybe TimeOfDay -> Html ()
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Html ()
forall a. Monoid a => a
mempty (\TimeOfDay
e -> do Html ()
" "
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (TimeOfDay -> [Char]
forall a. Show a => a -> [Char]
show TimeOfDay
e))
htmlTime ::
Time
-> Html ()
htmlTime :: Time -> Html ()
htmlTime (Time Day
t Maybe TimeOfDay
d) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"time"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Day -> [Char]
forall a. Show a => a -> [Char]
show Day
t)
Maybe TimeOfDay -> Html ()
htmlTimeOfDayTime Maybe TimeOfDay
d
htmlFlightPathTime ::
FlightPath
-> Html()
htmlFlightPathTime :: FlightPath -> Html ()
htmlFlightPathTime FlightPath
p =
let s :: Time
s = FlightPath
p FlightPath -> Getting Time FlightPath Time -> Time
forall s a. s -> Getting a s a -> a
^. (FlightPoint -> Const Time FlightPoint)
-> FlightPath -> Const Time FlightPath
forall c. HasFlightPath c => Lens' c FlightPoint
Lens' FlightPath FlightPoint
flightStart ((FlightPoint -> Const Time FlightPoint)
-> FlightPath -> Const Time FlightPath)
-> ((Time -> Const Time Time)
-> FlightPoint -> Const Time FlightPoint)
-> Getting Time FlightPath Time
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Time -> Const Time Time) -> FlightPoint -> Const Time FlightPoint
forall c. HasFlightPoint c => Lens' c Time
Lens' FlightPoint Time
landingTime
e :: Time
e = FlightPath
p FlightPath -> Getting Time FlightPath Time -> Time
forall s a. s -> Getting a s a -> a
^. (FlightPoint -> Const Time FlightPoint)
-> FlightPath -> Const Time FlightPath
forall c. HasFlightPath c => Lens' c FlightPoint
Lens' FlightPath FlightPoint
flightEnd ((FlightPoint -> Const Time FlightPoint)
-> FlightPath -> Const Time FlightPath)
-> ((Time -> Const Time Time)
-> FlightPoint -> Const Time FlightPoint)
-> Getting Time FlightPath Time
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Time -> Const Time Time) -> FlightPoint -> Const Time FlightPoint
forall c. HasFlightPoint c => Lens' c Time
Lens' FlightPoint Time
landingTime
in if Time
s Time -> Time -> Bool
forall a. Eq a => a -> a -> Bool
== Time
e
then
Time -> Html ()
htmlTime Time
s
else
do Time -> Html ()
htmlTime Time
s
Text -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => Text -> HtmlT m ()
toHtmlRaw (Text
" — " :: Text)
Time -> Html ()
htmlTime Time
e
htmlSimulatorFlightName ::
String
-> Html ()
htmlSimulatorFlightName :: [Char] -> Html ()
htmlSimulatorFlightName [Char]
n =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
h3_ [Text -> Attribute
class_ Text
"simulatorflightname"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n
htmlSimulatorFlight ::
SimulatorFlight
-> Html ()
htmlSimulatorFlight :: SimulatorFlight -> Html ()
htmlSimulatorFlight (SimulatorFlight [Char]
n Time
t [Char]
y [Aviator]
o TimeAmount
a TimeAmount
i) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
class_ Text
"simulatorflight"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
htmlSimulatorFlightName [Char]
n
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Time: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Time -> Html ()) -> Time -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Time -> Html ()
htmlTime (Time -> Html ()) -> Time -> Html ()
forall a b. (a -> b) -> a -> b
$ Time
t
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Type: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] ([Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
y)
Bool -> Html () -> Html ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Bool -> Bool
not (Bool -> Bool) -> ([Aviator] -> Bool) -> [Aviator] -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Aviator] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null ([Aviator] -> Bool) -> [Aviator] -> Bool
forall a b. (a -> b) -> a -> b
$ [Aviator]
o) (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Other Crew: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> ([Aviator] -> Html ()) -> [Aviator] -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
[Aviator] -> Html ()
htmlAviators ([Aviator] -> Html ()) -> [Aviator] -> Html ()
forall a b. (a -> b) -> a -> b
$ [Aviator]
o
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Amount: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
TimeAmount -> Html ()
htmlTimeAmount (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall a b. (a -> b) -> a -> b
$ TimeAmount
a
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Instrument: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
TimeAmount -> Html ()
htmlTimeAmount (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall a b. (a -> b) -> a -> b
$ TimeAmount
i
htmlLocation ::
Location
-> Html ()
htmlLocation :: Location -> Html ()
htmlLocation (Location [Char]
n Double
t Double
o) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"location"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n
Html ()
" "
let t' :: Text
t' = [Char] -> Text
forall a. IsString a => [Char] -> a
fromString (Double -> [Char]
forall a. Show a => a -> [Char]
show Double
t)
o' :: Text
o' = [Char] -> Text
forall a. IsString a => [Char] -> a
fromString (Double -> [Char]
forall a. Show a => a -> [Char]
show Double
o)
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"locationopenstreetmap"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ (Text
"http://www.openstreetmap.org/?mlat=" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
t' Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"&mlon=" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
o' Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"#map=16/" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
t' Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"/" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
o')]
Html ()
"osm"
Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"locationgooglemaps"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ (Text
"https://www.google.com/maps/?q=" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
t' Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"," Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
o')]
Html ()
"gmap"
htmlExamResult ::
Int
-> Int
-> Html ()
htmlExamResult :: Int -> Int -> Html ()
htmlExamResult Int
x Int
y =
do [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Int -> [Char]
forall a. Show a => a -> [Char]
show Int
x)
Html ()
"/"
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString (Int -> [Char]
forall a. Show a => a -> [Char]
show Int
y)
htmlExamName ::
String
-> Html ()
htmlExamName :: [Char] -> Html ()
htmlExamName [Char]
n =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
h3_ [Text -> Attribute
class_ Text
"examname"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n
htmlExam ::
Exam
-> Html ()
htmlExam :: Exam -> Html ()
htmlExam (Exam [Char]
n Location
l Time
t Aviator
a Int
r Int
m) =
let r' :: Html ()
r' = do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"examresult"] (Html () -> Html ()) -> (Int -> Html ()) -> Int -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([Char] -> Html ()) -> (Int -> [Char]) -> Int -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int -> [Char]
forall a. Show a => a -> [Char]
show (Int -> Html ()) -> Int -> Html ()
forall a b. (a -> b) -> a -> b
$ Int
r
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"examresultoutof"] Html ()
"/"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"examresultmaximum"] (Html () -> Html ()) -> (Int -> Html ()) -> Int -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([Char] -> Html ()) -> (Int -> [Char]) -> Int -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int -> [Char]
forall a. Show a => a -> [Char]
show (Int -> Html ()) -> Int -> Html ()
forall a b. (a -> b) -> a -> b
$ Int
m
Html ()
" ("
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"examresultpercentage"] (Html () -> Html ()) -> (Double -> Html ()) -> Double -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([Char] -> Html ()) -> (Double -> [Char]) -> Double -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Char] -> Double -> [Char]
forall r. PrintfType r => [Char] -> r
printf [Char]
"%.2f" (Double -> Html ()) -> Double -> Html ()
forall a b. (a -> b) -> a -> b
$ (Double
100 Double -> Double -> Double
forall a. Num a => a -> a -> a
* Int -> Double
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
r Double -> Double -> Double
forall a. Fractional a => a -> a -> a
/ Int -> Double
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
m :: Double)
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"examresultpercentsign"] Html ()
"%"
Html ()
")"
in [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
class_ Text
"exam"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
htmlExamName [Char]
n
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Time: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Time -> Html ()) -> Time -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Time -> Html ()
htmlTime (Time -> Html ()) -> Time -> Html ()
forall a b. (a -> b) -> a -> b
$ Time
t
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Location: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (Location -> Html ()) -> Location -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Location -> Html ()
htmlLocation (Location -> Html ()) -> Location -> Html ()
forall a b. (a -> b) -> a -> b
$ Location
l
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Delegate: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Aviator -> Html ()) -> Aviator -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Aviator -> Html ()
htmlAviatorShort (Aviator -> Html ()) -> Aviator -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator
a
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Result: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] Html ()
r'
htmlBriefingName ::
String
-> Html ()
htmlBriefingName :: [Char] -> Html ()
htmlBriefingName [Char]
n =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
h3_ [Text -> Attribute
class_ Text
"briefingname"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString [Char]
n
htmlBriefing ::
Briefing
-> Html ()
htmlBriefing :: Briefing -> Html ()
htmlBriefing (Briefing [Char]
n Location
l Time
t Aviator
a TimeAmount
m) =
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
class_ Text
"briefing"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Char] -> Html ()
htmlBriefingName [Char]
n
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
ul_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Time: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Time -> Html ()) -> Time -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Time -> Html ()
htmlTime (Time -> Html ()) -> Time -> Html ()
forall a b. (a -> b) -> a -> b
$ Time
t
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Location: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (Location -> Html ()) -> Location -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Location -> Html ()
htmlLocation (Location -> Html ()) -> Location -> Html ()
forall a b. (a -> b) -> a -> b
$ Location
l
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Amount: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ())
-> (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
TimeAmount -> Html ()
htmlTimeAmountZero (TimeAmount -> Html ()) -> TimeAmount -> Html ()
forall a b. (a -> b) -> a -> b
$ TimeAmount
m
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
li_ [] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"key"] Html ()
"Briefer: "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"value"] (Html () -> Html ()) -> (Aviator -> Html ()) -> Aviator -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
.
Aviator -> Html ()
htmlAviatorShort (Aviator -> Html ()) -> Aviator -> Html ()
forall a b. (a -> b) -> a -> b
$ Aviator
a
space2dot ::
String
-> String
space2dot :: [Char] -> [Char]
space2dot =
(Char -> Char) -> [Char] -> [Char]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
(<$>) ((Char -> Char) -> [Char] -> [Char])
-> (Char -> Char) -> [Char] -> [Char]
forall a b. (a -> b) -> a -> b
$ \Char
c -> case Char
c of
Char
' ' -> Char
'.'
Char
_ -> Char
c
htmlEntryTag ::
Entry a b c d
-> Html ()
htmlEntryTag :: forall a b c d. Entry a b c d -> Html ()
htmlEntryTag (AircraftFlightEntry AircraftFlight
e a
_) =
let lk :: [Char]
lk = [Char] -> [Char]
space2dot ([Char] -> [Char]) -> ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [[Char]] -> [Char]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall a b. (a -> b) -> a -> b
$
[
[Char]
"FLT_"
, AircraftFlight
e AircraftFlight -> Getting [Char] AircraftFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] AircraftFlight [Char]
forall c. HasAircraftFlight c => Lens' c [Char]
Lens' AircraftFlight [Char]
aircraftflightname
, [Char]
"_"
, AircraftFlight
e AircraftFlight -> Getting [Char] AircraftFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. (Aircraft -> Const [Char] Aircraft)
-> AircraftFlight -> Const [Char] AircraftFlight
forall c. HasAircraftFlight c => Lens' c Aircraft
Lens' AircraftFlight Aircraft
flightaircraft ((Aircraft -> Const [Char] Aircraft)
-> AircraftFlight -> Const [Char] AircraftFlight)
-> (([Char] -> Const [Char] [Char])
-> Aircraft -> Const [Char] Aircraft)
-> Getting [Char] AircraftFlight [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ([Char] -> Const [Char] [Char])
-> Aircraft -> Const [Char] Aircraft
forall c. HasAircraft c => Lens' c [Char]
Lens' Aircraft [Char]
aircraftRegistration
, [Char]
"_"
, AircraftFlight
e AircraftFlight -> Getting [Char] AircraftFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. (FlightPath -> Const [Char] FlightPath)
-> AircraftFlight -> Const [Char] AircraftFlight
forall c. HasAircraftFlight c => Lens' c FlightPath
Lens' AircraftFlight FlightPath
flightpath ((FlightPath -> Const [Char] FlightPath)
-> AircraftFlight -> Const [Char] AircraftFlight)
-> (([Char] -> Const [Char] [Char])
-> FlightPath -> Const [Char] FlightPath)
-> Getting [Char] AircraftFlight [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (FlightPoint -> Const [Char] FlightPoint)
-> FlightPath -> Const [Char] FlightPath
forall c. HasFlightPath c => Lens' c FlightPoint
Lens' FlightPath FlightPoint
flightStart ((FlightPoint -> Const [Char] FlightPoint)
-> FlightPath -> Const [Char] FlightPath)
-> (([Char] -> Const [Char] [Char])
-> FlightPoint -> Const [Char] FlightPoint)
-> ([Char] -> Const [Char] [Char])
-> FlightPath
-> Const [Char] FlightPath
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ([Char] -> Const [Char] [Char])
-> FlightPoint -> Const [Char] FlightPoint
forall c. HasFlightPoint c => Lens' c [Char]
Lens' FlightPoint [Char]
point
, [Char]
"-"
, AircraftFlight
e AircraftFlight -> Getting [Char] AircraftFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. (FlightPath -> Const [Char] FlightPath)
-> AircraftFlight -> Const [Char] AircraftFlight
forall c. HasAircraftFlight c => Lens' c FlightPath
Lens' AircraftFlight FlightPath
flightpath ((FlightPath -> Const [Char] FlightPath)
-> AircraftFlight -> Const [Char] AircraftFlight)
-> (([Char] -> Const [Char] [Char])
-> FlightPath -> Const [Char] FlightPath)
-> Getting [Char] AircraftFlight [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (FlightPoint -> Const [Char] FlightPoint)
-> FlightPath -> Const [Char] FlightPath
forall c. HasFlightPath c => Lens' c FlightPoint
Lens' FlightPath FlightPoint
flightEnd ((FlightPoint -> Const [Char] FlightPoint)
-> FlightPath -> Const [Char] FlightPath)
-> (([Char] -> Const [Char] [Char])
-> FlightPoint -> Const [Char] FlightPoint)
-> ([Char] -> Const [Char] [Char])
-> FlightPath
-> Const [Char] FlightPath
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ([Char] -> Const [Char] [Char])
-> FlightPoint -> Const [Char] FlightPoint
forall c. HasFlightPoint c => Lens' c [Char]
Lens' FlightPoint [Char]
point
]
in do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
id_ ([Char] -> Text
Text.pack [Char]
lk)] Html ()
""
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ ([Char] -> Text
Text.pack (Char
'#' Char -> [Char] -> [Char]
forall a. a -> [a] -> [a]
: [Char]
lk))] (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"entrytag"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Html ()
"FLT"
htmlEntryTag (SimulatorFlightEntry SimulatorFlight
e b
_) =
let lk :: [Char]
lk = [Char] -> [Char]
space2dot ([Char] -> [Char]) -> ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [[Char]] -> [Char]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall a b. (a -> b) -> a -> b
$
[
[Char]
"SIM_"
, SimulatorFlight
e SimulatorFlight -> Getting [Char] SimulatorFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] SimulatorFlight [Char]
forall c. HasSimulatorFlight c => Lens' c [Char]
Lens' SimulatorFlight [Char]
simulatorflightname
, [Char]
"_"
, SimulatorFlight
e SimulatorFlight -> Getting [Char] SimulatorFlight [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] SimulatorFlight [Char]
forall c. HasSimulatorFlight c => Lens' c [Char]
Lens' SimulatorFlight [Char]
simulatortype
]
in do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
id_ ([Char] -> Text
Text.pack [Char]
lk)] Html ()
""
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ ([Char] -> Text
Text.pack (Char
'#' Char -> [Char] -> [Char]
forall a. a -> [a] -> [a]
: [Char]
lk))] (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"entrytag"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Html ()
"SIM"
htmlEntryTag (ExamEntry Exam
e c
_) =
let lk :: [Char]
lk = [Char] -> [Char]
space2dot ([Char] -> [Char]) -> ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [[Char]] -> [Char]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall a b. (a -> b) -> a -> b
$
[
[Char]
"EXM_"
, Exam
e Exam -> Getting [Char] Exam [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] Exam [Char]
forall c. HasExam c => Lens' c [Char]
Lens' Exam [Char]
examName
, [Char]
"_"
, Day -> [Char]
forall a. Show a => a -> [Char]
show (Exam
e Exam -> Getting Day Exam Day -> Day
forall s a. s -> Getting a s a -> a
^. (Time -> Const Day Time) -> Exam -> Const Day Exam
forall c. HasExam c => Lens' c Time
Lens' Exam Time
examTime ((Time -> Const Day Time) -> Exam -> Const Day Exam)
-> ((Day -> Const Day Day) -> Time -> Const Day Time)
-> Getting Day Exam Day
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Day -> Const Day Day) -> Time -> Const Day Time
forall c. HasTime c => Lens' c Day
Lens' Time Day
daytime)
]
in do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
id_ ([Char] -> Text
Text.pack [Char]
lk)] Html ()
""
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ ([Char] -> Text
Text.pack (Char
'#' Char -> [Char] -> [Char]
forall a. a -> [a] -> [a]
: [Char]
lk))] (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"entrytag"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Html ()
"EXM"
htmlEntryTag (BriefingEntry Briefing
e d
_) =
let lk :: [Char]
lk = [Char] -> [Char]
space2dot ([Char] -> [Char]) -> ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [[Char]] -> [Char]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Char]] -> [Char]) -> [[Char]] -> [Char]
forall a b. (a -> b) -> a -> b
$
[
[Char]
"BRF_"
, Briefing
e Briefing -> Getting [Char] Briefing [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] Briefing [Char]
forall c. HasBriefing c => Lens' c [Char]
Lens' Briefing [Char]
briefingName
, [Char]
"_"
, Day -> [Char]
forall a. Show a => a -> [Char]
show (Briefing
e Briefing -> Getting Day Briefing Day -> Day
forall s a. s -> Getting a s a -> a
^. (Time -> Const Day Time) -> Briefing -> Const Day Briefing
forall c. HasBriefing c => Lens' c Time
Lens' Briefing Time
briefingTime ((Time -> Const Day Time) -> Briefing -> Const Day Briefing)
-> ((Day -> Const Day Day) -> Time -> Const Day Time)
-> Getting Day Briefing Day
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Day -> Const Day Day) -> Time -> Const Day Time
forall c. HasTime c => Lens' c Day
Lens' Time Day
daytime)
]
in do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
id_ ([Char] -> Text
Text.pack [Char]
lk)] Html ()
""
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ ([Char] -> Text
Text.pack (Char
'#' Char -> [Char] -> [Char]
forall a. a -> [a] -> [a]
: [Char]
lk))] (Html () -> Html ()) -> (Html () -> Html ()) -> Html () -> Html ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"entrytag"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$ Html ()
"BRF"
htmlEntry ::
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entry a b c d
-> Html x
htmlEntry :: forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entry a b c d
-> Html x
htmlEntry AircraftFlight -> a -> HtmlT Identity x
aircraftFlightMeta' SimulatorFlight -> b -> HtmlT Identity x
simulatorFlightMeta' Exam -> c -> HtmlT Identity x
examMeta' Briefing -> d -> HtmlT Identity x
briefingMeta' Entry a b c d
x =
do Entry a b c d -> Html ()
forall a b c d. Entry a b c d -> Html ()
htmlEntryTag Entry a b c d
x
case Entry a b c d
x of
AircraftFlightEntry AircraftFlight
e a
ae ->
do [Attribute] -> HtmlT Identity x -> HtmlT Identity x
forall arg result. Term arg result => arg -> result
div_ [] (HtmlT Identity x -> HtmlT Identity x)
-> HtmlT Identity x -> HtmlT Identity x
forall a b. (a -> b) -> a -> b
$
do AircraftFlight -> Html ()
htmlAircraftFlight AircraftFlight
e
AircraftFlight -> a -> HtmlT Identity x
aircraftFlightMeta' AircraftFlight
e a
ae
SimulatorFlightEntry SimulatorFlight
e b
ae ->
do [Attribute] -> HtmlT Identity x -> HtmlT Identity x
forall arg result. Term arg result => arg -> result
div_ [] (HtmlT Identity x -> HtmlT Identity x)
-> HtmlT Identity x -> HtmlT Identity x
forall a b. (a -> b) -> a -> b
$
do SimulatorFlight -> Html ()
htmlSimulatorFlight SimulatorFlight
e
SimulatorFlight -> b -> HtmlT Identity x
simulatorFlightMeta' SimulatorFlight
e b
ae
ExamEntry Exam
e c
ae ->
do [Attribute] -> HtmlT Identity x -> HtmlT Identity x
forall arg result. Term arg result => arg -> result
div_ [] (HtmlT Identity x -> HtmlT Identity x)
-> HtmlT Identity x -> HtmlT Identity x
forall a b. (a -> b) -> a -> b
$
do Exam -> Html ()
htmlExam Exam
e
Exam -> c -> HtmlT Identity x
examMeta' Exam
e c
ae
BriefingEntry Briefing
e d
ae ->
do [Attribute] -> HtmlT Identity x -> HtmlT Identity x
forall arg result. Term arg result => arg -> result
div_ [] (HtmlT Identity x -> HtmlT Identity x)
-> HtmlT Identity x -> HtmlT Identity x
forall a b. (a -> b) -> a -> b
$
do Briefing -> Html ()
htmlBriefing Briefing
e
Briefing -> d -> HtmlT Identity x
briefingMeta' Briefing
e d
ae
htmlEntries ::
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entries a b c d
-> Html ()
htmlEntries :: forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entries a b c d
-> Html ()
htmlEntries AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' (Entries [Entry a b c d]
es) =
(Entry a b c d -> Html x) -> [Entry a b c d] -> Html ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\Entry a b c d
e -> [Attribute] -> Html ()
forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
hr_ [] Html () -> Html x -> Html x
forall a b.
HtmlT Identity a -> HtmlT Identity b -> HtmlT Identity b
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b
*> (AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entry a b c d
-> Html x
forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entry a b c d
-> Html x
htmlEntry AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' Entry a b c d
e) [Entry a b c d]
es
htmlLogbook ::
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
htmlLogbook :: forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
htmlLogbook AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' Html ()
reports' (Logbook Aviator
a Entries a b c d
es) =
do Aviator -> Html ()
htmlAviator Aviator
a
[Attribute] -> Html ()
forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
hr_ []
Html ()
reports'
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entries a b c d
-> Html ()
forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Entries a b c d
-> Html ()
htmlEntries AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' Entries a b c d
es
htmlTitleAviator ::
Aviator
-> Html ()
htmlTitleAviator :: Aviator -> Html ()
htmlTitleAviator Aviator
a =
[Char] -> Html ()
forall a. IsString a => [Char] -> a
fromString ([[Char]] -> [Char]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
[
Aviator
a Aviator -> Getting [Char] Aviator [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] Aviator [Char]
forall c. HasAviator c => Lens' c [Char]
Lens' Aviator [Char]
firstname
, [Char]
" "
, Aviator
a Aviator -> Getting [Char] Aviator [Char] -> [Char]
forall s a. s -> Getting a s a -> a
^. Getting [Char] Aviator [Char]
forall c. HasAviator c => Lens' c [Char]
Lens' Aviator [Char]
surname
, [Char]
" ("
, (\DecDigit
d -> [Tagged DecDigit (Identity DecDigit) -> Tagged Char (Identity Char)
forall d. Decimal d => Prism' Char d
Prism' Char DecDigit
charDecimal (Tagged DecDigit (Identity DecDigit)
-> Tagged Char (Identity Char))
-> DecDigit -> Char
forall t b. AReview t b -> b -> t
# DecDigit
d]) (DecDigit -> [Char]) -> [DecDigit] -> [Char]
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< (Aviator
a Aviator -> Getting [DecDigit] Aviator [DecDigit] -> [DecDigit]
forall s a. s -> Getting a s a -> a
^. Getting [DecDigit] Aviator [DecDigit]
forall c. HasAviator c => Lens' c [DecDigit]
Lens' Aviator [DecDigit]
arn)
, [Char]
")"
])
htmlLogbookDocument ::
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
htmlLogbookDocument :: forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
htmlLogbookDocument AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' Html ()
reports' Logbook a b c d
b =
do Html ()
forall (m :: * -> *). Applicative m => HtmlT m ()
doctype_
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
html_ [Text -> Attribute
lang_ Text
"en"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do Html () -> Html ()
forall arg result. Term arg result => arg -> result
head_ (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do Html () -> Html ()
forall arg result. Term arg result => arg -> result
title_ (Html ()
"Pilot Personal Logbook " Html () -> Html () -> Html ()
forall a. Semigroup a => a -> a -> a
<> Text -> Html ()
forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
forall (m :: * -> *). Monad m => Text -> HtmlT m ()
toHtmlRaw (Text
" — " :: Text) Html () -> Html () -> Html ()
forall a. Semigroup a => a -> a -> a
<> Aviator -> Html ()
htmlTitleAviator (Logbook a b c d
b Logbook a b c d
-> Getting Aviator (Logbook a b c d) Aviator -> Aviator
forall s a. s -> Getting a s a -> a
^. Getting Aviator (Logbook a b c d) Aviator
forall c ae se ee be. HasLogbook c ae se ee be => Lens' c Aviator
Lens' (Logbook a b c d) Aviator
logbookaviator))
[Attribute] -> Html ()
forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
link_ [Text -> Attribute
href_ Text
"https://fonts.googleapis.com/css?family=Inconsolata:400,700", Text -> Attribute
rel_ Text
"stylesheet", Text -> Attribute
type_ Text
"text/css"]
[Attribute] -> Html ()
forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
link_ [Text -> Attribute
href_ Text
"casr-logbook.css", Text -> Attribute
rel_ Text
"stylesheet", Text -> Attribute
type_ Text
"text/css"]
[Attribute] -> Html ()
forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
link_ [Text -> Attribute
href_ Text
"/atom.xml", Text -> Attribute
rel_ Text
"alternate", Text -> Attribute
type_ Text
"application/atom+xml", Text -> Attribute
forall arg result. Term arg result => arg -> result
title_ Text
"Atom feed"]
[Attribute] -> Text -> Html ()
forall arg result. TermRaw arg result => arg -> result
script_ [Text -> Attribute
type_ Text
"text/javascript", Text -> Attribute
src_ Text
"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"] (Text
"" :: Text)
[Attribute] -> Text -> Html ()
forall arg result. TermRaw arg result => arg -> result
script_ [Text -> Attribute
type_ Text
"text/javascript", Text -> Attribute
src_ Text
"https://raw.github.com/Mathapedia/LaTeX2HTML5/master/latex2html5.min.js"] (Text
"" :: Text)
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
body_ [Text -> Attribute
class_ Text
"casr-logbook"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do Logbook a b c d -> Html ()
forall a b c d. Logbook a b c d -> Html ()
htmlLogbookHeader Logbook a b c d
b
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
forall a x b c d.
(AircraftFlight -> a -> Html x)
-> (SimulatorFlight -> b -> Html x)
-> (Exam -> c -> Html x)
-> (Briefing -> d -> Html x)
-> Html ()
-> Logbook a b c d
-> Html ()
htmlLogbook AircraftFlight -> a -> Html x
aircraftFlightMeta' SimulatorFlight -> b -> Html x
simulatorFlightMeta' Exam -> c -> Html x
examMeta' Briefing -> d -> Html x
briefingMeta' Html ()
reports' Logbook a b c d
b
htmlLogbookHeader ::
Logbook a b c d
-> Html ()
Logbook a b c d
_ =
do [Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
id_ Text
"header", Text -> Attribute
class_ Text
"header"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
Html () -> Html ()
forall arg result. Term arg result => arg -> result
h1_ Html ()
"Pilot Personal Log Book"
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
div_ [Text -> Attribute
id_ Text
"subheader", Text -> Attribute
class_ Text
"subheader"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
Html () -> Html ()
forall arg result. Term arg result => arg -> result
h2_ (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
do Html ()
"Civil Aviation Safety Regulation 1998 (61.345)"
Html ()
" "
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
class_ Text
"austlii"] (Html () -> Html ()) -> Html () -> Html ()
forall a b. (a -> b) -> a -> b
$
[Attribute] -> Html () -> Html ()
forall arg result. Term arg result => arg -> result
a_ [Text -> Attribute
href_ Text
"http://www.austlii.edu.au/au/legis/cth/consol_reg/casr1998333/s61.345.html"] Html ()
"austlii.edu.au"