{- This file is part of Vervis. - - Written in 2016 by fr33domlover . - - ♡ Copying is an act of love. Please copy, reuse and share. - - The author(s) have dedicated all copyright and related and neighboring - rights to this software to the public domain worldwide. This software is - distributed without any warranty. - - You should have received a copy of the CC0 Public Domain Dedication along - with this software. If not, see - . -} -- | Various custom widgets. module Vervis.Widget ( breadcrumbsW , revisionW ) where import Prelude import Data.Text (Text) import Data.Time.Calendar (toGregorian) import Data.Time.Clock (UTCTime (..)) import Formatting (sformat, (%), int, left) import Yesod.Core (YesodBreadcrumbs, breadcrumbs) import Yesod.Core.Widget import qualified Data.Text as T (take) import Data.Revision.Local import Development.DarcsRev (darcsTotalPatches, darcsRevision) import Vervis.Settings (widgetFile) import Vervis.Style breadcrumbsW :: YesodBreadcrumbs site => WidgetT site IO () breadcrumbsW = do (current, bcs) <- handlerToWidget breadcrumbs $(widgetFile "widget/breadcrumbs") revisionW :: WidgetT site IO () revisionW = let fmtTime t = let (y, m, d) = toGregorian $ utctDay t padded = left 2 '0' in sformat (int % "-" % padded % "-" % padded) y m d cgTimeFmt = fmtTime . cgTime mrev = $darcsRevision sharer = "fr33domlover" :: Text repo = "vervis" :: Text changes = $darcsTotalPatches :: Int in $(widgetFile "widget/revision")