refactor(schedule): join view and offset params
This commit is contained in:
parent
d7366652bf
commit
7241afd9d2
@ -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
|
||||
|
||||
|
||||
@ -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) "--"
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user