casr-logbook 0.0.12 → 0.1.0
raw patch · 47 files changed
+795/−1826 lines, 47 filesdep +digitdep +lensdep +timePVP ok
version bump matches the API change (PVP)
Dependencies added: digit, lens, time
API changes (from Hackage documentation)
- Data.Aviation.Casr.Logbook.ARN: ARN :: String -> ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.String.IsString Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: newtype ARN
- Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Aircraft.Aircraft
- Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Aircraft.Aircraft
- Data.Aviation.Casr.Logbook.DOB: DOB :: String -> DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.String.IsString Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Show.Show Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: newtype DOB
- Data.Aviation.Casr.Logbook.Date: Date :: String -> Date
- Data.Aviation.Casr.Logbook.Date: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance Data.String.IsString Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: newtype Date
- Data.Aviation.Casr.Logbook.DayNight: Day :: DayNight
- Data.Aviation.Casr.Logbook.DayNight: Night :: DayNight
- Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.DayNight.DayNight
- Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.DayNight.DayNight
- Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Engine.Engine
- Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Engine.Engine
- Data.Aviation.Casr.Logbook.Entries: flightEntries :: Entries -> [FlightEntry]
- Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entry: EntryExam :: ExamEntry -> Entry
- Data.Aviation.Casr.Logbook.Entry: EntryFlight :: FlightEntry -> Entry
- Data.Aviation.Casr.Logbook.Entry: exam :: Date -> String -> String -> String -> ARN -> Int -> Int -> Entry
- Data.Aviation.Casr.Logbook.Entry: flight :: Sequence -> Date -> Aircraft -> Hours -> PoB -> FlightPath -> DayNight -> PiC -> TrackLogs -> Visualisations -> Images -> Videos -> Entry
- Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.ExamEntry: ExamEntry :: Date -> String -> String -> String -> ARN -> Int -> Int -> ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: data ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.FlightEntry: FlightEntry :: Sequence -> Date -> Aircraft -> Hours -> PoB -> FlightPath -> DayNight -> PiC -> TrackLogs -> Visualisations -> Images -> Videos -> FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: data FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightPath: directPath :: String -> String -> FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.FlightPath.FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.FlightPath.FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: pathlist :: FlightPath -> [String]
- Data.Aviation.Casr.Logbook.Hours: Hours :: Int -> Int -> Hours
- Data.Aviation.Casr.Logbook.Hours: addHours :: Hours -> Hours -> Hours
- Data.Aviation.Casr.Logbook.Hours: data Hours
- Data.Aviation.Casr.Logbook.Hours: fractionalHours :: Fractional a => Hours -> a
- Data.Aviation.Casr.Logbook.Hours: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: zeroHours :: Hours
- Data.Aviation.Casr.Logbook.Image: Image :: String -> (Maybe String) -> ImageType -> Image
- Data.Aviation.Casr.Logbook.Image: data Image
- Data.Aviation.Casr.Logbook.Image: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.ImageType: Jpg :: ImageType
- Data.Aviation.Casr.Logbook.ImageType: Png :: ImageType
- Data.Aviation.Casr.Logbook.ImageType: data ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.Images: Images :: [Image] -> Images
- Data.Aviation.Casr.Logbook.Images: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: newtype Images
- Data.Aviation.Casr.Logbook.Log: Log :: Name -> DOB -> ARN -> Entries -> Log
- Data.Aviation.Casr.Logbook.Log: data Log
- Data.Aviation.Casr.Logbook.Log: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Name: Name :: String -> Name
- Data.Aviation.Casr.Logbook.Name: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance Data.String.IsString Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: newtype Name
- Data.Aviation.Casr.Logbook.PiC: PiC :: String -> PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.String.IsString Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Show.Show Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: newtype PiC
- Data.Aviation.Casr.Logbook.PoB: PoB :: Int -> PoB
- Data.Aviation.Casr.Logbook.PoB: data PoB
- Data.Aviation.Casr.Logbook.PoB: dual :: PoB
- Data.Aviation.Casr.Logbook.PoB: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Show.Show Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: solo :: PoB
- Data.Aviation.Casr.Logbook.Printer.Html: class Html s
- Data.Aviation.Casr.Logbook.Printer.Html: html :: Html s => s -> String
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html GHC.Types.Char
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html GHC.Types.Int
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html a => Data.Aviation.Casr.Logbook.Printer.Html.Html [a]
- Data.Aviation.Casr.Logbook.Printer.Html: printHtml :: Html s => s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Html: writeHtmlFile :: Html s => FilePath -> s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Markdown: class Markdown s
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown GHC.Types.Char
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown GHC.Types.Int
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown a => Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown [a]
- Data.Aviation.Casr.Logbook.Printer.Markdown: markdown :: Markdown s => s -> String
- Data.Aviation.Casr.Logbook.Printer.Markdown: printMarkdown :: Markdown s => s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Markdown: writeMarkdownFile :: Markdown s => FilePath -> s -> IO ()
- Data.Aviation.Casr.Logbook.Sequence: Sequence :: String -> Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.String.IsString Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: newtype Sequence
- Data.Aviation.Casr.Logbook.Totals: Totals :: Hours -> Hours -> Hours -> (Map String Hours) -> (Map String Hours) -> Hours -> Hours -> Hours -> Hours -> Hours -> (Map String Hours) -> Totals
- Data.Aviation.Casr.Logbook.Totals: data Totals
- Data.Aviation.Casr.Logbook.Totals: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: singleTotals :: FlightEntry -> Totals
- Data.Aviation.Casr.Logbook.Totals: totals :: Entries -> Totals
- Data.Aviation.Casr.Logbook.Totals: updateTotals :: FlightEntry -> Totals -> Totals
- Data.Aviation.Casr.Logbook.Totals: zeroTotals :: Totals
- Data.Aviation.Casr.Logbook.TrackLog: TrackLog :: String -> (Maybe String) -> TrackLogType -> TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: data TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLogType: Gpx :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: ImageLog :: ImageType -> TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: Kml :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: Kmz :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: data TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogs: TrackLogs :: [TrackLog] -> TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: newtype TrackLogs
- Data.Aviation.Casr.Logbook.Video: Video :: String -> (Maybe String) -> VideoType -> Video
- Data.Aviation.Casr.Logbook.Video: data Video
- Data.Aviation.Casr.Logbook.Video: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.VideoType: Bambuser :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: Vimeo :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: YouTube :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: data VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.Videos: Videos :: [Video] -> Videos
- Data.Aviation.Casr.Logbook.Videos: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: newtype Videos
- Data.Aviation.Casr.Logbook.Visualisation: Visualisation :: String -> (Maybe String) -> VisualisationType -> Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: data Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.VisualisationType: Doarama :: String -> VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: data VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.Visualisations: Visualisations :: [Visualisation] -> Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: newtype Visualisations
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftEngine] :: Aircraft -> Engine
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftRegistration] :: Aircraft -> String
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftType] :: Aircraft -> String
+ Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Aircraft.HasAircraft Data.Aviation.Casr.Logbook.Aircraft.Aircraft
+ Data.Aviation.Casr.Logbook.Aircraft: multiaircraft :: String -> String -> Aircraft
+ Data.Aviation.Casr.Logbook.Aircraft: singleaircraft :: String -> String -> Aircraft
+ Data.Aviation.Casr.Logbook.AircraftFlight: AircraftFlight :: String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_aircraftflightname] :: AircraftFlight -> String
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_command] :: AircraftFlight -> Command
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_daynight] :: AircraftFlight -> DayNight
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightaircraft] :: AircraftFlight -> Aircraft
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightothercrew] :: AircraftFlight -> [Aviator]
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightpath] :: AircraftFlight -> FlightPath
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_instrumentflightTime] :: AircraftFlight -> TimeAmount
+ Data.Aviation.Casr.Logbook.AircraftFlight: commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: data AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance Data.Aviation.Casr.Logbook.AircraftFlight.HasAircraftFlight Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Show.Show Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.Aviator: Aviator :: String -> String -> [Digit] -> Maybe Day -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: [_arn] :: Aviator -> [Digit]
+ Data.Aviation.Casr.Logbook.Aviator: [_dob] :: Aviator -> Maybe Day
+ Data.Aviation.Casr.Logbook.Aviator: [_firstname] :: Aviator -> String
+ Data.Aviation.Casr.Logbook.Aviator: [_ratings] :: Aviator -> [Rating]
+ Data.Aviation.Casr.Logbook.Aviator: [_surname] :: Aviator -> String
+ Data.Aviation.Casr.Logbook.Aviator: aviatorwithname :: String -> String -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: data Aviator
+ Data.Aviation.Casr.Logbook.Aviator: dobaviator :: String -> String -> [Digit] -> Day -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance Data.Aviation.Casr.Logbook.Aviator.HasAviator Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: nodobaviator :: String -> String -> [Digit] -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Briefing: Briefing :: String -> Location -> Time -> Aviator -> TimeAmount -> Briefing
+ Data.Aviation.Casr.Logbook.Briefing: [_briefer] :: Briefing -> Aviator
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingLocation] :: Briefing -> Location
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingName] :: Briefing -> String
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingTimeAmount] :: Briefing -> TimeAmount
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingTime] :: Briefing -> Time
+ Data.Aviation.Casr.Logbook.Briefing: data Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance Data.Aviation.Casr.Logbook.Briefing.HasBriefing Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Command: Dual :: Aviator -> Command
+ Data.Aviation.Casr.Logbook.Command: ICUS :: Aviator -> Command
+ Data.Aviation.Casr.Logbook.Command: InCommand :: Command
+ Data.Aviation.Casr.Logbook.Command: data Command
+ Data.Aviation.Casr.Logbook.Command: instance Data.Aviation.Casr.Logbook.Command.AsCommand Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.DayNight: [_dayDayNight] :: DayNight -> TimeAmount
+ Data.Aviation.Casr.Logbook.DayNight: [_nightDayNight] :: DayNight -> TimeAmount
+ Data.Aviation.Casr.Logbook.DayNight: day :: Int -> Digit -> DayNight
+ Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.DayNight.HasDayNight Data.Aviation.Casr.Logbook.DayNight.DayNight
+ Data.Aviation.Casr.Logbook.DayNight: night :: Int -> Digit -> DayNight
+ Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Engine.AsEngine Data.Aviation.Casr.Logbook.Engine.Engine
+ Data.Aviation.Casr.Logbook.Entries: emptyentries :: Entries ae se ee be
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Classes.Eq ae, GHC.Classes.Eq se, GHC.Classes.Eq ee, GHC.Classes.Eq be) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Classes.Ord ae, GHC.Classes.Ord se, GHC.Classes.Ord ee, GHC.Classes.Ord be) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Show.Show ae, GHC.Show.Show se, GHC.Show.Show ee, GHC.Show.Show be) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance Control.Lens.Wrapped.Wrapped (Data.Aviation.Casr.Logbook.Entries.Entries ae0 se0 ee0 be0)
+ Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Entries.Entries ae0 se0 ee0 be0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Aviation.Casr.Logbook.Entries.Entries ae1 se1 ee1 be1) t0
+ Data.Aviation.Casr.Logbook.Entries: singleentry :: Entry ae se ee be -> Entries ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: AircraftFlightEntry :: AircraftFlight -> ae -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: BriefingEntry :: Briefing -> be -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: ExamEntry :: Exam -> ee -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: SimulatorFlightEntry :: SimulatorFlight -> se -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Classes.Eq be, GHC.Classes.Eq ee, GHC.Classes.Eq se, GHC.Classes.Eq ae) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Classes.Ord be, GHC.Classes.Ord ee, GHC.Classes.Ord se, GHC.Classes.Ord ae) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Show.Show be, GHC.Show.Show ee, GHC.Show.Show se, GHC.Show.Show ae) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Entry.AsEntry (Data.Aviation.Casr.Logbook.Entry.Entry ae0 se0 ee0 be0) ae0 se0 ee0 be0
+ Data.Aviation.Casr.Logbook.Exam: Exam :: String -> Location -> Time -> Aviator -> Int -> Int -> Exam
+ Data.Aviation.Casr.Logbook.Exam: [_examDelegate] :: Exam -> Aviator
+ Data.Aviation.Casr.Logbook.Exam: [_examLocation] :: Exam -> Location
+ Data.Aviation.Casr.Logbook.Exam: [_examName] :: Exam -> String
+ Data.Aviation.Casr.Logbook.Exam: [_examResultMaximum] :: Exam -> Int
+ Data.Aviation.Casr.Logbook.Exam: [_examResult] :: Exam -> Int
+ Data.Aviation.Casr.Logbook.Exam: [_examTime] :: Exam -> Time
+ Data.Aviation.Casr.Logbook.Exam: data Exam
+ Data.Aviation.Casr.Logbook.Exam: dayonlyexam :: String -> Location -> Day -> Aviator -> Int -> Int -> Exam
+ Data.Aviation.Casr.Logbook.Exam: instance Data.Aviation.Casr.Logbook.Exam.HasExam Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightEnd] :: FlightPath -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightIntermediate] :: FlightPath -> [FlightPoint]
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightStart] :: FlightPath -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPath: directcircuit :: FlightPoint -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: directflightpath :: FlightPoint -> FlightPoint -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.FlightPath.HasFlightPath Data.Aviation.Casr.Logbook.FlightPath.FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: pointsatdate :: String -> [String] -> String -> Day -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPoint: FlightPoint :: String -> Maybe String -> Time -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: [_landingTime] :: FlightPoint -> Time
+ Data.Aviation.Casr.Logbook.FlightPoint: [_point] :: FlightPoint -> String
+ Data.Aviation.Casr.Logbook.FlightPoint: [_runway] :: FlightPoint -> Maybe String
+ Data.Aviation.Casr.Logbook.FlightPoint: data FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance Data.Aviation.Casr.Logbook.FlightPoint.HasFlightPoint Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Show.Show Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: pointatdate :: String -> Day -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: runwayatdate :: String -> String -> Day -> FlightPoint
+ Data.Aviation.Casr.Logbook.Location: Location :: String -> Double -> Double -> Location
+ Data.Aviation.Casr.Logbook.Location: [_locationlatitude] :: Location -> Double
+ Data.Aviation.Casr.Logbook.Location: [_locationlongitude] :: Location -> Double
+ Data.Aviation.Casr.Logbook.Location: [_locationname] :: Location -> String
+ Data.Aviation.Casr.Logbook.Location: data Location
+ Data.Aviation.Casr.Logbook.Location: instance Data.Aviation.Casr.Logbook.Location.HasLocation Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Logbook: Logbook :: Aviator -> (Entries ae se ee be) -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: [_logbookaviator] :: Logbook ae se ee be -> Aviator
+ Data.Aviation.Casr.Logbook.Logbook: [_logbookentries] :: Logbook ae se ee be -> (Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: aviatorlogbook :: Aviator -> [Entry ae se ee be] -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: data Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: emptylogbook :: Aviator -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Classes.Eq be, GHC.Classes.Eq ee, GHC.Classes.Eq se, GHC.Classes.Eq ae) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Classes.Ord be, GHC.Classes.Ord ee, GHC.Classes.Ord se, GHC.Classes.Ord ae) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Show.Show be, GHC.Show.Show ee, GHC.Show.Show se, GHC.Show.Show ae) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance Data.Aviation.Casr.Logbook.Logbook.HasLogbook (Data.Aviation.Casr.Logbook.Logbook.Logbook ae0 se0 ee0 be0) ae0 se0 ee0 be0
+ Data.Aviation.Casr.Logbook.Logbook: singleentrylogbook :: Aviator -> Entry ae se ee be -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Rating: Rating :: String -> Maybe Day -> Rating
+ Data.Aviation.Casr.Logbook.Rating: [_ratingAchieved] :: Rating -> Maybe Day
+ Data.Aviation.Casr.Logbook.Rating: [_ratingName] :: Rating -> String
+ Data.Aviation.Casr.Logbook.Rating: data Rating
+ Data.Aviation.Casr.Logbook.Rating: dayrating :: String -> Day -> Rating
+ Data.Aviation.Casr.Logbook.Rating: instance Data.Aviation.Casr.Logbook.Rating.HasRating Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: nodayrating :: String -> Rating
+ Data.Aviation.Casr.Logbook.SimulatorFlight: SimulatorFlight :: String -> Time -> String -> [Aviator] -> TimeAmount -> SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_instrumentsimulatorTimeAmount] :: SimulatorFlight -> TimeAmount
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorflightname] :: SimulatorFlight -> String
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorflighttime] :: SimulatorFlight -> Time
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorothercrew] :: SimulatorFlight -> [Aviator]
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatortype] :: SimulatorFlight -> String
+ Data.Aviation.Casr.Logbook.SimulatorFlight: data SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: dayonlysimulator :: String -> Day -> String -> [Aviator] -> TimeAmount -> SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance Data.Aviation.Casr.Logbook.SimulatorFlight.HasSimulatorFlight Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Show.Show Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.Time: Time :: Day -> Maybe TimeOfDay -> Time
+ Data.Aviation.Casr.Logbook.Time: [_day] :: Time -> Day
+ Data.Aviation.Casr.Logbook.Time: [_timeofday] :: Time -> Maybe TimeOfDay
+ Data.Aviation.Casr.Logbook.Time: data Time
+ Data.Aviation.Casr.Logbook.Time: dayandtime :: Day -> TimeOfDay -> Time
+ Data.Aviation.Casr.Logbook.Time: dayonly :: Day -> Time
+ Data.Aviation.Casr.Logbook.Time: instance Data.Aviation.Casr.Logbook.Time.HasTime Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.TimeAmount: TimeAmount :: Int -> Digit -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: [_hours] :: TimeAmount -> Int
+ Data.Aviation.Casr.Logbook.TimeAmount: [_tenthofhour] :: TimeAmount -> Digit
+ Data.Aviation.Casr.Logbook.TimeAmount: addtimeamount :: TimeAmount -> TimeAmount -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: data TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance Data.Aviation.Casr.Logbook.TimeAmount.HasTimeAmount Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: parttimeamount :: Digit -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: zerotimeamount :: TimeAmount
- Data.Aviation.Casr.Logbook.DayNight: DayNight :: DayNight
+ Data.Aviation.Casr.Logbook.DayNight: DayNight :: TimeAmount -> TimeAmount -> DayNight
- Data.Aviation.Casr.Logbook.Entries: Entries :: [Entry] -> Entries
+ Data.Aviation.Casr.Logbook.Entries: Entries :: [Entry ae se ee be] -> Entries ae se ee be
- Data.Aviation.Casr.Logbook.Entries: newtype Entries
+ Data.Aviation.Casr.Logbook.Entries: newtype Entries ae se ee be
- Data.Aviation.Casr.Logbook.Entry: data Entry
+ Data.Aviation.Casr.Logbook.Entry: data Entry ae se ee be
- Data.Aviation.Casr.Logbook.FlightPath: FlightPath :: String -> [String] -> String -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: FlightPath :: FlightPoint -> [FlightPoint] -> FlightPoint -> FlightPath
Files
- casr-logbook.cabal +22/−30
- changelog +4/−0
- src/Data/Aviation/Casr/Logbook.hs +15/−28
- src/Data/Aviation/Casr/Logbook/ARN.hs +0/−24
- src/Data/Aviation/Casr/Logbook/Aircraft.hs +37/−62
- src/Data/Aviation/Casr/Logbook/AircraftFlight.hs +136/−0
- src/Data/Aviation/Casr/Logbook/Aviator.hs +69/−0
- src/Data/Aviation/Casr/Logbook/Briefing.hs +27/−0
- src/Data/Aviation/Casr/Logbook/Command.hs +20/−0
- src/Data/Aviation/Casr/Logbook/DOB.hs +0/−24
- src/Data/Aviation/Casr/Logbook/Date.hs +0/−33
- src/Data/Aviation/Casr/Logbook/DayNight.hs +33/−35
- src/Data/Aviation/Casr/Logbook/Engine.hs +9/−14
- src/Data/Aviation/Casr/Logbook/Entries.hs +27/−79
- src/Data/Aviation/Casr/Logbook/Entry.hs +21/−63
- src/Data/Aviation/Casr/Logbook/Exam.hs +44/−0
- src/Data/Aviation/Casr/Logbook/ExamEntry.hs +0/−85
- src/Data/Aviation/Casr/Logbook/FlightEntry.hs +0/−114
- src/Data/Aviation/Casr/Logbook/FlightPath.hs +42/−44
- src/Data/Aviation/Casr/Logbook/FlightPoint.hs +47/−0
- src/Data/Aviation/Casr/Logbook/Hours.hs +0/−61
- src/Data/Aviation/Casr/Logbook/Image.hs +0/−45
- src/Data/Aviation/Casr/Logbook/ImageType.hs +0/−23
- src/Data/Aviation/Casr/Logbook/Images.hs +0/−34
- src/Data/Aviation/Casr/Logbook/Location.hs +21/−0
- src/Data/Aviation/Casr/Logbook/Log.hs +0/−86
- src/Data/Aviation/Casr/Logbook/Logbook.hs +53/−0
- src/Data/Aviation/Casr/Logbook/Name.hs +0/−24
- src/Data/Aviation/Casr/Logbook/PiC.hs +0/−34
- src/Data/Aviation/Casr/Logbook/PoB.hs +0/−52
- src/Data/Aviation/Casr/Logbook/Printer/Html.hs +0/−40
- src/Data/Aviation/Casr/Logbook/Printer/Markdown.hs +0/−38
- src/Data/Aviation/Casr/Logbook/Rating.hs +41/−0
- src/Data/Aviation/Casr/Logbook/Sequence.hs +0/−33
- src/Data/Aviation/Casr/Logbook/SimulatorFlight.hs +41/−0
- src/Data/Aviation/Casr/Logbook/Time.hs +36/−0
- src/Data/Aviation/Casr/Logbook/TimeAmount.hs +50/−0
- src/Data/Aviation/Casr/Logbook/Totals.hs +0/−232
- src/Data/Aviation/Casr/Logbook/TrackLog.hs +0/−105
- src/Data/Aviation/Casr/Logbook/TrackLogType.hs +0/−34
- src/Data/Aviation/Casr/Logbook/TrackLogs.hs +0/−48
- src/Data/Aviation/Casr/Logbook/Video.hs +0/−103
- src/Data/Aviation/Casr/Logbook/VideoType.hs +0/−28
- src/Data/Aviation/Casr/Logbook/Videos.hs +0/−48
- src/Data/Aviation/Casr/Logbook/Visualisation.hs +0/−56
- src/Data/Aviation/Casr/Logbook/VisualisationType.hs +0/−19
- src/Data/Aviation/Casr/Logbook/Visualisations.hs +0/−48
casr-logbook.cabal view
@@ -1,5 +1,5 @@ name: casr-logbook-version: 0.0.12+version: 0.1.0 license: OtherLicense license-file: LICENSE author: Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>@@ -34,47 +34,39 @@ build-depends: base < 5 && >= 4.8 , containers < 0.6 && >= 0.4+ , digit < 3 && >= 0.2.8+ , time < 2 && >= 1.5+ , lens < 5 && >= 4 ghc-options: -Wall + default-extensions:+ NoImplicitPrelude+ hs-source-dirs: src exposed-modules: Data.Aviation.Casr.Logbook+ Data.Aviation.Casr.Logbook.Rating+ Data.Aviation.Casr.Logbook.Aviator+ Data.Aviation.Casr.Logbook.Engine Data.Aviation.Casr.Logbook.Aircraft- Data.Aviation.Casr.Logbook.ARN- Data.Aviation.Casr.Logbook.Date+ Data.Aviation.Casr.Logbook.TimeAmount Data.Aviation.Casr.Logbook.DayNight- Data.Aviation.Casr.Logbook.DOB- Data.Aviation.Casr.Logbook.Engine- Data.Aviation.Casr.Logbook.Entries- Data.Aviation.Casr.Logbook.Entry- Data.Aviation.Casr.Logbook.ExamEntry- Data.Aviation.Casr.Logbook.FlightEntry+ Data.Aviation.Casr.Logbook.Location+ Data.Aviation.Casr.Logbook.Command+ Data.Aviation.Casr.Logbook.Time+ Data.Aviation.Casr.Logbook.FlightPoint Data.Aviation.Casr.Logbook.FlightPath- Data.Aviation.Casr.Logbook.Hours- Data.Aviation.Casr.Logbook.Image- Data.Aviation.Casr.Logbook.Images- Data.Aviation.Casr.Logbook.ImageType- Data.Aviation.Casr.Logbook.Log- Data.Aviation.Casr.Logbook.Printer.Markdown- Data.Aviation.Casr.Logbook.Printer.Html- Data.Aviation.Casr.Logbook.Name- Data.Aviation.Casr.Logbook.PiC- Data.Aviation.Casr.Logbook.PoB- Data.Aviation.Casr.Logbook.Sequence- Data.Aviation.Casr.Logbook.Totals- Data.Aviation.Casr.Logbook.TrackLog- Data.Aviation.Casr.Logbook.TrackLogs- Data.Aviation.Casr.Logbook.TrackLogType- Data.Aviation.Casr.Logbook.Video- Data.Aviation.Casr.Logbook.Videos- Data.Aviation.Casr.Logbook.VideoType- Data.Aviation.Casr.Logbook.Visualisation- Data.Aviation.Casr.Logbook.Visualisations- Data.Aviation.Casr.Logbook.VisualisationType+ Data.Aviation.Casr.Logbook.AircraftFlight+ Data.Aviation.Casr.Logbook.SimulatorFlight+ Data.Aviation.Casr.Logbook.Exam+ Data.Aviation.Casr.Logbook.Briefing+ Data.Aviation.Casr.Logbook.Entry+ Data.Aviation.Casr.Logbook.Entries+ Data.Aviation.Casr.Logbook.Logbook test-suite doctests type:
changelog view
@@ -1,3 +1,7 @@+0.1.0++* More structure to a logbook.+ 0.0.12 * Fix exam output for HTML.
src/Data/Aviation/Casr/Logbook.hs view
@@ -2,34 +2,21 @@ module L ) where +import Data.Aviation.Casr.Logbook.Logbook as L+import Data.Aviation.Casr.Logbook.Rating as L+import Data.Aviation.Casr.Logbook.Aviator as L+import Data.Aviation.Casr.Logbook.Engine as L import Data.Aviation.Casr.Logbook.Aircraft as L-import Data.Aviation.Casr.Logbook.ARN as L-import Data.Aviation.Casr.Logbook.Date as L+import Data.Aviation.Casr.Logbook.TimeAmount as L import Data.Aviation.Casr.Logbook.DayNight as L-import Data.Aviation.Casr.Logbook.DOB as L-import Data.Aviation.Casr.Logbook.Engine as L-import Data.Aviation.Casr.Logbook.Entries as L-import Data.Aviation.Casr.Logbook.Entry as L-import Data.Aviation.Casr.Logbook.ExamEntry as L+import Data.Aviation.Casr.Logbook.Location as L+import Data.Aviation.Casr.Logbook.Command as L+import Data.Aviation.Casr.Logbook.Time as L+import Data.Aviation.Casr.Logbook.FlightPoint as L import Data.Aviation.Casr.Logbook.FlightPath as L-import Data.Aviation.Casr.Logbook.Hours as L-import Data.Aviation.Casr.Logbook.Image as L-import Data.Aviation.Casr.Logbook.Images as L-import Data.Aviation.Casr.Logbook.ImageType as L-import Data.Aviation.Casr.Logbook.Log as L-import Data.Aviation.Casr.Logbook.Printer.Html as L-import Data.Aviation.Casr.Logbook.Printer.Markdown as L-import Data.Aviation.Casr.Logbook.Name as L-import Data.Aviation.Casr.Logbook.PiC as L-import Data.Aviation.Casr.Logbook.PoB as L-import Data.Aviation.Casr.Logbook.Sequence as L-import Data.Aviation.Casr.Logbook.Totals as L-import Data.Aviation.Casr.Logbook.TrackLog as L-import Data.Aviation.Casr.Logbook.TrackLogs as L-import Data.Aviation.Casr.Logbook.TrackLogType as L-import Data.Aviation.Casr.Logbook.Video as L-import Data.Aviation.Casr.Logbook.Videos as L-import Data.Aviation.Casr.Logbook.VideoType as L-import Data.Aviation.Casr.Logbook.Visualisation as L-import Data.Aviation.Casr.Logbook.Visualisations as L-import Data.Aviation.Casr.Logbook.VisualisationType as L+import Data.Aviation.Casr.Logbook.AircraftFlight as L+import Data.Aviation.Casr.Logbook.SimulatorFlight as L+import Data.Aviation.Casr.Logbook.Exam as L+import Data.Aviation.Casr.Logbook.Briefing as L+import Data.Aviation.Casr.Logbook.Entry as L+import Data.Aviation.Casr.Logbook.Entries as L
− src/Data/Aviation/Casr/Logbook/ARN.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.ARN (- ARN(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype ARN =- ARN- String- deriving (Eq, Ord, Show)--instance IsString ARN where- fromString =- ARN- -instance Markdown ARN where- markdown (ARN s) =- "* Aviation Reference Number: **`" ++ markdown s ++ "`**\n"--instance Html ARN where- html (ARN s) =- "<span class=\"heading arnheading\">ARN: </span><span class=\"arninfo\">" ++ html s ++ "</span>"
src/Data/Aviation/Casr/Logbook/Aircraft.hs view
@@ -1,69 +1,44 @@-module Data.Aviation.Casr.Logbook.Aircraft (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Aircraft( Aircraft(..)+, singleaircraft+, multiaircraft ) where -import Data.Aviation.Casr.Logbook.Engine-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Engine(Engine(Single, Multi))+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show) data Aircraft =- Aircraft- String -- type- String -- registration- Engine- deriving (Eq, Ord, Show)+ Aircraft {+ _aircraftType :: String+ , _aircraftRegistration :: String+ , _aircraftEngine :: Engine+ } deriving (Eq, Ord, Show) -instance Markdown Aircraft where- markdown (Aircraft t r e) =- concat- [- "* Aircraft"- , "\n * Type: **"- , markdown t- , "**\n * Registration: **`"- , markdown r- , "`**\n * Engine: **`"- , markdown e- , "`**\n"- ]+makeClassy ''Aircraft -instance Html Aircraft where- html (Aircraft t r e) =- concat- [- "<span class=\"heading aircraftheading\">"- , "Aircraft"- , "</span>"- , ": "- , "<div class=\"info aircraftinfo\">"- , "<ul>"- , "<li>"- , "<span class=\"heading aircrafttypeheading\">"- , "Type"- , "</span>"- , ": "- , "<span class=\"info aircrafttypeinfo\">"- , html t- , "</span>"- , "</li>"- , "<li>"- , "<span class=\"heading aircraftregistrationheading\">"- , "Registration"- , "</span>"- , ": "- , "<span class=\"info aircraftregistrationinfo\">"- , html r- , "</span>"- , "</li>"- , "<li>"- , "<span class=\"heading aircraftengineheading\">"- , "Engine"- , "</span>"- , ": "- , "<span class=\"info aircraftengineinfo\">"- , html e- , "</span>"- , "</li>"- , "</ul>"- , "</div>"- ]+singleaircraft ::+ String+ -> String+ -> Aircraft+singleaircraft t r =+ Aircraft+ t+ r+ Single++multiaircraft ::+ String+ -> String+ -> Aircraft+multiaircraft t r =+ Aircraft+ t+ r+ Multi
+ src/Data/Aviation/Casr/Logbook/AircraftFlight.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.AircraftFlight(+ AircraftFlight(..)+, icusonlyflight+, noif_icusonlyflight+, dualonlyflight+, noif_dualonlyflight+, commandonlyflight+, noif_commandonlyflight+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aircraft(Aircraft)+import Data.Aviation.Casr.Logbook.Command(Command(ICUS, Dual, InCommand))+import Data.Aviation.Casr.Logbook.DayNight(DayNight)+import Data.Aviation.Casr.Logbook.FlightPath(FlightPath)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount, zerotimeamount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show)++data AircraftFlight =+ AircraftFlight {+ _aircraftflightname :: String+ , _flightaircraft :: Aircraft+ , _command :: Command+ , _daynight :: DayNight+ , _flightpath :: FlightPath+ , _flightothercrew :: [Aviator]+ , _instrumentflightTime :: TimeAmount+ } deriving (Eq, Ord, Show)++makeClassy ''AircraftFlight++icusonlyflight ::+ String+ -> Aircraft+ -> Aviator+ -> DayNight+ -> FlightPath+ -> TimeAmount+ -> AircraftFlight+icusonlyflight n a v t p i =+ AircraftFlight+ n+ a+ (ICUS v)+ t+ p+ []+ i++noif_icusonlyflight ::+ String+ -> Aircraft+ -> Aviator+ -> DayNight+ -> FlightPath+ -> AircraftFlight+noif_icusonlyflight n a v t p =+ icusonlyflight+ n+ a+ v+ t+ p+ zerotimeamount++dualonlyflight ::+ String+ -> Aircraft+ -> Aviator+ -> DayNight+ -> FlightPath+ -> TimeAmount+ -> AircraftFlight+dualonlyflight n a v t p i =+ AircraftFlight+ n+ a+ (Dual v)+ t+ p+ []+ i++noif_dualonlyflight ::+ String+ -> Aircraft+ -> Aviator+ -> DayNight+ -> FlightPath+ -> AircraftFlight+noif_dualonlyflight n a v t p =+ dualonlyflight+ n+ a+ v+ t+ p+ zerotimeamount++commandonlyflight ::+ String+ -> Aircraft+ -> DayNight+ -> FlightPath+ -> TimeAmount+ -> AircraftFlight+commandonlyflight n a t p i =+ AircraftFlight+ n+ a+ InCommand+ t+ p+ []+ i++noif_commandonlyflight ::+ String+ -> Aircraft+ -> DayNight+ -> FlightPath+ -> AircraftFlight+noif_commandonlyflight n a t p =+ commandonlyflight+ n+ a+ t+ p+ zerotimeamount
+ src/Data/Aviation/Casr/Logbook/Aviator.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Aviator(+ Aviator(..)+, aviatorwithname+, nodobaviator+, dobaviator+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Rating(Rating)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.Digit(Digit)+import Data.Maybe(Maybe(Nothing, Just))+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Aviator =+ Aviator {+ _surname :: String+ , _firstname :: String+ , _arn :: [Digit]+ , _dob :: Maybe Day+ , _ratings :: [Rating]+ } deriving (Eq, Ord, Show)++makeClassy ''Aviator++aviatorwithname ::+ String+ -> String+ -> Aviator+aviatorwithname s f =+ Aviator+ s+ f+ []+ Nothing+ []++nodobaviator ::+ String+ -> String+ -> [Digit]+ -> [Rating]+ -> Aviator+nodobaviator s f r =+ Aviator+ s + f+ r+ Nothing++dobaviator ::+ String+ -> String+ -> [Digit]+ -> Day+ -> [Rating]+ -> Aviator+dobaviator s f r b =+ Aviator+ s + f+ r+ (Just b)
+ src/Data/Aviation/Casr/Logbook/Briefing.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Briefing(+ Briefing(..)+) where+ +import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Location(Location)+import Data.Aviation.Casr.Logbook.Time(Time)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show)++data Briefing =+ Briefing {+ _briefingName :: String+ , _briefingLocation :: Location+ , _briefingTime :: Time+ , _briefer :: Aviator+ , _briefingTimeAmount :: TimeAmount+ } deriving (Eq, Ord, Show)++makeClassy ''Briefing
+ src/Data/Aviation/Casr/Logbook/Command.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Command(+ Command(..)+) where++import Control.Lens(makeClassyPrisms)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)++data Command =+ ICUS Aviator+ | Dual Aviator+ | InCommand+ deriving (Eq, Ord, Show)++makeClassyPrisms ''Command
− src/Data/Aviation/Casr/Logbook/DOB.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.DOB (- DOB(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype DOB =- DOB- String- deriving (Eq, Ord, Show)--instance IsString DOB where- fromString =- DOB--instance Markdown DOB where- markdown (DOB s) =- "* Date of Birth: **`" ++ markdown s ++ "`**\n"--instance Html DOB where- html (DOB s) =- "<span class=\"heading dobheading\">Date of Birth: </span><span class=\"dobinfo\">" ++ html s ++ "</span>"
− src/Data/Aviation/Casr/Logbook/Date.hs
@@ -1,33 +0,0 @@-module Data.Aviation.Casr.Logbook.Date (- Date(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String- -newtype Date =- Date- String- deriving (Eq, Ord, Show)--instance IsString Date where- fromString =- Date- -instance Markdown Date where- markdown (Date s) =- "* Date: **`" ++ s ++ "`**\n"--instance Html Date where- html (Date s) =- concat- [- "<span class=\"heading dateheading\">"- , "Date"- , "</span>"- , ": "- , "<span class=\"info dateinfo\">"- , html s- , "</span>"- ]
src/Data/Aviation/Casr/Logbook/DayNight.hs view
@@ -1,40 +1,38 @@-module Data.Aviation.Casr.Logbook.DayNight (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.DayNight( DayNight(..)+, day+, night ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount(TimeAmount), zerotimeamount)+import Data.Digit(Digit)+import Data.Eq(Eq)+import Data.Int(Int)+import Data.Ord(Ord)+import Prelude(Show) data DayNight =- Day- | Night- | DayNight- deriving (Eq, Ord, Show)- -instance Markdown DayNight where- markdown x =- concat- [- "* Day/Night: **"- , case x of- Day -> "Day"- Night -> "Night"- DayNight -> "Day & Night"- , "**\n"- ]- -instance Html DayNight where- html x =- concat- [- "<span class=\"heading daynightheading\">"- , "Day/Night"- , "</span>"- , ": "- , "<span class=\"info daynightinfo\">"- , case x of- Day -> "Day"- Night -> "Night"- DayNight -> "Day & Night"- , "</span>"- ]+ DayNight {+ _dayDayNight :: TimeAmount+ , _nightDayNight :: TimeAmount+ } deriving (Eq, Ord, Show)++makeClassy ''DayNight++day ::+ Int+ -> Digit+ -> DayNight+day h p =+ DayNight (TimeAmount h p) zerotimeamount++night ::+ Int+ -> Digit+ -> DayNight+night h p =+ DayNight zerotimeamount (TimeAmount h p)
src/Data/Aviation/Casr/Logbook/Engine.hs view
@@ -1,23 +1,18 @@-module Data.Aviation.Casr.Logbook.Engine (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Engine( Engine(..) ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassyPrisms)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show) data Engine = Single | Multi deriving (Eq, Ord, Show)- -instance Markdown Engine where- markdown Single =- "single"- markdown Multi =- "multi" -instance Html Engine where- html Single =- "single"- html Multi =- "multi"+makeClassyPrisms ''Engine
src/Data/Aviation/Casr/Logbook/Entries.hs view
@@ -1,87 +1,35 @@-module Data.Aviation.Casr.Logbook.Entries (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeFamilies #-}++module Data.Aviation.Casr.Logbook.Entries( Entries(..)-, flightEntries+, emptyentries+, singleentry ) where -import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.Entry-import Data.Aviation.Casr.Logbook.ExamEntry-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.List--newtype Entries =+import Control.Lens(makeWrapped)+import Data.Aviation.Casr.Logbook.Entry(Entry)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)+ +newtype Entries ae se ee be = Entries- [Entry]+ [Entry ae se ee be] deriving (Eq, Ord, Show) -instance Monoid Entries where- mempty =- Entries []- Entries e1 `mappend` Entries e2 =- Entries (e1 `mappend` e2)+makeWrapped ''Entries -instance Markdown Entries where- markdown (Entries g) =- intercalate "\n\n----\n\n" (fmap markdown g)+emptyentries ::+ Entries ae se ee be+emptyentries =+ Entries [] -instance Html Entries where- html (Entries g) =- (\(i, h) -> let nospace =- map (\c -> case c of- ' ' ->- '_'- _ ->- c)- divid =- case h of- EntryFlight (FlightEntry _ (Date d) (Aircraft _ reg _) _ _ _ _ _ _ _ _ _) ->- concat- [- nospace d- , "_"- , nospace reg- , "_"- , show (i :: Int)- ]- EntryExam (ExamEntry (Date d) n _ _ _ _ _) ->- concat- [- nospace d- , "_"- , nospace n- ]- divclass =- case h of- EntryFlight _ ->- "flightlogentry"- EntryExam _ ->- "examentry"- in concat- [- "<div id=\""- , divid- , "\" class=\""- , divclass- , "\">"- , "<div class=\"hreflink\">"- , "<a href=\"#"- , divid- , "\">"- , "§"- , "</a>"- , "</div>"- , html h- , "</div>"- , "<hr>"- ]- ) =<< zip [0..] g- -flightEntries ::- Entries- -> [FlightEntry]-flightEntries (Entries e) =- foldr (\x z -> case x of EntryFlight f -> f:z- EntryExam _ -> z) [] e+singleentry ::+ Entry ae se ee be+ -> Entries ae se ee be+singleentry e =+ Entries [e]
src/Data/Aviation/Casr/Logbook/Entry.hs view
@@ -1,69 +1,27 @@-module Data.Aviation.Casr.Logbook.Entry (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}++module Data.Aviation.Casr.Logbook.Entry( Entry(..)-, flight-, exam ) where -import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.ExamEntry-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.FlightPath-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.Images-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Sequence-import Data.Aviation.Casr.Logbook.TrackLogs-import Data.Aviation.Casr.Logbook.Videos-import Data.Aviation.Casr.Logbook.Visualisations+import Control.Lens(makeClassyPrisms)+import Data.Aviation.Casr.Logbook.AircraftFlight(AircraftFlight)+import Data.Aviation.Casr.Logbook.SimulatorFlight(SimulatorFlight)+import Data.Aviation.Casr.Logbook.Exam(Exam)+import Data.Aviation.Casr.Logbook.Briefing(Briefing)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show) -data Entry =- EntryExam ExamEntry- | EntryFlight FlightEntry+data Entry ae se ee be =+ AircraftFlightEntry AircraftFlight ae+ | SimulatorFlightEntry SimulatorFlight se+ | ExamEntry Exam ee+ | BriefingEntry Briefing be deriving (Eq, Ord, Show) -instance Markdown Entry where- markdown (EntryExam e) =- markdown e- markdown (EntryFlight f) =- markdown f--instance Html Entry where- html (EntryExam e) =- html e- html (EntryFlight f) =- html f--flight ::- Sequence- -> Date- -> Aircraft- -> Hours- -> PoB- -> FlightPath- -> DayNight- -> PiC- -> TrackLogs- -> Visualisations- -> Images- -> Videos- -> Entry-flight sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos =- EntryFlight (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos)--exam ::- Date- -> String- -> String- -> String- -> ARN- -> Int- -> Int- -> Entry-exam d n dn dr da r m =- EntryExam (ExamEntry d n dn dr da r m)+makeClassyPrisms ''Entry
+ src/Data/Aviation/Casr/Logbook/Exam.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Exam(+ Exam(..)+, dayonlyexam+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Aviation.Casr.Logbook.Location(Location)+import Data.Eq(Eq)+import Data.Int(Int)+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Exam =+ Exam {+ _examName :: String+ , _examLocation :: Location+ , _examTime :: Time+ , _examDelegate :: Aviator+ , _examResult :: Int+ , _examResultMaximum :: Int+ } deriving (Eq, Ord, Show) ++makeClassy ''Exam++dayonlyexam ::+ String+ -> Location+ -> Day+ -> Aviator+ -> Int+ -> Int+ -> Exam+dayonlyexam n l d =+ Exam+ n+ l+ (dayonly d)
− src/Data/Aviation/Casr/Logbook/ExamEntry.hs
@@ -1,85 +0,0 @@-module Data.Aviation.Casr.Logbook.ExamEntry (- ExamEntry(..)-) where--import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data ExamEntry =- ExamEntry- Date- String -- name- String -- delegate name- String -- delegate rating- ARN -- delegate ARN- Int -- result- Int -- maximum possible result- deriving (Eq, Ord, Show)--instance Markdown ExamEntry where- markdown (ExamEntry d n dn dr da r m) =- concat [- markdown d- , "* Exam: **"- , markdown n- , "**\n"- , "* Delegate Name: **"- , markdown dn- , " ("- , markdown dr- , ")**\n"- , markdown da- , "* Result: **`"- , markdown r- , "/"- , markdown m- , "`**"- ]--instance Html ExamEntry where- html (ExamEntry date n dn dr da r m) =- concat- [- "<div class=\"examlog\">"- , "<h3 class=\"exam\">"- , html n- , "</h3>"- , "</div>"- , "<ul>"- , "<li class=\"date\">"- , html date- , "</li>"- , concat- [- "<span class=\"heading delegateheading\">"- , "Delegate"- , "</span>"- , ": "- , "<span class=\"info delegateinfo\">"- , html dn- , " ("- , html dr- , ")"- , "</span>"- ]- , "</li>" - , "<li class=\"delegatearn\">"- , html da- , "<li class=\"examresult\">"- , concat- [- "<span class=\"heading resultheading\">"- , "Result"- , "</span>"- , ": "- , "<span class=\"info resultinfo\">"- , html r- , "/"- , html m- , "</span>"- ]- , "</li>"- , "</ul>"- ]
− src/Data/Aviation/Casr/Logbook/FlightEntry.hs
@@ -1,114 +0,0 @@-module Data.Aviation.Casr.Logbook.FlightEntry (- FlightEntry(..)-) where--import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.FlightPath-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.Images-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Sequence-import Data.Aviation.Casr.Logbook.TrackLogs-import Data.Aviation.Casr.Logbook.Videos-import Data.Aviation.Casr.Logbook.Visualisations--{---This data structure currently only handles Day VFR. More modifications are-likely to result in a complete flight log entry structure.---}-data FlightEntry =- FlightEntry- Sequence- Date - Aircraft- Hours- PoB- FlightPath- DayNight- PiC- TrackLogs- Visualisations- Images- Videos- deriving (Eq, Ord, Show)- -instance Markdown FlightEntry where- markdown (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos) =- concat- [- markdown date- , markdown sequ- , markdown aircraft- , markdown hours- , markdown pob- , markdown flightpath- , markdown daynight- , markdown pic- , markdown tracklogs- , markdown videos- , markdown visualisations- , markdown images- ]--instance Html FlightEntry where- html (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos) =- let onethen x c r = concat $- case r of- [] ->- []- _ ->- [- "<"- , x- , " class=\""- , c- , "\">"- , r - , "</"- , x- , ">"- ]- li = onethen "li"- div' = onethen "div" - in concat- [- "<div class=\"flightlogsequence\">"- , "<h3 class=\"sequence\">"- , html sequ- , "</h3>"- , "</div>"- , "<ul>"- , "<li class=\"date\">"- , html date- , "</li>"- , "<li class=\"aircraft\">"- , html aircraft- , "</li>"- , "<li class=\"hours\">"- , html hours- , "</li>"- , "<li class=\"pob\">"- , html pob- , "</li>"- , "<li class=\"flightpath\">"- , html flightpath- , "</li>"- , "<li class=\"daynight\">"- , html daynight- , "</li>"- , "<li class=\"pic\">"- , html pic- , "</li>"- , li "tracklogs" (html tracklogs)- , li "videos" (html videos) - , li "visualisations" (html visualisations) - , "</ul>"- , div' "images" (html images) - ]
src/Data/Aviation/Casr/Logbook/FlightPath.hs view
@@ -1,54 +1,52 @@-module Data.Aviation.Casr.Logbook.FlightPath (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.FlightPath( FlightPath(..)-, pathlist-, directPath+, directflightpath+, directcircuit+, pointsatdate ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.List+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.FlightPoint(FlightPoint, pointatdate)+import Data.Eq(Eq)+import Data.Functor((<$>))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show) data FlightPath =- FlightPath- String -- start- [String] -- touch-downs- String -- end- deriving (Eq, Ord, Show)+ FlightPath {+ _flightStart :: FlightPoint+ , _flightIntermediate :: [FlightPoint]+ , _flightEnd :: FlightPoint+ } deriving (Eq, Ord, Show) -directPath ::+makeClassy ''FlightPath++directflightpath ::+ FlightPoint+ -> FlightPoint+ -> FlightPath+directflightpath x y =+ FlightPath x [] y++directcircuit ::+ FlightPoint+ -> FlightPath+directcircuit x =+ directflightpath x x++pointsatdate :: String+ -> [String] -> String+ -> Day -> FlightPath-directPath fr to =- FlightPath- fr- []- to--pathlist ::+pointsatdate x i y d = FlightPath- -> [String]-pathlist (FlightPath s x e) =- s : (x ++ [e])--instance Markdown FlightPath where- markdown p =- concat- [- "* Flight path: **"- , intercalate " - " (map markdown (pathlist p))- , "**\n"- ]--instance Html FlightPath where- html p =- concat- [- "<span class=\"heading flightpathheading\">"- , "Flight path"- , "</span>"- , ": "- , "<span class=\"info flightpathinfo\">"- , intercalate " — " (map html (pathlist p))- , "</span>"- ]+ (pointatdate x d)+ ((\s -> pointatdate s d) <$> i)+ (pointatdate y d)
+ src/Data/Aviation/Casr/Logbook/FlightPoint.hs view
@@ -0,0 +1,47 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.FlightPoint(+ FlightPoint(..)+, pointatdate+, runwayatdate+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Eq(Eq)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data FlightPoint =+ FlightPoint {+ _point :: String+ , _runway :: Maybe String+ , _landingTime :: Time+ } deriving (Eq, Ord, Show)++makeClassy ''FlightPoint++pointatdate ::+ String+ -> Day+ -> FlightPoint+pointatdate a d =+ FlightPoint+ a+ Nothing+ (dayonly d)++runwayatdate ::+ String+ -> String+ -> Day+ -> FlightPoint+runwayatdate a r d =+ FlightPoint+ a+ (Just r)+ (dayonly d)
− src/Data/Aviation/Casr/Logbook/Hours.hs
@@ -1,61 +0,0 @@-module Data.Aviation.Casr.Logbook.Hours (- Hours(..)-, zeroHours-, addHours-, fractionalHours-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html---- abstract-data Hours =- Hours- Int -- full- Int -- partial- deriving (Eq, Ord, Show)--zeroHours ::- Hours-zeroHours =- Hours 0 0--addHours ::- Hours - -> Hours- -> Hours-Hours f1 p1 `addHours` Hours f2 p2 =- let (h, q) = divMod (p1 + p2) 10- in Hours (f1 + f2 + h) q --instance Monoid Hours where- mempty =- zeroHours- mappend =- addHours--instance Markdown Hours where- markdown (Hours t p) =- "* Hours: **`" ++ markdown t ++ "." ++ markdown p ++ "`**\n"--instance Html Hours where- html (Hours t p) =- concat- [- "<span class=\"heading hoursheading\">"- , "Hours"- , "</span>"- , ": "- , "<span class=\"info hoursinfo\">"- , html t- , "."- , html p- , "</span>"- ]- -fractionalHours ::- Fractional a =>- Hours- -> a-fractionalHours (Hours f p) =- fromIntegral f + (fromIntegral p / 10)
− src/Data/Aviation/Casr/Logbook/Image.hs
@@ -1,45 +0,0 @@-module Data.Aviation.Casr.Logbook.Image (- Image(..) -) where--import Data.Aviation.Casr.Logbook.ImageType-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Maybe--data Image =- Image- String -- uri- (Maybe String) -- name- ImageType- deriving (Eq, Ord, Show)--instance Markdown Image where- markdown (Image uri name itype) =- let t = markdown itype- n = fromMaybe ("Image (" ++ t ++ ")") name- in concat- [- "<a href=\""- , uri- , "\"><img src=\""- , uri- , "\" width=\"120\" alt=\""- , n- , "\"></a>"- ]--instance Html Image where- html (Image uri name itype) =- let t = html itype- n = fromMaybe ("Image (" ++ t ++ ")") name- in concat- [- "<a href=\""- , uri- , "\"><img src=\""- , uri- , "\" width=\"120\" alt=\""- , n- , "\"></a>"- ]
− src/Data/Aviation/Casr/Logbook/ImageType.hs
@@ -1,23 +0,0 @@-module Data.Aviation.Casr.Logbook.ImageType (- ImageType(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data ImageType =- Png- | Jpg- deriving (Eq, Ord, Show)--instance Markdown ImageType where- markdown Png =- "png"- markdown Jpg =- "jpg"--instance Html ImageType where- html Png =- "png"- html Jpg =- "jpg"
− src/Data/Aviation/Casr/Logbook/Images.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.Images (- Images(..)-) where--import Data.Aviation.Casr.Logbook.Image-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown--newtype Images =- Images- [Image]- deriving (Eq, Ord, Show)- -instance Monoid Images where- mempty =- Images []- Images i1 `mappend` Images i2 =- Images (i1 `mappend` i2)--instance Markdown Images where- markdown (Images i) =- case i of- [] ->- [] - _ ->- "\n<div style=\"text-align: justify\">\n" ++ (i >>= \j -> markdown j ++ "\n") ++ "</div>"--instance Html Images where- html (Images i) =- case i of- [] ->- [] - _ ->- "<div style=\"text-align: justify\">" ++ (i >>= html) ++ "</div>"
+ src/Data/Aviation/Casr/Logbook/Location.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Location(+ Location(..)+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show, Double)++data Location =+ Location {+ _locationname :: String+ , _locationlatitude :: Double+ , _locationlongitude :: Double+ } deriving (Eq, Ord, Show)++makeClassy ''Location
− src/Data/Aviation/Casr/Logbook/Log.hs
@@ -1,86 +0,0 @@-module Data.Aviation.Casr.Logbook.Log (- Log(..)-) where--import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.DOB-import Data.Aviation.Casr.Logbook.Entries-import Data.Aviation.Casr.Logbook.Name-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Totals--data Log =- Log- Name- DOB- ARN- Entries- deriving (Eq, Ord, Show)- -instance Markdown Log where- markdown (Log (Name name') dob arn entries) =- concat- [- "# Pilot Personal Log Book\n"- , "### Civil Aviation Safety Regulation 1998 (61.345) [*austlii.edu.au*](http://www.austlii.edu.au/au/legis/cth/consol_reg/casr1998333/s61.345.html)\n\n"- , "* "- , markdown name'- , "\n"- , markdown dob- , markdown arn- , "\n----\n\n"- , markdown (totals entries)- , "\n----\n\n"- , markdown entries- ]- -instance Html Log where- html (Log name@(Name name') dob arn@(ARN arn') entries) =- concat- [- "<!DOCTYPE HTML>"- , "<html lang=\"en\">"- , "<head>"- , "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"- , "<title>Pilot Personal Log Book — "- , html name'- , " ("- , html arn'- , ")"- , "</title>"- , "<link href=\"https://fonts.googleapis.com/css?family=Inconsolata:400,700\" rel=\"stylesheet\" type=\"text/css\">"- , "<link rel=\"stylesheet\" type=\"text/css\" href=\"casr-logbook.css\">"- , "<link rel=\"alternate\" type=\"application/atom+xml\" href=\"/atom.xml\" title=\"Atom feed\">"- , "<script type=\"text/javascript\" src=\"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML\"></script>"- , "<script type=\"text/javascript\" src=\"https://raw.github.com/Mathapedia/LaTeX2HTML5/master/latex2html5.min.js\"></script>"- , "</head>"- , "<body class=\"casr-logbook\">" - , "<div id=\"title\" class=\"title\">"- , "<h1>Pilot Personal Log Book</h1>"- , "</div>"- , "<div id=\"subtitle\" class=\"subtitle\">"- , "<h2>Civil Aviation Safety Regulation 1998 (61.345) <span class=\"austlii\"><a href=\"http://www.austlii.edu.au/au/legis/cth/consol_reg/casr1998333/s61.345.html\">austlii.edu.au</a></span></h2>"- , "</div>" - , "<div id=\"personal\" class=\"personal\">" - , "<ul>"- , "<li id=\"name\">"- , html name- , "</li>"- , "<li id=\"dob\">"- , html dob- , "</li>"- , "<li id=\"arn\">"- , html arn- , "</li>"- , "</ul>" - , "</div>"- , "<hr>"- , html (totals entries)- , "<hr>"- , "<div id=\"flightlogentries\" class=\"flightlogentries\">"- , html entries- , "</div> "- , "</body>"- , "</html>"- ]
+ src/Data/Aviation/Casr/Logbook/Logbook.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}++module Data.Aviation.Casr.Logbook.Logbook(+ Logbook(..)+, aviatorlogbook+, emptylogbook+, singleentrylogbook+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Entries(Entries(Entries), emptyentries, singleentry)+import Data.Aviation.Casr.Logbook.Entry(Entry)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)++data Logbook ae se ee be =+ Logbook {+ _logbookaviator :: Aviator+ , _logbookentries :: (Entries ae se ee be)+ } deriving (Eq, Ord, Show)++makeClassy ''Logbook++aviatorlogbook ::+ Aviator+ -> [Entry ae se ee be]+ -> Logbook ae se ee be+aviatorlogbook a e =+ Logbook+ a+ (Entries e)++emptylogbook ::+ Aviator+ -> Logbook ae se ee be+emptylogbook a =+ Logbook+ a+ emptyentries++singleentrylogbook ::+ Aviator+ -> Entry ae se ee be+ -> Logbook ae se ee be+singleentrylogbook a e =+ Logbook+ a+ (singleentry e)
− src/Data/Aviation/Casr/Logbook/Name.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.Name (- Name(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype Name =- Name- String- deriving (Eq, Ord, Show)--instance IsString Name where- fromString =- Name--instance Markdown Name where- markdown (Name s) =- "### " ++ markdown s ++ "\n"--instance Html Name where- html (Name s) =- "<span class=\"heading nameheading\">Name: </span><span class=\"nameinfo\">" ++ html s ++ "</span>"
− src/Data/Aviation/Casr/Logbook/PiC.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.PiC (- PiC(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype PiC =- PiC- String- deriving (Eq, Ord, Show)--instance IsString PiC where- fromString =- PiC- -instance Markdown PiC where- markdown (PiC s) =- "* Pilot in Command: **" ++ markdown s ++ "**\n"--instance Html PiC where- html (PiC s) =- concat- [- "<span class=\"heading picheading\">"- , "Pilot in Command"- , "</span>"- , ": "- , "<span class=\"info picinfo\">"- , html s- , "</span>"- ]-
− src/Data/Aviation/Casr/Logbook/PoB.hs
@@ -1,52 +0,0 @@-module Data.Aviation.Casr.Logbook.PoB (- PoB(..)-, solo-, dual-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data PoB =- PoB Int- deriving (Eq, Ord, Show)--solo ::- PoB-solo =- PoB 1--dual ::- PoB-dual =- PoB 2--instance Markdown PoB where - markdown (PoB n) =- concat- [- "* PoB: **`"- , case n of- 0 -> "unmanned"- 1 -> "solo"- 2 -> "dual"- _ -> markdown n- , "`**\n"- ]--instance Html PoB where - html (PoB n) =- concat- [- "<span class=\"heading pobheading\">"- , "PoB"- , "</span>"- , ": "- , "<span class=\"info pobinfo\">"- , case n of- 0 -> "unmanned"- 1 -> "solo"- 2 -> "dual"- _ -> html n- , "</span>"- ]
− src/Data/Aviation/Casr/Logbook/Printer/Html.hs
@@ -1,40 +0,0 @@-module Data.Aviation.Casr.Logbook.Printer.Html (- Html(..)-, printHtml-, writeHtmlFile-) where--class Html s where- html ::- s- -> String--instance Html Char where- html '&' =- "&"- html c =- [c]- -instance Html Int where- html =- show- -instance Html a => Html [a] where- html =- (=<<) html--printHtml ::- Html s =>- s- -> IO ()-printHtml =- putStrLn . html--writeHtmlFile ::- Html s =>- FilePath- -> s- -> IO ()-writeHtmlFile p =- writeFile p . html-
− src/Data/Aviation/Casr/Logbook/Printer/Markdown.hs
@@ -1,38 +0,0 @@-module Data.Aviation.Casr.Logbook.Printer.Markdown (- Markdown(..)-, printMarkdown-, writeMarkdownFile-) where--class Markdown s where- markdown ::- s- -> String--instance Markdown Char where- markdown =- pure--instance Markdown Int where- markdown =- show--instance Markdown a => Markdown [a] where- markdown =- (=<<) markdown--printMarkdown ::- Markdown s =>- s- -> IO ()-printMarkdown =- putStrLn . markdown--writeMarkdownFile ::- Markdown s =>- FilePath- -> s- -> IO ()-writeMarkdownFile p =- writeFile p . markdown-
+ src/Data/Aviation/Casr/Logbook/Rating.hs view
@@ -0,0 +1,41 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Rating(+ Rating(..)+, nodayrating+, dayrating+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Rating =+ Rating {+ _ratingName :: String+ , _ratingAchieved :: Maybe Day+ } deriving (Eq, Ord, Show)++makeClassy ''Rating++nodayrating ::+ String+ -> Rating+nodayrating r =+ Rating+ r+ Nothing++dayrating ::+ String+ -> Day+ -> Rating+dayrating r d =+ Rating+ r+ (Just d)
− src/Data/Aviation/Casr/Logbook/Sequence.hs
@@ -1,33 +0,0 @@-module Data.Aviation.Casr.Logbook.Sequence (- Sequence(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype Sequence =- Sequence- String- deriving (Eq, Ord, Show)--instance IsString Sequence where- fromString =- Sequence--instance Markdown Sequence where- markdown (Sequence s) =- "* Sequence: **" ++ markdown s ++ "**\n"--instance Html Sequence where- html (Sequence s) =- concat- [- "<span class=\"heading sequenceheading\">"- , "Sequence"- , "</span>"- , ": "- , "<span class=\"info sequenceinfo\">"- , html s- , "</span>"- ]
+ src/Data/Aviation/Casr/Logbook/SimulatorFlight.hs view
@@ -0,0 +1,41 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.SimulatorFlight(+ SimulatorFlight(..)+, dayonlysimulator+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data SimulatorFlight =+ SimulatorFlight {+ _simulatorflightname :: String+ , _simulatorflighttime :: Time+ , _simulatortype :: String+ , _simulatorothercrew :: [Aviator]+ , _instrumentsimulatorTimeAmount :: TimeAmount+ } deriving (Eq, Ord, Show) ++makeClassy ''SimulatorFlight++dayonlysimulator ::+ String+ -> Day+ -> String+ -> [Aviator]+ -> TimeAmount+ -> SimulatorFlight+dayonlysimulator n d =+ SimulatorFlight+ n+ (dayonly d)+
+ src/Data/Aviation/Casr/Logbook/Time.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Time(+ Time(..)+, dayonly+, dayandtime+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Time(Day, TimeOfDay)+import Prelude(Show)++data Time =+ Time {+ _day :: Day+ , _timeofday :: Maybe TimeOfDay+ } deriving (Eq, Ord, Show)++makeClassy ''Time++dayonly ::+ Day+ -> Time+dayonly d =+ Time d Nothing++dayandtime ::+ Day+ -> TimeOfDay+ -> Time+dayandtime d t =+ Time d (Just t)
+ src/Data/Aviation/Casr/Logbook/TimeAmount.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.TimeAmount(+ TimeAmount(..)+, parttimeamount+, zerotimeamount+, addtimeamount+) where++import Control.Lens(makeClassy, ( # ))+import Data.Eq(Eq)+import Data.Digit(Digit, x0, digit, (/+/))+import Data.Int(Int)+import Data.Monoid(Monoid(mempty, mappend))+import Data.Ord(Ord)+import Prelude(Show, Num((+)))++data TimeAmount =+ TimeAmount {+ _hours :: Int+ , _tenthofhour :: Digit+ } deriving (Eq, Ord, Show)++makeClassy ''TimeAmount++parttimeamount ::+ Digit+ -> TimeAmount+parttimeamount =+ TimeAmount 0++zerotimeamount ::+ TimeAmount+zerotimeamount =+ TimeAmount 0 x0++addtimeamount ::+ TimeAmount + -> TimeAmount+ -> TimeAmount+TimeAmount f1 p1 `addtimeamount` TimeAmount f2 p2 =+ let (h, q) = p1 /+/ p2+ in TimeAmount (f1 + f2 + digit # h) q ++instance Monoid TimeAmount where+ mempty =+ zerotimeamount+ mappend =+ addtimeamount
− src/Data/Aviation/Casr/Logbook/Totals.hs
@@ -1,232 +0,0 @@-module Data.Aviation.Casr.Logbook.Totals (- Totals(..)-, zeroTotals-, singleTotals-, updateTotals-, totals-) where--import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.Engine-import Data.Aviation.Casr.Logbook.Entries-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Foldable(foldl')-import Data.Map(Map)-import qualified Data.Map as Map-import Text.Printf--data Totals =- Totals- Hours -- total- Hours -- dual- Hours -- solo- (Map String Hours) -- type- (Map String Hours) -- aircraft- Hours -- single-engine- Hours -- multi-engine- Hours -- day- Hours -- night- Hours -- day & night- (Map String Hours) -- pilot in command- deriving (Eq, Ord, Show)--instance Monoid Totals where- mempty =- zeroTotals- Totals total1 dualhours1 solohours1 intype1 inreg1 singleengine1 multiengine1 day1 night1 daynight1 pic1 `mappend` Totals total2 dualhours2 solohours2 intype2 inreg2 singleengine2 multiengine2 day2 night2 daynight2 pic2 =- Totals- (total1 `mappend` total2)- (dualhours1 `mappend` dualhours2)- (solohours1 `mappend` solohours2)- (Map.unionWith mappend intype1 intype2)- (Map.unionWith mappend inreg1 inreg2)- (singleengine1 `mappend` singleengine2)- (multiengine1 `mappend` multiengine2)- (day1 `mappend` day2)- (night1 `mappend` night2)- (daynight1 `mappend` daynight2)- (Map.unionWith mappend pic1 pic2)--instance Markdown Totals where- markdown (Totals total dualhours solohours intype inreg singleengine multiengine day night daynight pic) =- let displayHours (Hours f p) =- show f ++ "." ++ show p- displayPoint x h =- "* " ++ x ++ ": **`" ++ displayHours h ++ "`**\n"- displayMap x m =- "* " ++ x ++ "\n" ++ Map.foldrWithKey (\k h s -> " * " ++ k ++ ": **`" ++ displayHours h ++ " (" ++ printf "%.2f" (fractionalHours h / fractionalHours total * 100 :: Double) ++ "%)`**\n" ++ s) "" m- in concat- [- "##### Summary\n"- , displayPoint "Total Hours" total- , displayPoint "Dual Hours" dualhours- , displayPoint "Solo Hours" solohours- , displayMap "Hours in type" intype- , displayMap "Hours in registration" inreg- , displayPoint "Single-engine Hours" singleengine- , displayPoint "Multi-engine Hours" multiengine- , displayPoint "Day Hours" day- , displayPoint "Night Hours" night- , displayPoint "Day & Night Hours" daynight- , displayMap "Hours with PiC" pic - ]--instance Html Totals where- html (Totals total dualhours solohours intype inreg singleengine multiengine day night daynight pic) =- let displayHours (Hours f p) =- show f ++ "." ++ show p- displayPoint x h q =- concat- [- "<li class=\"summarypoint\">"- , "<span id=\""- , q- , "\" class=\"heading summarypointheading summarypointheading"- , q- , "\">"- , x - , "</span>: <span class=\"summarypoint summarypoint"- , q- , "\">" - , displayHours h- , "</span></li>"- ]- displayMap x m q =- concat- [- "<li class=\"summarypoint summarypoint"- , q- , "\">"- , "<span id=\""- , q- , "\" class=\"heading summarypointheading summarypointheading"- , q- , "\">"- , x - , "</span>: <div class=\"summarypoint summarypoint"- , q- , "\"><ul>"- , Map.foldrWithKey (\k h s -> concat [- "<li class=\"subsummarypoint subsummarypoint"- , q- , "\">"- , "<span class=\"heading subsummarypointheading subsummarypointheading"- , q- , "\">"- , k- , "</span>: <span class=\"subsummarypointhours subsummarypointhours"- , q- , "\">"- , displayHours h- , "</span> <span class=\"subsummarypointpercentage subsummarypointpercentage"- , q- , "\">("- , printf "%.2f" (fractionalHours h / fractionalHours total * 100 :: Double)- , "%)</span>"- , "</li>"- , s- ]) "" m- , "</ul></div></li>"- ] - in concat- [- "<div id=\"summary\" class=\"totals\">"- , "<div class=\"hreflink\">"- , "<a href=\"#summary\">§</a>"- , "</div>"- , "<h5>Summary</h5>"- , "<ul>"- , displayPoint "Total Hours" total "totalhours"- , displayPoint "Dual Hours" dualhours "dualhours"- , displayPoint "Solo Hours" solohours "solohours"- , displayMap "Hours in type" intype "hoursintype"- , displayMap "Hours in registration" inreg "hoursinregistration"- , displayPoint "Single-engine Hours" singleengine "singleenginehours"- , displayPoint "Multi-engine Hours" multiengine "multienginehours"- , displayPoint "Day Hours" day "dayhours"- , displayPoint "Night Hours" night "nighthours"- , displayPoint "Day & Night Hours" daynight "daynighthours"- , displayMap "Hours with PiC" pic "pichours" - , "</ul>"- , "</div>"- ]--zeroTotals ::- Totals-zeroTotals =- Totals- zeroHours- zeroHours- zeroHours- Map.empty- Map.empty- zeroHours- zeroHours- zeroHours- zeroHours- zeroHours- Map.empty--singleTotals ::- FlightEntry- -> Totals-singleTotals (FlightEntry _ _ (Aircraft atype areg aeng) hours (PoB pob) _ dn (PiC pic) _ _ _ _) =- Totals- hours- (- case pob of- 2 -> hours- _ -> zeroHours- )- (- case pob of- 1 -> hours- _ -> zeroHours- )- (Map.singleton atype hours)- (Map.singleton areg hours)- (- case aeng of- Single -> hours- _ -> zeroHours- )- (- case aeng of- Multi -> hours- _ -> zeroHours- )- (- case dn of- Day -> hours- _ -> zeroHours- )- (- case dn of- Night -> hours- _ -> zeroHours- )- (- case dn of- Night -> hours- _ -> zeroHours- )- (Map.singleton pic hours)--updateTotals ::- FlightEntry- -> Totals- -> Totals-updateTotals =- mappend . singleTotals--totals ::- Entries- -> Totals-totals =- foldl' (flip updateTotals) zeroTotals . flightEntries
− src/Data/Aviation/Casr/Logbook/TrackLog.hs
@@ -1,105 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLog (- TrackLog(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.TrackLogType-import Data.Maybe--data TrackLog =- TrackLog- String -- uri- (Maybe String) -- name- TrackLogType- deriving (Eq, Ord, Show)--instance Markdown TrackLog where- markdown (TrackLog uri name ttype) =- let t = markdown ttype - n = fmap (\z -> "**" ++ z ++ "**") name- in concat $ - case ttype of - ImageLog _ -> - [- " * "- , case n of- Nothing ->- "*" ++ t ++ "*"- Just n' ->- n'- , "\n\n "- , "<a href=\""- , uri- , "\"><img src=\""- , uri- , "\" width=\"360\" alt=\""- , fromMaybe t name- , "\"></a>"- ]- _ -> - [- " * "- , case n of- Nothing ->- ""- Just n' ->- n' ++ ": "- , "["- , t- , "]("- , uri- , ")"- ]--instance Html TrackLog where- html (TrackLog uri name ttype) =- let t = html ttype - n = fmap html name- in concat [- "<div class=\"tracklog\">"- , concat $ - case ttype of - ImageLog _ ->- [- fromMaybe (concat- [- "<a href=\""- , uri- , "\">"- , "<span class=\"tracklogtype\">"- , t- , "</span>"- , "</a>"- ]) n- , "<p>"- , "<a href=\""- , uri- , "\">"- , "<span class=\"tracklogimage\">"- , "<img src=\""- , uri- , "\" width=\"360\" alt=\""- , fromMaybe t n- , "\">"- , "</span>"- , "</a>"- , "</p>"- ]- _ ->- [- case n of- Nothing ->- ""- Just n' ->- n' ++ ": "- , "<a href=\""- , uri- , "\">"- , "<span class=\"tracklogtype\">"- , t- , "</span>"- , "</a>"- ]- , "</div>"- ]
− src/Data/Aviation/Casr/Logbook/TrackLogType.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLogType (- TrackLogType(..)-) where--import Data.Aviation.Casr.Logbook.ImageType-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data TrackLogType =- Gpx- | Kml- | Kmz- | ImageLog ImageType- deriving (Eq, Ord, Show)- -instance Markdown TrackLogType where- markdown Gpx =- "gpx"- markdown Kml =- "kml"- markdown Kmz =- "kmz"- markdown (ImageLog i) =- markdown i--instance Html TrackLogType where- html Gpx =- "gpx"- html Kml =- "kml"- html Kmz =- "kmz"- html (ImageLog i) =- html i
− src/Data/Aviation/Casr/Logbook/TrackLogs.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLogs (- TrackLogs(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.TrackLog--newtype TrackLogs =- TrackLogs- [TrackLog]- deriving (Eq, Ord, Show)--instance Monoid TrackLogs where- mempty =- TrackLogs []- TrackLogs t1 `mappend` TrackLogs t2 =- TrackLogs (t1 `mappend` t2)--instance Markdown TrackLogs where- markdown (TrackLogs t) =- case t of- [] ->- ""- _ ->- "* **Track**\n" ++ (t >>= \u -> markdown u ++ "\n")--instance Html TrackLogs where- html (TrackLogs t) =- case t of- [] ->- ""- _ ->- concat- [- "<span class=\"heading tracklogheading\">"- , "Track"- , "</span>"- , "<ul>"- , t >>= \u -> concat- [- "<li>"- , html u- , "</li>"- ]- , "</ul>"- ]-
− src/Data/Aviation/Casr/Logbook/Video.hs
@@ -1,103 +0,0 @@-module Data.Aviation.Casr.Logbook.Video (- Video(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.VideoType-import Data.Maybe--data Video =- Video- String -- uri- (Maybe String) -- name- VideoType- deriving (Eq, Ord, Show)--instance Markdown Video where- markdown (Video uri name vtype) =- let t = markdown vtype- n = fromMaybe ("Video (" ++ t ++ ")") name- in concat- [- "**"- , n- , ":** ["- , t- , "]("- , "https://www.youtube.com/watch?v="- , uri- , ")"- ]--instance Html Video where- html (Video uri name vtype) =- let t = html vtype- n = fromMaybe ("Video (" ++ t ++ ")") name- in concat- [- "<div>"- , case vtype of- YouTube ->- concat- [- "<a href=\"https://www.youtube.com/watch?v="- , uri- , "\">"- , "<span class=\"videoname\">"- , html n- , "</span>"- , "</a>"- ]- Bambuser ->- concat- [- "<a href=\"https://bambuser.com/v/"- , uri- , "\">"- , "<span class=\"videoname\">"- , html n- , "</span>"- , "</a>"- ]- Vimeo ->- concat- [- "<a href=\"https://vimeo.com/"- , uri- , "\">"- , "<span class=\"videoname\">"- , html n- , "</span>"- , "</a>"- ]- , "</div>"- , "<p>"- , case vtype of- YouTube ->- concat- [ - "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"http://www.youtube.com/embed/"- , uri- , "?autohide=1&cc_load_policy=1&color=white&controls=1&disablekb=0&fs=1&iv_load_policy=0&loop=0&modestbranding=1&rel=0&showinfo=0\">"- , "</iframe>" - ]- Bambuser ->- concat- [ - "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"https://embed.bambuser.com/broadcast/"- , uri- , "?chat=1&mute=0"- , "\">"- , "</iframe>" - ]- Vimeo ->- concat- [ - "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"https://player.vimeo.com/video/"- , uri- , "\">"- , "</iframe>" - ]- , "</p>"- ]
− src/Data/Aviation/Casr/Logbook/VideoType.hs
@@ -1,28 +0,0 @@-module Data.Aviation.Casr.Logbook.VideoType (- VideoType(..) -) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data VideoType =- YouTube- | Vimeo- | Bambuser- deriving (Eq, Ord, Show)--instance Markdown VideoType where- markdown YouTube =- "youtube"- markdown Vimeo =- "vimeo"- markdown Bambuser =- "bambuser"--instance Html VideoType where- html YouTube =- "youtube"- html Vimeo =- "vimeo"- html Bambuser =- "bambuser"
− src/Data/Aviation/Casr/Logbook/Videos.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.Videos (- Videos(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Video--newtype Videos =- Videos- [Video]- deriving (Eq, Ord, Show)- -instance Monoid Videos where- mempty =- Videos []- Videos v1 `mappend` Videos v2 =- Videos (v1 `mappend` v2)--instance Markdown Videos where- markdown (Videos v) =- case v of- [] ->- ""- _ ->- "* **Videos**\n" ++ (v >>= \w -> " * " ++ markdown w ++ "\n")--instance Html Videos where- html (Videos v) =- case v of- [] ->- ""- _ ->- concat- [- "<span class=\"heading videoheading\">"- , "Video"- , "</span>"- , "<ul>"- , v >>= \u -> concat- [- "<li>"- , html u- , "</li>"- ]- , "</ul>"- ]-
− src/Data/Aviation/Casr/Logbook/Visualisation.hs
@@ -1,56 +0,0 @@-module Data.Aviation.Casr.Logbook.Visualisation (- Visualisation(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.VisualisationType-import Data.Maybe--data Visualisation =- Visualisation- String -- uri- (Maybe String) -- name- VisualisationType- deriving (Eq, Ord, Show)--instance Markdown Visualisation where- markdown (Visualisation uri name vtype) =- let t = markdown vtype- n = case name of- Nothing -> ""- Just n' -> "**" ++ n' ++ "**: "- in concat- [- n- , "["- , t- , "]("- , uri- , ")"- ]--instance Html Visualisation where- html (Visualisation uri name vtype) =- let t = html vtype- n = fromMaybe t name- in concat- [- "<a href=\""- , uri- , "\">"- , "<span class=\"visualisationheading\">"- , html n- , "</span>"- , "</a>"- , "<p>"- , case vtype of- Doarama e ->- concat- [- "<iframe src=\"http://www.doarama.com/embed?k="- , e- , "\" width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\">"- , "</iframe>"- ]- ]
− src/Data/Aviation/Casr/Logbook/VisualisationType.hs
@@ -1,19 +0,0 @@-module Data.Aviation.Casr.Logbook.VisualisationType (- VisualisationType(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown--data VisualisationType =- Doarama- String -- http://oembed.frdnspnzr.de/- deriving (Eq, Ord, Show)--instance Markdown VisualisationType where- markdown (Doarama _) =- "doarama"--instance Html VisualisationType where- html (Doarama _) =- "doarama"
− src/Data/Aviation/Casr/Logbook/Visualisations.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.Visualisations (- Visualisations(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Visualisation--newtype Visualisations =- Visualisations- [Visualisation]- deriving (Eq, Ord, Show)- -instance Monoid Visualisations where- mempty =- Visualisations []- Visualisations v1 `mappend` Visualisations v2 =- Visualisations (v1 `mappend` v2)- -instance Markdown Visualisations where- markdown (Visualisations v) =- case v of- [] ->- ""- _ ->- "* **Visualisations**\n" ++ (v >>= \w -> " * " ++ markdown w ++ "\n")--instance Html Visualisations where- html (Visualisations v) =- case v of- [] ->- ""- _ ->- concat- [- "<span class=\"heading visualisationheading\">"- , "Visualisation"- , "</span>"- , "<ul>"- , v >>= \u -> concat- [- "<li>"- , html u- , "</li>"- ]- , "</ul>"- ]-