48 lines
1.6 KiB
Haskell
48 lines
1.6 KiB
Haskell
{-# LANGUAGE NoImplicitPrelude #-}
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE TypeFamilies, FlexibleContexts, ConstraintKinds #-}
|
|
{-# LANGUAGE QuasiQuotes #-}
|
|
{-# LANGUAGE RecordWildCards #-}
|
|
|
|
|
|
module Handler.Utils
|
|
( module Handler.Utils
|
|
) where
|
|
|
|
import Import
|
|
|
|
import qualified Data.Text as T
|
|
|
|
import Handler.Utils.DateTime as Handler.Utils
|
|
import Handler.Utils.Form as Handler.Utils
|
|
import Handler.Utils.Table as Handler.Utils
|
|
import Handler.Utils.Table.Pagination as Handler.Utils
|
|
|
|
import Handler.Utils.Zip as Handler.Utils
|
|
import Handler.Utils.Rating as Handler.Utils hiding (extractRatings)
|
|
import Handler.Utils.Submission as Handler.Utils
|
|
import Handler.Utils.Sheet as Handler.Utils
|
|
import Handler.Utils.Templates as Handler.Utils
|
|
|
|
|
|
downloadFiles :: (MonadHandler m, HandlerSite m ~ UniWorX) => m Bool
|
|
downloadFiles = do
|
|
mauth <- liftHandlerT maybeAuth
|
|
case mauth of
|
|
Just (Entity _ User{..}) -> return userDownloadFiles
|
|
Nothing -> do
|
|
AppSettings{ appUserDefaults = UserDefaultConf{..} } <- getsYesod appSettings
|
|
return userDefaultDownloadFiles
|
|
|
|
|
|
nameWidget :: Text -> Text -> Widget
|
|
nameWidget displayName surname
|
|
| null surname = toWidget displayName
|
|
| otherwise = case reverse $ T.splitOn surname displayName of
|
|
[_notContained] -> [whamlet|#{displayName} (<b .surname>#{surname}</b>)|]
|
|
(suffix:prefixes) ->
|
|
let prefix = T.intercalate surname $ reverse prefixes
|
|
in [whamlet|#{prefix}<b .surname>#{surname}</b>#{suffix}|]
|
|
[] -> error "Data.Text.splitOn returned empty list in violation of specification."
|
|
|