From 68a0f7c56653c3491a3da1c2080f3364aa73e0e3 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 28 Mar 2019 12:06:50 +0100 Subject: [PATCH] Cleanup buttonForm & remove duplicate identifyForm calls --- src/Handler/Users.hs | 4 ++-- src/Handler/Utils/Form.hs | 14 -------------- src/Utils/Form.hs | 13 ++++++++++++- templates/default-layout.lucius | 6 +++--- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/Handler/Users.hs b/src/Handler/Users.hs index 4a1b72790..bfad22373 100644 --- a/src/Handler/Users.hs +++ b/src/Handler/Users.hs @@ -216,7 +216,7 @@ postAdminUserR uuid = do let heading = [whamlet|_{MsgAccessRightsFor} ^{nameWidget userDisplayName userSurname}|] -- Delete Button needed in data-delete - (btnWgt, btnEnctype) <- generateFormPost (buttonForm :: Form ButtonDelete) + (btnWgt, btnEnctype) <- generateFormPost (identifyForm FIDUserDelete $ buttonForm :: Form ButtonDelete) let btnForm = wrapForm btnWgt def { formAction = Just $ SomeRoute $ AdminUserDeleteR uuid , formEncoding = btnEnctype @@ -231,7 +231,7 @@ postAdminUserR uuid = do postAdminUserDeleteR :: CryptoUUIDUser -> Handler Html postAdminUserDeleteR uuid = do uid <- decrypt uuid - ((btnResult,_), _) <- runFormPost (buttonForm :: Form ButtonDelete) + ((btnResult,_), _) <- runFormPost (identifyForm FIDUserDelete $ buttonForm :: Form ButtonDelete) case btnResult of (FormSuccess BtnDelete) -> do User{..} <- runDB $ get404 uid diff --git a/src/Handler/Utils/Form.hs b/src/Handler/Utils/Form.hs index 550831f38..932044f62 100644 --- a/src/Handler/Utils/Form.hs +++ b/src/Handler/Utils/Form.hs @@ -138,20 +138,6 @@ linkButton lbl cls url = do |] --- buttonForm :: (Button UniWorX a, Finite a) => Markup -> MForm (HandlerT UniWorX IO) (FormResult a, Widget) -buttonForm :: (Button UniWorX a, Finite a) => Form a -buttonForm = identifyForm FIDbuttonForm buttonFormAux -- TODO: distinguish diffent buttons despite @disambiguateButtons@ - where - buttonFormAux csrf = do - (res, ($ []) -> fViews) <- aFormToForm . disambiguateButtons $ combinedButtonFieldF "" - return (res, [whamlet| - $newline never - #{csrf} - $forall bView <- fViews - ^{fvInput bView} - |]) - - ------------ -- Fields -- ------------ diff --git a/src/Utils/Form.hs b/src/Utils/Form.hs index 7efe94bb7..4ebf3d1bb 100644 --- a/src/Utils/Form.hs +++ b/src/Utils/Form.hs @@ -179,8 +179,8 @@ data FormIdentifier | FIDCourseRegister | FIDuserRights | FIDcUserNote - | FIDbuttonForm | FIDAdminDemo + | FIDUserDelete deriving (Eq, Ord, Read, Show) instance PathPiece FormIdentifier where @@ -347,6 +347,17 @@ submitButtonView = do fieldView bField btnId "" mempty (Right BtnSubmit) False +buttonForm :: (Button site a, Finite a) => Html -> MForm (HandlerT site IO) (FormResult a, WidgetT site IO ()) +buttonForm csrf = do + (res, ($ []) -> fViews) <- aFormToForm . disambiguateButtons $ combinedButtonFieldF "" + return (res, [whamlet| + $newline never + #{csrf} + $forall bView <- fViews + ^{fvInput bView} + |]) + + ------------------- -- Custom Fields -- ------------------- diff --git a/templates/default-layout.lucius b/templates/default-layout.lucius index 60cf591d7..e1ddbb2bd 100644 --- a/templates/default-layout.lucius +++ b/templates/default-layout.lucius @@ -535,10 +535,10 @@ section { margin-top: 20px; padding-top: 20px; } -} -section:last-of-type { - border-bottom: none; + &:last-of-type { + border-bottom: none; + } } .pseudonym {