refactor(schedule): use ScheduleOffset in ScheduleOptionsAction

This commit is contained in:
Sarah Vaupel 2020-10-24 19:40:17 +02:00
parent ae0e3f797f
commit db7238da5e
3 changed files with 16 additions and 14 deletions

View File

@ -67,7 +67,7 @@ postScheduleR = do
{ scheduleOffset = case sNewOffset of
ScheduleOffsetNone -> ScheduleOffsetNone
_ -> (scheduleOffset currentScheduleOptions) `addOffset` sNewOffset
, scheduleOptionsAction = ScheduleSetOffset (offsetInDays sNewOffset)
, scheduleOptionsAction = ScheduleSetOffset sNewOffset
})
_ -> mempty

View File

@ -6,7 +6,7 @@ import Import
data ScheduleEntry = ScheduleCourseEvent
{ sceCourse :: Entity Course -- TODO: just course?
{ sceCourse :: Entity Course
, sceType :: CourseEventType
, sceRoom :: CourseEventRoom
, sceOccurrence :: Either OccurrenceException OccurrenceSchedule

View File

@ -30,7 +30,7 @@ derivePathPiece ''ScheduleOffset (camelToPathPiece' 1) "_"
data ScheduleOptionsAction = ScheduleSetView
| ScheduleSetOffset Int -- TODO: use ScheduleOffset instead of Int
| ScheduleSetOffset ScheduleOffset
| ScheduleSetDefault
deriving (Eq, Ord, Show, Read, Generic, Typeable)
@ -49,14 +49,16 @@ derivePathPiece ''ScheduleOptions (camelToPathPiece' 1) "__"
instance Button UniWorX ScheduleOptions where
btnClasses = const [BCIsButton]
btnLabel ScheduleOptions{..} = case scheduleOptionsAction of
ScheduleSetDefault -> [whamlet| _{MsgScheduleReset} |]
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
(-7) -> [whamlet| ^{iconTooltipMessage IconFastBackward MsgScheduleOffsetWeekBackwardWeek} |]
(-1) -> [whamlet| ^{iconTooltipMessage IconBackward MsgScheduleOffsetWeekBackwardDay} |]
0 -> [whamlet| ^{iconTooltipMessage IconCurrent MsgScheduleOffsetWeekCurrent} |]
1 -> [whamlet| ^{iconTooltipMessage IconForward MsgScheduleOffsetWeekForwardDay} |]
7 -> [whamlet| ^{iconTooltipMessage IconFastForward MsgScheduleOffsetWeekForwardWeek} |]
_ -> [whamlet| #{tshow d} |]
ScheduleSetDefault -> [whamlet| _{MsgScheduleReset} |]
ScheduleSetView -> case scheduleView of
ScheduleViewWeek -> [whamlet| _{MsgScheduleViewWeek} |]
ScheduleSetOffset o -> case scheduleView of
ScheduleViewWeek -> let iconTooltipMessage i m = iconTooltip [whamlet| _{m} |] (Just i) True in case o of
ScheduleOffsetNone -> [whamlet| ^{iconTooltipMessage IconCurrent MsgScheduleOffsetWeekCurrent} |]
ScheduleOffsetDays d -> case d of
(-7) -> [whamlet| ^{iconTooltipMessage IconFastBackward MsgScheduleOffsetWeekBackwardWeek} |]
(-1) -> [whamlet| ^{iconTooltipMessage IconBackward MsgScheduleOffsetWeekBackwardDay} |]
0 -> [whamlet| ^{iconTooltipMessage IconCurrent MsgScheduleOffsetWeekCurrent} |]
1 -> [whamlet| ^{iconTooltipMessage IconForward MsgScheduleOffsetWeekForwardDay} |]
7 -> [whamlet| ^{iconTooltipMessage IconFastForward MsgScheduleOffsetWeekForwardWeek} |]
_ -> [whamlet| #{tshow d} |]