refactor(schedule): join view and offset params

This commit is contained in:
Sarah Vaupel 2020-09-18 14:49:27 +02:00
parent d7366652bf
commit 7241afd9d2
3 changed files with 10 additions and 13 deletions

View File

@ -16,8 +16,9 @@ postScheduleR = do
uid <- requireAuthId
-- TODO: local instead of global get params?
mView <- lookupGlobalGetParam GetScheduleView
mOffset <- lookupGlobalGetParam GetScheduleOffset
mOptions <- lookupGlobalGetParam GetScheduleOptions
$logInfoS "SCHEDULE" $ "encountered param: " <> tshow mOptions
let
-- TODO: persist default schedule view in user settings, lookup default and choose schedule accordingly
@ -29,10 +30,10 @@ postScheduleR = do
}
currentScheduleView :: ScheduleView
currentScheduleView = fromMaybe (scheduleView defaultScheduleOptions) mView
currentScheduleView = scheduleView $ fromMaybe defaultScheduleOptions mOptions
currentScheduleOffset :: ScheduleOffset
currentScheduleOffset = fromMaybe (scheduleOffset defaultScheduleOptions) mOffset
currentScheduleOffset = scheduleOffset $ fromMaybe defaultScheduleOptions mOptions
offsetFromWeekBtn :: ButtonScheduleOffsetWeek -> ScheduleOffset
offsetFromWeekBtn btn = case schedBtnOffset btn of
@ -42,7 +43,7 @@ postScheduleR = do
scheduleOptionsForm :: Html -> MForm (HandlerFor UniWorX) (FormResult ScheduleOptions, Widget)
scheduleOptionsForm csrf = do
(viewRess, viewWidgets) <- fmap unzip . for (universeF :: [ScheduleView]) $ \sView ->
mopt (buttonField sView) ("" { fsName = Just $ toPathPiece GetScheduleView
mopt (buttonField sView) ("" { fsName = Just $ toPathPiece GetScheduleOptions
, fsAttrs = if sView == currentScheduleView then [("disabled","")] else mempty
}) Nothing
viewRes <- if
@ -66,7 +67,7 @@ postScheduleR = do
_ -> mempty
(offsetRess, offsetWidgets) <- fmap unzip . for offsetBtns $ \btn ->
mopt (buttonField btn) ("" { fsName = Just $ toPathPiece GetScheduleOffset
mopt (buttonField btn) ("" { fsName = Just $ toPathPiece GetScheduleOptions
, fsAttrs = if offsetFromWeekBtn btn == currentScheduleOffset then [("disabled","")] else mempty
}) Nothing

View File

@ -18,9 +18,6 @@ instance Bounded ScheduleView where
instance Finite ScheduleView
instance Universe ScheduleView
deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2
} ''ScheduleView
derivePathPiece ''ScheduleView (camelToPathPiece' 2) "-"
instance Button UniWorX ScheduleView where
@ -32,9 +29,6 @@ data ScheduleOffset = ScheduleOffsetNone
| ScheduleOffsetDays Int
deriving (Eq, Ord, Show, Read, Generic, Typeable)
deriveJSON defaultOptions
{ constructorTagModifier = camelToPathPiece' 2
} ''ScheduleOffset
derivePathPiece ''ScheduleOffset (camelToPathPiece' 2) "-"
@ -43,3 +37,5 @@ data ScheduleOptions = ScheduleOptions
, scheduleOffset :: ScheduleOffset
}
deriving (Eq, Ord, Show, Read, Generic, Typeable)
derivePathPiece ''ScheduleOptions (camelToPathPiece' 2) "--"

View File

@ -22,7 +22,7 @@ import Control.Monad.Trans.Maybe (MaybeT(..))
data GlobalGetParam = GetLang | GetReferer | GetBearer | GetRecipient | GetCsvExampleData | GetDryRun
| GetScheduleView | GetScheduleOffset
| GetScheduleOptions
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
deriving anyclass (Universe, Finite)