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