diff --git a/src/Handler/Schedule.hs b/src/Handler/Schedule.hs index 27fc3d3f6..d480e17d6 100644 --- a/src/Handler/Schedule.hs +++ b/src/Handler/Schedule.hs @@ -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 diff --git a/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs b/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs index 3b03e386d..3f9f2f55a 100644 --- a/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs +++ b/src/Handler/Utils/Schedule/Types/ScheduleOptions.hs @@ -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) "--" diff --git a/src/Utils/Parameters.hs b/src/Utils/Parameters.hs index dbe9c1cb4..f313d6bfb 100644 --- a/src/Utils/Parameters.hs +++ b/src/Utils/Parameters.hs @@ -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)