fix(schedule): reintroduce form failure handling

This commit is contained in:
Sarah Vaupel 2020-10-24 19:29:32 +02:00
parent fe4507cdad
commit ae0e3f797f

View File

@ -42,13 +42,11 @@ postScheduleR = do
, fsAttrs = if sView == scheduleView currentScheduleOptions then [("disabled","")] else mempty , fsAttrs = if sView == scheduleView currentScheduleOptions then [("disabled","")] else mempty
}) Nothing }) Nothing
viewRes <- if viewRes <- if
-- TODO: ignoring FormFailures for now | Just errs <- fromNullable (filter (is _FormFailure) viewRess) -> do
-- | Just errs <- fromNullable (filter (is _FormFailure) viewRess) -> do mapM_ formFailure2Alerts errs
-- mapM_ formFailure2Alerts errs (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs
-- $logInfoS "SCHEDULE-VIEW" $ "encountered error(s): " <> tshow errs
-- (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs
| otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> viewRess) of | otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> viewRess) of
[ScheduleOptions{scheduleView=sView}] -> return $ FormSuccess $ ScheduleOptions [ScheduleOptions{scheduleView=sView}] -> (return . FormSuccess) $ ScheduleOptions
{ scheduleView = sView { scheduleView = sView
, scheduleOffset = ScheduleOffsetNone , scheduleOffset = ScheduleOffsetNone
, scheduleOptionsAction = ScheduleSetView , scheduleOptionsAction = ScheduleSetView
@ -78,17 +76,14 @@ postScheduleR = do
, fsAttrs = if offsetInDays (scheduleOffset btn) == offsetInDays (scheduleOffset currentScheduleOptions) then [("disabled","")] else mempty , fsAttrs = if offsetInDays (scheduleOffset btn) == offsetInDays (scheduleOffset currentScheduleOptions) then [("disabled","")] else mempty
}) Nothing }) Nothing
offsetRes <- if offsetRes <- if
-- TODO: ignoring FormFailures for now | Just errs <- fromNullable (filter (is _FormFailure) offsetRess) -> do
-- | Just errs <- fromNullable (filter (is _FormFailure) offsetRess) -> do mapM_ formFailure2Alerts errs
-- mapM_ formFailure2Alerts errs (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs
-- $logInfoS "SCHEDULE-OFFSET" $ "encountered error(s): " <> tshow errs
-- (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs
| otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> offsetRess) of | otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> offsetRess) of
[opt] -> return $ FormSuccess opt [opt] -> return $ FormSuccess opt
_ -> return $ FormSuccess currentScheduleOptions _ -> return $ FormSuccess currentScheduleOptions
let let
-- TODO: work in progress
scheduleResult = case (viewRes, offsetRes) of scheduleResult = case (viewRes, offsetRes) of
(_, opts@(FormSuccess _)) -> opts (_, opts@(FormSuccess _)) -> opts
(opts@(FormSuccess _), _) -> opts (opts@(FormSuccess _), _) -> opts
@ -99,10 +94,9 @@ postScheduleR = do
((optionsRes, optionsWidget), optionsEnctype) <- runFormGet scheduleOptionsForm ((optionsRes, optionsWidget), optionsEnctype) <- runFormGet scheduleOptionsForm
let schedule <- case optionsRes of
schedule = case optionsRes of FormSuccess ScheduleOptions{scheduleView=ScheduleViewWeek,..} -> return $ weekSchedule uid scheduleOffset
FormSuccess ScheduleOptions{scheduleView=ScheduleViewWeek,..} -> weekSchedule uid scheduleOffset other -> formFailure2Alerts other >> return mempty
_ -> mempty -- TODO: don't swallow errors!
siteLayoutMsg MsgMenuSchedule $ do siteLayoutMsg MsgMenuSchedule $ do
setTitleI MsgMenuSchedule setTitleI MsgMenuSchedule