diff --git a/src/Handler/Schedule.hs b/src/Handler/Schedule.hs index bf9a724ab..e1918784e 100644 --- a/src/Handler/Schedule.hs +++ b/src/Handler/Schedule.hs @@ -30,21 +30,16 @@ postScheduleR = do currentScheduleOptions :: ScheduleOptions currentScheduleOptions = fromMaybe defaultScheduleOptions mOptions - currentScheduleView :: ScheduleView - currentScheduleView = scheduleView currentScheduleOptions - - currentScheduleOffset :: ScheduleOffset - currentScheduleOffset = scheduleOffset currentScheduleOptions - - currentScheduleOptionsAction :: ScheduleOptionsAction - currentScheduleOptionsAction = scheduleOptionsAction currentScheduleOptions - scheduleOptionsForm :: Html -> MForm (HandlerFor UniWorX) (FormResult ScheduleOptions, Widget) scheduleOptionsForm csrf = do - (viewRess, viewWidgets) <- fmap unzip . for (universeF :: [ScheduleView]) $ \scheduleView -> - mopt (buttonField ScheduleOptions{scheduleOffset=ScheduleOffsetNone,scheduleOptionsAction=ScheduleSetView,..}) + (viewRess, viewWidgets) <- fmap unzip . for (universeF :: [ScheduleView]) $ \sView -> + mopt (buttonField ScheduleOptions + { scheduleView = sView + , scheduleOffset = ScheduleOffsetNone + , scheduleOptionsAction = ScheduleSetView + }) ("" { fsName = Just $ toPathPiece GetScheduleOptions - , fsAttrs = if scheduleView == currentScheduleView then [("disabled","")] else mempty + , fsAttrs = if sView == scheduleView currentScheduleOptions then [("disabled","")] else mempty }) Nothing viewRes <- if -- TODO: ignoring FormFailures for now @@ -53,16 +48,13 @@ postScheduleR = do -- $logInfoS "SCHEDULE-VIEW" $ "encountered error(s): " <> tshow errs -- (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs | otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> viewRess) of - --[sView] -> return $ FormSuccess $ scheduleView sView [ScheduleOptions{scheduleView=sView}] -> return $ FormSuccess $ ScheduleOptions { scheduleView = sView , scheduleOffset = ScheduleOffsetNone , scheduleOptionsAction = ScheduleSetView } - --_ -> return $ FormSuccess currentScheduleView - _ -> return $ FormSuccess $ ScheduleOptions - { scheduleView = currentScheduleView - , scheduleOffset = ScheduleOffsetNone + _ -> return $ FormSuccess $ currentScheduleOptions + { scheduleOffset = ScheduleOffsetNone , scheduleOptionsAction = ScheduleSetView } @@ -73,18 +65,17 @@ postScheduleR = do , ScheduleOffsetNone , ScheduleOffsetDays 1 , ScheduleOffsetDays 7 - ] <&> (\sNewOffset -> ScheduleOptions - { scheduleView = currentScheduleView - , scheduleOffset = case sNewOffset of + ] <&> (\sNewOffset -> currentScheduleOptions + { scheduleOffset = case sNewOffset of ScheduleOffsetNone -> ScheduleOffsetNone - _ -> currentScheduleOffset `addOffset` sNewOffset + _ -> (scheduleOffset currentScheduleOptions) `addOffset` sNewOffset , scheduleOptionsAction = ScheduleSetOffset (offsetInDays sNewOffset) }) _ -> mempty (offsetRess, offsetWidgets) <- fmap unzip . for offsetBtns $ \btn -> mopt (buttonField btn) ("" { fsName = Just $ toPathPiece GetScheduleOptions - , fsAttrs = if offsetInDays (scheduleOffset btn) == offsetInDays currentScheduleOffset then [("disabled","")] else mempty + , fsAttrs = if offsetInDays (scheduleOffset btn) == offsetInDays (scheduleOffset currentScheduleOptions) then [("disabled","")] else mempty }) Nothing offsetRes <- if -- TODO: ignoring FormFailures for now @@ -93,17 +84,11 @@ postScheduleR = do -- $logInfoS "SCHEDULE-OFFSET" $ "encountered error(s): " <> tshow errs -- (return . FormFailure . mconcat . catMaybes . (fmap $ preview _FormFailure) . toNullable) errs | otherwise -> case catMaybes $ catMaybes (formResultToMaybe <$> offsetRess) of - --[offset] -> (return . FormSuccess . scheduleOffset) offset [opt] -> return $ FormSuccess opt - _ -> return $ FormSuccess $ ScheduleOptions - { scheduleView = currentScheduleView - , scheduleOffset = currentScheduleOffset - , scheduleOptionsAction = currentScheduleOptionsAction - } - --_ -> return $ FormSuccess currentScheduleOffset + _ -> return $ FormSuccess currentScheduleOptions let - -- scheduleResult = ScheduleOptions <$> viewRes <*> offsetRes <*> offsetActionRes + -- TODO: work in progress scheduleResult = case (viewRes, offsetRes) of (_, opts@(FormSuccess _)) -> opts (opts@(FormSuccess _), _) -> opts