module Handler.Admin.Crontab ( getAdminCrontabR ) where import Import import Jobs import Handler.Utils.DateTime import Data.Aeson.Encode.Pretty (encodePrettyToTextBuilder) getAdminCrontabR :: Handler Html getAdminCrontabR = do jState <- getsYesod appJobState mCrontab' <- atomically . runMaybeT $ do JobState{jobCurrentCrontab} <- MaybeT $ tryReadTMVar jState MaybeT $ readTVar jobCurrentCrontab let mCrontab = mCrontab' <&> _2 %~ filter (hasn't $ _1 . _MatchNone) siteLayoutMsg MsgMenuAdminCrontab $ do setTitleI MsgMenuAdminCrontab [whamlet| $newline never $maybe (genTime, crontab) <- mCrontab

^{formatTimeW SelFormatDateTime genTime} $forall (match, job) <- crontab
$case match $of MatchAsap _{MsgCronMatchAsap} $of MatchNone _{MsgCronMatchNone} $of MatchAt t ^{formatTimeW SelFormatDateTime t}
                  #{encodePrettyToTextBuilder job}
      $nothing
        _{MsgAdminCrontabNotGenerated}
    |]