refactor(schedule): remove deprecated Button instances

This commit is contained in:
Sarah Vaupel 2020-10-23 15:01:23 +02:00
parent 2c021d0ae2
commit cb61482b83
3 changed files with 3 additions and 111 deletions

View File

@ -6,7 +6,6 @@ import Import
import Handler.Utils.Schedule.Types.ScheduleEntry as Handler.Utils.Schedule.Types
import Handler.Utils.Schedule.Types.ScheduleOptions as Handler.Utils.Schedule.Types
import Handler.Utils.Schedule.Types.ButtonScheduleOffset as Handler.Utils.Schedule.Types
-- TODO: replace Info types with one joined type and fetch info in one single runDB

View File

@ -1,104 +0,0 @@
module Handler.Utils.Schedule.Types.ButtonScheduleOffset
( ButtonScheduleOffset
, schedOffsetBtn, schedBtnOffset, schedBtnContent
, ButtonScheduleOffsetWeek(..)
)
where
import Import
import Utils.Form
import Handler.Utils.Schedule.Types.ScheduleOptions
class (PathPiece button, Button UniWorX button) => ButtonScheduleOffset button where
schedOffsetBtn :: ScheduleOffset -> Maybe button
schedBtnOffset :: button -> ScheduleOffset
schedBtnContent :: button -> Either UniWorXMessage (Icon, Maybe UniWorXMessage)
--instance ButtonScheduleOffset button => PathPiece button where
-- toPathPiece = toPathPiece . schedBtnOffset
-- fromPathPiece t = case fromPathPiece t of
-- Just offset -> Just $ schedOffsetBtn offset
-- _ -> Nothing
--
--instance ButtonScheduleOffset button => Button UniWorX button where
-- btnClasses = const [BCIsButton, BCScheduleOffset]
-- btnLabel btn = case schedBtnContent btn of
-- Right (ico, Just tip) -> [whamlet| ^{iconTooltipMessage ico tip} |]
-- Right (ico, Nothing ) -> [whamlet| ^{icon ico} |]
-- Left msg -> [whamlet| _{msg} |]
-- where
-- iconTooltipMessage ico tip = iconTooltip [whamlet| _{tip} |] (Just ico) True
data ButtonScheduleOffsetWeek = BtnSOWBackwardWeek
| BtnSOWBackwardDay
| BtnSOWCurrent
| BtnSOWForwardDay
| BtnSOWForwardWeek
deriving (Eq, Ord, Enum, Show, Read, Generic, Typeable)
instance Bounded ButtonScheduleOffsetWeek where
minBound = BtnSOWBackwardWeek
maxBound = BtnSOWForwardWeek
instance Finite ButtonScheduleOffsetWeek
instance Universe ButtonScheduleOffsetWeek
instance PathPiece ButtonScheduleOffsetWeek where
toPathPiece BtnSOWCurrent = toPathPiece ScheduleOffsetNone
toPathPiece btn = toPathPiece $ ScheduleOffsetDays d where
d = case btn of
BtnSOWBackwardWeek -> (-7)
BtnSOWBackwardDay -> (-1)
BtnSOWForwardDay -> 1
BtnSOWForwardWeek -> 7
_ -> 0
fromPathPiece t = case (fromPathPiece :: Text -> Maybe ScheduleOffset) t of
Just ScheduleOffsetNone -> Just BtnSOWCurrent
Just (ScheduleOffsetDays d) -> case d of
(-7) -> Just BtnSOWBackwardWeek
(-1) -> Just BtnSOWBackwardDay
0 -> Just BtnSOWCurrent
1 -> Just BtnSOWForwardDay
7 -> Just BtnSOWForwardWeek
_ -> Nothing
_ -> Nothing
instance Button UniWorX ButtonScheduleOffsetWeek where
btnClasses = const [BCIsButton, BCScheduleOffset]
btnLabel btn = [whamlet| ^{iconTooltipMessage ico tip} |] where
(ico, tip) = case btn of
BtnSOWBackwardWeek -> (IconFastBackward , MsgScheduleOffsetWeekBackwardWeek)
BtnSOWBackwardDay -> (IconBackward , MsgScheduleOffsetWeekBackwardDay )
BtnSOWCurrent -> (IconCurrent , MsgScheduleOffsetWeekCurrent )
BtnSOWForwardDay -> (IconForward , MsgScheduleOffsetWeekForwardDay )
BtnSOWForwardWeek -> (IconFastForward , MsgScheduleOffsetWeekForwardWeek )
iconTooltipMessage i m = iconTooltip [whamlet| _{m} |] (Just i) True
instance ButtonScheduleOffset ButtonScheduleOffsetWeek where
schedOffsetBtn ScheduleOffsetNone = Just BtnSOWCurrent
schedOffsetBtn (ScheduleOffsetDays d) = case d of
(-7) -> Just BtnSOWBackwardWeek
(-1) -> Just BtnSOWBackwardDay
0 -> Just BtnSOWCurrent
1 -> Just BtnSOWForwardDay
7 -> Just BtnSOWForwardWeek
_ -> Nothing
schedBtnOffset BtnSOWCurrent = ScheduleOffsetNone
schedBtnOffset btn = ScheduleOffsetDays $ case btn of
BtnSOWBackwardWeek -> (-7)
BtnSOWBackwardDay -> (-1)
BtnSOWForwardDay -> 1
BtnSOWForwardWeek -> 7
_ -> 0
schedBtnContent btn = Right $ case btn of
BtnSOWBackwardWeek -> (IconFastBackward , Just MsgScheduleOffsetWeekBackwardWeek)
BtnSOWBackwardDay -> (IconBackward , Just MsgScheduleOffsetWeekBackwardDay )
BtnSOWCurrent -> (IconCurrent , Just MsgScheduleOffsetWeekCurrent )
BtnSOWForwardDay -> (IconForward , Just MsgScheduleOffsetWeekForwardDay )
BtnSOWForwardWeek -> (IconFastForward , Just MsgScheduleOffsetWeekForwardWeek )

