Merge branch 'master' into 'live'

Minor cleanup

See merge request !83
This commit is contained in:
Gregor Kleen 2018-10-24 22:11:24 +02:00
commit 19c566cee0
6 changed files with 56 additions and 41 deletions

View File

@ -25,6 +25,7 @@ import Jobs
-- import Yesod.Form.Bootstrap3 -- import Yesod.Form.Bootstrap3
import Handler.Utils import Handler.Utils
import Handler.Utils.Submission
import Handler.Utils.Table.Cells import Handler.Utils.Table.Cells
import Network.Mime import Network.Mime

View File

@ -9,6 +9,7 @@
, FlexibleContexts , FlexibleContexts
, LambdaCase , LambdaCase
, MultiParamTypeClasses , MultiParamTypeClasses
, QuasiQuotes
#-} #-}
module Handler.SystemMessage where module Handler.SystemMessage where
@ -44,9 +45,8 @@ postMessageR cID = do
Just SystemMessageTranslation{..} -> (systemMessageTranslationSummary, systemMessageTranslationContent) Just SystemMessageTranslation{..} -> (systemMessageTranslationSummary, systemMessageTranslationContent)
let let
mkForm :: Handler (((FormResult SystemMessage, Widget), Enctype), Map Lang ((FormResult (Entity SystemMessageTranslation, [Maybe BtnSubmitDelete]), Widget), Enctype), ((FormResult SystemMessageTranslation, Widget), Enctype))
mkForm = do mkForm = do
modifyRes'@((modifyRes, _), _) <- runFormPost . identForm FIDSystemMessageModify . renderAForm FormStandard ((modifyRes, modifyView), modifyEnctype) <- runFormPost . identForm FIDSystemMessageModify . renderAForm FormStandard
$ SystemMessage $ SystemMessage
<$> aopt utcTimeField (fslI MsgSystemMessageFrom) (Just systemMessageFrom) <$> aopt utcTimeField (fslI MsgSystemMessageFrom) (Just systemMessageFrom)
<*> aopt utcTimeField (fslI MsgSystemMessageTo) (Just systemMessageTo) <*> aopt utcTimeField (fslI MsgSystemMessageTo) (Just systemMessageTo)
@ -74,7 +74,7 @@ postMessageR cID = do
let modifyTranss = Map.map (view $ _1._1) modifyTranss' let modifyTranss = Map.map (view $ _1._1) modifyTranss'
addTransRes'@((addTransRes, _), _) <- runFormPost . identForm FIDSystemMessageAddTranslation . renderAForm FormStandard ((addTransRes, addTransView), addTransEnctype) <- runFormPost . identForm FIDSystemMessageAddTranslation . renderAForm FormStandard
$ SystemMessageTranslation $ SystemMessageTranslation
<$> pure smId <$> pure smId
<*> areq (langField False) (fslpI MsgSystemMessageLanguage "RFC1766-Sprachcode") Nothing <*> areq (langField False) (fslpI MsgSystemMessageLanguage "RFC1766-Sprachcode") Nothing
@ -114,7 +114,27 @@ postMessageR cID = do
addMessageI Success MsgSystemMessageEditTranslationSuccess addMessageI Success MsgSystemMessageEditTranslationSuccess
redirect $ MessageR cID redirect $ MessageR cID
return (modifyRes', modifyTranss', addTransRes') let
messageEditModal = modal [whamlet|_{MsgSystemMessageEdit}|] $ Right
[whamlet|
<form method=post action=@{MessageR cID} enctype=#{modifyEnctype}>
^{modifyView}
|]
translationAddModal = modal [whamlet|_{MsgSystemMessageAddTranslation}|] $ Right
[whamlet|
<form method=post action=@{MessageR cID} enctype=#{addTransEnctype}>
^{addTransView}
|]
translationsEditModal
| not $ null modifyTranss' = modal [whamlet|_{MsgSystemMessageEditTranslations}|] $ Right
[whamlet|
$forall ((_, transView), transEnctype) <- modifyTranss'
<section>
<form method=post action=@{MessageR cID} enctype=#{transEnctype}>
^{transView}
|]
| otherwise = mempty
return (messageEditModal, translationAddModal, translationsEditModal)
maySubmit <- (== Authorized) <$> evalAccess (MessageR cID) True maySubmit <- (== Authorized) <$> evalAccess (MessageR cID) True
forms <- traverse (const mkForm) $ () <$ guard maySubmit forms <- traverse (const mkForm) $ () <$ guard maySubmit

View File

@ -22,7 +22,7 @@ import Handler.Utils.Table.Pagination as Handler.Utils
import Handler.Utils.Zip as Handler.Utils import Handler.Utils.Zip as Handler.Utils
import Handler.Utils.Rating as Handler.Utils hiding (extractRatings) import Handler.Utils.Rating as Handler.Utils hiding (extractRatings)
import Handler.Utils.Submission as Handler.Utils -- import Handler.Utils.Submission as Handler.Utils
import Handler.Utils.Sheet as Handler.Utils import Handler.Utils.Sheet as Handler.Utils
import Handler.Utils.Templates as Handler.Utils import Handler.Utils.Templates as Handler.Utils
import Handler.Utils.Mail as Handler.Utils import Handler.Utils.Mail as Handler.Utils
@ -44,16 +44,19 @@ simpleLink :: Widget -> Route UniWorX -> Widget
simpleLink lbl url = [whamlet|<a href=@{url}>^{lbl}|] simpleLink lbl url = [whamlet|<a href=@{url}>^{lbl}|]
nameWidget :: Text -> Text -> Widget nameWidget :: Text -> Text -> Widget
nameWidget displayName surname nameWidget displayName surname = toWidget $ nameHtml displayName surname
| null surname = toWidget displayName
nameHtml :: Text -> Text -> Html
nameHtml displayName surname
| null surname = toHtml displayName
| otherwise = case reverse $ T.splitOn surname displayName of | otherwise = case reverse $ T.splitOn surname displayName of
[_notContained] -> [whamlet|$newline never [_notContained] -> [shamlet|$newline never
#{displayName} ( #{displayName} (
<b .surname>#{surname} <b .surname>#{surname}
)|] )|]
(suffix:prefixes) -> (suffix:prefixes) ->
let prefix = T.intercalate surname $ reverse prefixes let prefix = T.intercalate surname $ reverse prefixes
in [whamlet|$newline never in [shamlet|$newline never
#{prefix} #{prefix}
<b .surname>#{surname} <b .surname>#{surname}
#{suffix} #{suffix}

View File

@ -13,7 +13,7 @@ import Import hiding ((.=))
import Text.Hamlet import Text.Hamlet
import qualified Data.CaseInsensitive as CI import qualified Data.CaseInsensitive as CI
import Handler.Utils.DateTime import Handler.Utils
import Utils.Lens import Utils.Lens

View File

@ -7,23 +7,26 @@ $newline never
<dl> <dl>
$case userInfo $case userInfo
$of Left (Just email) $of Left (Just email)
<dt> E-Mail <dt>E-Mail
<dd> #{email} <dd>#{email}
$of Left Nothing $of Left Nothing
$of Right Nothing $of Right Nothing
<dt> Ungültige UserId erhalten! <dt>Ungültige UserId erhalten!
$of Right (Just (Entity _ User{..})) $of Right (Just (Entity _ User{..}))
<dt> Name <dt>Name
<dd> #{userDisplayName} <dd>^{const (const (nameHtml userDisplayName userSurname))}
<dt> E-Mail <dt>Identifikation
<dd> #{userEmail} <dd>#{userIdent}
<dt>E-Mail
<dd>#{userEmail}
$maybe matrnr <- userMatrikelnummer $maybe matrnr <- userMatrikelnummer
<dt> Matrikelnummer <dt>Matrikelnummer
<dd> #{matrnr} <dd>#{matrnr}
<dt> E-Mail Sprachen $if not (null (mailLanguages userMailLanguages))
$forall lang <- mailLanguages userMailLanguages <dt>Präferierte E-Mail Sprachen
<dd> #{lang} $forall lang <- mailLanguages userMailLanguages
<dt> Zeit <dd>#{lang}
<dd> #{rtime} <dt>Zeit
<p style="white-space: pre"> <dd>#{rtime}
<p style="white-space: pre-wrap; font-family: monospace">
#{jHelpRequest} #{jHelpRequest}

View File

@ -5,20 +5,8 @@
<p> <p>
#{content} #{content}
$maybe (((_, modifyView), modifyEnctype), modifyTranss, ((_, addTransView), addTransEnctype)) <- forms $maybe (messageEditModal, translationAddModal, translationsEditModal) <- forms
<section> <section>
<h2>_{MsgSystemMessageEdit} ^{messageEditModal}
<form method=post action=@{MessageR cID} enctype=#{modifyEnctype}> ^{translationAddModal}
^{modifyView} ^{translationsEditModal}
<section>
<h2>_{MsgSystemMessageAddTranslation}
<form method=post action=@{MessageR cID} enctype=#{addTransEnctype}>
^{addTransView}
$if not (null modifyTranss)
<section>
<h2>_{MsgSystemMessageEditTranslations}
$forall ((_, transView), transEnctype) <- modifyTranss
<form method=post action=@{MessageR cID} enctype=#{transEnctype}>
^{transView}