From 06f3ac656313dd751f8a758349f6151497dc4ddf Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 22 Feb 2020 14:04:10 +0100 Subject: [PATCH] feat: markdown help requests --- src/Handler/Help.hs | 4 +- src/Jobs/Handler/HelpRequest.hs | 2 +- src/Jobs/Types.hs | 2 +- templates/mail/support.hamlet | 67 +++++++++++++++++---------------- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/Handler/Help.hs b/src/Handler/Help.hs index 5380d9880..94c769b08 100644 --- a/src/Handler/Help.hs +++ b/src/Handler/Help.hs @@ -19,7 +19,7 @@ data HelpForm = HelpForm { hfReferer :: Maybe (Route UniWorX) , hfUserId :: Either (Maybe Address) UserId , hfSubject :: Maybe Text - , hfRequest :: Text + , hfRequest :: Html } helpForm :: (forall msg. RenderMessage UniWorX msg => msg -> Text) -> Maybe (Route UniWorX) -> Maybe UserId -> AForm _ HelpForm @@ -27,7 +27,7 @@ helpForm mr mReferer mUid = HelpForm <$> aopt routeField (fslI MsgHelpProblemPage & inputReadonly) (Just <$> mReferer) <*> multiActionA identActions (fslI MsgHelpAnswer) (HIUser <$ mUid) <*> aopt textField (fslpI MsgHelpSubject $ mr MsgHelpSubject) Nothing - <*> (unTextarea <$> areq textareaField (fslpI MsgHelpRequest $ mr MsgHelpRequest) Nothing) + <*> areq htmlField (fslpI MsgHelpRequest $ mr MsgHelpRequest) Nothing where identActions :: Map _ (AForm _ (Either (Maybe Address) UserId)) identActions = Map.fromList $ case mUid of diff --git a/src/Jobs/Handler/HelpRequest.hs b/src/Jobs/Handler/HelpRequest.hs index 0ef10167a..b4e9c5b69 100644 --- a/src/Jobs/Handler/HelpRequest.hs +++ b/src/Jobs/Handler/HelpRequest.hs @@ -15,7 +15,7 @@ import Data.Bitraversable dispatchJobHelpRequest :: Either (Maybe Address) UserId -> UTCTime -> Maybe Text -- ^ Help Subject - -> Text -- ^ Help Request + -> Html -- ^ Help Request -> Maybe Text -- ^ Referer -> Handler () dispatchJobHelpRequest jSender jRequestTime jHelpSubject jHelpRequest jReferer = do diff --git a/src/Jobs/Types.hs b/src/Jobs/Types.hs index 8a3c247b3..a22298065 100644 --- a/src/Jobs/Types.hs +++ b/src/Jobs/Types.hs @@ -45,7 +45,7 @@ data Job = JobSendNotification { jRecipient :: UserId, jNotification :: Notifica | JobHelpRequest { jHelpSender :: Either (Maybe Address) UserId , jRequestTime :: UTCTime , jSubject :: Maybe Text - , jHelpRequest :: Text + , jHelpRequest :: Html , jReferer :: Maybe Text } | JobSetLogSettings { jInstance :: InstanceId, jLogSettings :: LogSettings } diff --git a/templates/mail/support.hamlet b/templates/mail/support.hamlet index 86148b851..de412b7d3 100644 --- a/templates/mail/support.hamlet +++ b/templates/mail/support.hamlet @@ -4,38 +4,39 @@ $newline never -
- $case userInfo - $of Left (Just Address{..}) - $maybe name <- addressName +
+
+ $case userInfo + $of Left (Just Address{..}) + $maybe name <- addressName +
Name +
#{name} +
E-Mail +
#{addressEmail} + $of Left Nothing + $of Right Nothing +
Ungültige UserId erhalten! + $of Right (Just (Entity _ User{userDisplayName, userSurname, userIdent, userEmail, userMatrikelnummer, userLanguages}))
Name -
#{name} -
E-Mail -
#{addressEmail} - $of Left Nothing - $of Right Nothing -
Ungültige UserId erhalten! - $of Right (Just (Entity _ User{userDisplayName, userSurname, userIdent, userEmail, userMatrikelnummer, userLanguages})) -
Name -
^{const (const (nameHtml userDisplayName userSurname))} -
Identifikation -
#{userIdent} -
E-Mail -
#{userEmail} - $maybe matrnr <- userMatrikelnummer -
Matrikelnummer -
#{matrnr} - $maybe langs <- fmap (view _Wrapped) userLanguages - $if not (null langs) -
Präferierte E-Mail Sprachen - $forall lang <- langs -
#{lang} -
Zeit -
#{rtime} - $maybe referer <- jReferer -
Referer -
- - #{referer} -

+

^{const (const (nameHtml userDisplayName userSurname))} +
Identifikation +
#{userIdent} +
E-Mail +
#{userEmail} + $maybe matrnr <- userMatrikelnummer +
Matrikelnummer +
#{matrnr} + $maybe langs <- fmap (view _Wrapped) userLanguages + $if not (null langs) +
Präferierte E-Mail Sprachen + $forall lang <- langs +
#{lang} +
Zeit +
#{rtime} + $maybe referer <- jReferer +
Referer +
+ + #{referer} +
#{jHelpRequest}