From 097e0c45e744e08361bed1d74282a115c9ce61b6 Mon Sep 17 00:00:00 2001 From: SJost Date: Tue, 26 Jun 2018 12:05:19 +0200 Subject: [PATCH] Profile: theme select form available, but still buggy somehow --- messages/de.msg | 2 ++ src/Handler/Profile.hs | 33 +++++++++++++++++++++++++-------- templates/profile.hamlet | 1 + 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/messages/de.msg b/messages/de.msg index 714e9b046..c007a0a72 100644 --- a/messages/de.msg +++ b/messages/de.msg @@ -77,6 +77,8 @@ Theme: Oberflächen Design Favoriten: Anzahl gespeicherter Favoriten Plugin: Plugin Ident: Identifizierung +Settings: Individuelle Benutzereinstellungen +SettingsUpdate: Einstellungen wurden gespeichert. SheetExercise: Aufgabenstellung SheetHint: Hinweise diff --git a/src/Handler/Profile.hs b/src/Handler/Profile.hs index ee6ddab04..74a7cf051 100644 --- a/src/Handler/Profile.hs +++ b/src/Handler/Profile.hs @@ -39,9 +39,24 @@ makeSettingForm template = identForm FIDsettings $ \html -> do getProfileR :: Handler Html getProfileR = do - (uid, User{..}) <- requireAuthPair - -- mr <- getMessageRender - (admin_rights,lecturer_rights,lecture_owner,lecture_corrector,participant,studies) <- runDB $ (,,,,,) <$> + (uid, User{..}) <- requireAuthPair + let settingsTemplate = Just $ SettingsForm + { stgMaxFavourties = userMaxFavourites + , stgTheme = userTheme + } + ((res,formWidget), formEnctype) <- runFormPost $ makeSettingForm settingsTemplate + case res of + (FormSuccess SettingsForm{..}) -> do + runDB $ update uid [ UserMaxFavourites =. userMaxFavourites + , UserTheme =. userTheme + ] + addMessage "info" $ toHtml $ "LOG:" ++ display userMaxFavourites ++ display userTheme + addMessageI "info" $ MsgSettingsUpdate + (FormFailure msgs) -> forM_ msgs $ (addMessage "warning") . toHtml + _ -> return () + + + (admin_rights,lecturer_rights,lecture_owner,lecture_corrector,participant,studies) <- runDB $ (,,,,,) <$> (E.select $ E.from $ \(adright `E.InnerJoin` school) -> do E.where_ $ adright ^. UserAdminUser E.==. E.val uid E.on $ adright ^. UserAdminSchool E.==. school ^. SchoolId @@ -81,11 +96,13 @@ getProfileR = do ,studyfeat ^. StudyFeaturesType ,studyfeat ^. StudyFeaturesSemester) ) - - defaultLayout $ do - setTitle . toHtml $ userIdent <> "'s User page" - $(widgetFile "profile") - $(widgetFile "dsgvDisclaimer") + let formText = Just MsgSettings + actionUrl = ProfileR + settingsForm = $(widgetFile "formPageI18n") + defaultLayout $ do + setTitle . toHtml $ userIdent <> "'s User page" + $(widgetFile "profile") + $(widgetFile "dsgvDisclaimer") postProfileR :: Handler Html postProfileR = do diff --git a/templates/profile.hamlet b/templates/profile.hamlet index 3cf7d8284..f81cfb2a8 100644 --- a/templates/profile.hamlet +++ b/templates/profile.hamlet @@ -76,3 +76,4 @@ #{display tid} - #{csh} seit #{display regSince} + ^{settingsForm}