View File

@ -21,10 +21,6 @@ instance Universe ScheduleView
derivePathPiece ''ScheduleView (camelToPathPiece' 1) "_"
instance Button UniWorX ScheduleView where
btnClasses ScheduleViewWeek = [BCIsButton, BCScheduleView]
btnLabel ScheduleViewWeek = [whamlet| _{MsgBtnScheduleViewWeek} |]
data ScheduleOffset = ScheduleOffsetNone
| ScheduleOffsetDays Int
@ -32,6 +28,7 @@ data ScheduleOffset = ScheduleOffsetNone
derivePathPiece ''ScheduleOffset (camelToPathPiece' 1) "_"
data ScheduleOptionsAction = ScheduleSetView
| ScheduleSetOffset Int -- TODO: use ScheduleOffset instead of Int
| ScheduleSetDefault
@ -39,6 +36,7 @@ data ScheduleOptionsAction = ScheduleSetView
derivePathPiece ''ScheduleOptionsAction (camelToPathPiece' 1) "_"
data ScheduleOptions = ScheduleOptions
{ scheduleView :: ScheduleView
, scheduleOffset :: ScheduleOffset
@ -55,8 +53,7 @@ instance Button UniWorX ScheduleOptions where
ScheduleSetView -> case scheduleView of
ScheduleViewWeek -> [whamlet| _{MsgScheduleViewWeek} |]
ScheduleSetOffset d -> case scheduleView of
ScheduleViewWeek -> let iconTooltipMessage i m = iconTooltip [whamlet| _{m} |] (Just i) True
in case d of
ScheduleViewWeek -> let iconTooltipMessage i m = iconTooltip [whamlet| _{m} |] (Just i) True in case d of
(-7) -> [whamlet| ^{iconTooltipMessage IconFastBackward MsgScheduleOffsetWeekBackwardWeek} |]
(-1) -> [whamlet| ^{iconTooltipMessage IconBackward MsgScheduleOffsetWeekBackwardDay} |]
0 -> [whamlet| ^{iconTooltipMessage IconCurrent MsgScheduleOffsetWeekCurrent} |]