fix(build): workaround non modal form result handler

This commit is contained in:
Steffen Jost 2024-05-06 09:42:17 +02:00
parent 21273e361a
commit 2fbd28154c

View File

@ -719,17 +719,30 @@ postAdminAvsUserR uuid = do
runSwitchFrom cname cid = do
((fres, fraw), fenc) <- runFormPost $ switchCompanyForm uuid cid
-- formResultModal :: (MonadHandler m, RedirectUrl (HandlerSite m) route) => FormResult a -> route -> (a -> WriterT [Message] m ()) -> m ()
formResultModal fres (AdminAvsUserR uuid) (\UserAvsSwitchCompanyData{..} -> do
problems <- lift . runDB $ do
(usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany
update uid usrUp
mapM_ reportAdminProblem problems
return problems
-- todo tell all problems as well
forM_ problems (\p -> tell . pure =<< messageI Error (text2message $ tshow p)) -- todo: better display of errors
let ok = if null problems then Success else Error
tell . pure =<< messageI ok (MsgUserAvsCompanySwitched cname)
)
-- formResultModal fres (AdminAvsUserR uuid) (\UserAvsSwitchCompanyData{..} -> do
-- problems <- lift . runDB $ do
-- (usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany
-- update uid usrUp
-- mapM_ reportAdminProblem problems
-- return problems
-- -- todo tell all problems as well
-- forM_ problems (\p -> tell . pure =<< messageI Error (text2message $ tshow p)) -- todo: better display of errors
-- let ok = if null problems then Success else Error
-- tell . pure =<< messageI ok (MsgUserAvsCompanySwitched cname)
-- )
let procRes (UserAvsSwitchCompanyData{..}) = do
$logInfoS "AVS" ("Switch company result " <> tshow fres)
problems <- runDB $ do
(usrUp, problems) <- switchAvsUserCompany True False uid uaaCompany
update uid usrUp
mapM_ reportAdminProblem problems
return problems
forM_ problems (\p -> do
$logErrorS "AVS" $ "Switch company problem: " <> tshow p
addMessage Error (text2Html $ tshow p)) -- todo: better display of errors
let ok = if null problems then Success else Error
addMessageI ok (MsgUserAvsCompanySwitched cname)
formResult fres procRes
let fwgt = wrapForm fraw def{ formAction = Just $ SomeRoute (AdminAvsUserR uuid), formEncoding = fenc, formSubmit = FormNoSubmit, formAttrs = [ asyncSubmitAttr | isModal ]}
return fwgt