feat: restore & improve navbar contents
This commit is contained in:
parent
18ae75890a
commit
51fc6dc541
@ -67,7 +67,6 @@ export class NavHeaderContainerUtil {
|
|||||||
|
|
||||||
close() {
|
close() {
|
||||||
this.radioButton.checked = false;
|
this.radioButton.checked = false;
|
||||||
this.closeButton.checked = true;
|
|
||||||
this.throttleUpdateWasOpen();
|
this.throttleUpdateWasOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1703,7 +1703,7 @@ siteLayout' headingOverride widget = do
|
|||||||
-- ^ highlight last route in breadcrumbs, favorites taking priority
|
-- ^ highlight last route in breadcrumbs, favorites taking priority
|
||||||
highlight = (highR ==) . Just . urlRoute
|
highlight = (highR ==) . Just . urlRoute
|
||||||
where crumbs = mcons mcurrentRoute $ view _1 <$> reverse parents
|
where crumbs = mcons mcurrentRoute $ view _1 <$> reverse parents
|
||||||
navItems = map (view _2) favourites ++ toListOf (folded . _1 . _navLink . to urlRoute) nav
|
navItems = map (view _2) favourites ++ toListOf (folded . typesUsing @NavChildren @NavLink . to urlRoute) nav
|
||||||
highR = find (`elem` navItems) . uncurry (++) $ partition (`elem` map (view _2) favourites) crumbs
|
highR = find (`elem` navItems) . uncurry (++) $ partition (`elem` map (view _2) favourites) crumbs
|
||||||
highlightNav = (||) <$> navForceActive <*> highlight
|
highlightNav = (||) <$> navForceActive <*> highlight
|
||||||
favouriteTerms :: [TermIdentifier]
|
favouriteTerms :: [TermIdentifier]
|
||||||
@ -2299,88 +2299,152 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
|
|||||||
, navForceActive = False
|
, navForceActive = False
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
, return NavHeader
|
||||||
|
{ navHeaderRole = NavHeaderPrimary
|
||||||
|
, navIcon = IconMenuCourseList
|
||||||
|
, navLink = NavLink
|
||||||
|
{ navLabel = MsgMenuCourseList
|
||||||
|
, navRoute = CourseListR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
, return NavHeader
|
||||||
|
{ navHeaderRole = NavHeaderPrimary
|
||||||
|
, navIcon = IconMenuCorrections
|
||||||
|
, navLink = NavLink
|
||||||
|
{ navLabel = MsgMenuCorrections
|
||||||
|
, navRoute = CorrectionsR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
, return NavHeader
|
||||||
|
{ navHeaderRole = NavHeaderPrimary
|
||||||
|
, navIcon = IconMenuExams
|
||||||
|
, navLink = NavLink
|
||||||
|
{ navLabel = MsgMenuExamOfficeExams
|
||||||
|
, navRoute = ExamOfficeR EOExamsR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
, return NavHeaderContainer
|
||||||
|
{ navHeaderRole = NavHeaderPrimary
|
||||||
|
, navLabel = SomeMessage MsgAdminHeading
|
||||||
|
, navIcon = IconMenuAdmin
|
||||||
|
, navChildren =
|
||||||
|
[ NavLink
|
||||||
|
{ navLabel = MsgMenuUsers
|
||||||
|
, navRoute = UsersR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuSchoolList
|
||||||
|
, navRoute = SchoolListR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgAdminFeaturesHeading
|
||||||
|
, navRoute = AdminFeaturesR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuMessageList
|
||||||
|
, navRoute = MessageListR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuAdminErrMsg
|
||||||
|
, navRoute = AdminErrMsgR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuAdminTest
|
||||||
|
, navRoute = AdminTestR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
, return NavHeaderContainer
|
||||||
|
{ navHeaderRole = NavHeaderPrimary
|
||||||
|
, navLabel = SomeMessage (mempty :: Text)
|
||||||
|
, navIcon = IconMenuExtra
|
||||||
|
, navChildren =
|
||||||
|
[ NavLink
|
||||||
|
{ navLabel = MsgMenuCourseNew
|
||||||
|
, navRoute = CourseNewR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuExternalExamList
|
||||||
|
, navRoute = EExamListR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuTermShow
|
||||||
|
, navRoute = TermShowR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgMenuAllocationList
|
||||||
|
, navRoute = AllocationListR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
, NavLink
|
||||||
|
{ navLabel = MsgInfoLecturerTitle
|
||||||
|
, navRoute = InfoLecturerR
|
||||||
|
, navAccess' = return True
|
||||||
|
, navType = NavTypeLink { navModal = False }
|
||||||
|
, navQuick = False
|
||||||
|
, navForceActive = False
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgMenuTermShow
|
|
||||||
-- , menuItemIcon = Just "calendar-alt" -- SJ wrote: calendar icon, since Term will be repleaced with TimeTable in the future; arguably Term is more calendar-like than courses anyway!!!
|
|
||||||
-- , menuItemRoute = SomeRoute TermShowR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgMenuCourseList
|
|
||||||
-- , menuItemIcon = Just "graduation-cap"
|
|
||||||
-- , menuItemRoute = SomeRoute CourseListR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgMenuCorrections
|
|
||||||
-- , menuItemIcon = Just "check"
|
|
||||||
-- , menuItemRoute = SomeRoute CorrectionsR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgMenuExamOfficeExams
|
|
||||||
-- , menuItemIcon = Just "poll-h"
|
|
||||||
-- , menuItemRoute = SomeRoute $ ExamOfficeR EOExamsR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgMenuUsers
|
|
||||||
-- , menuItemIcon = Just "users"
|
|
||||||
-- , menuItemRoute = SomeRoute UsersR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True -- Creates a LOOP: (Authorized ==) <$> isAuthorized UsersR False
|
|
||||||
-- }
|
|
||||||
-- , return MenuItem
|
|
||||||
-- { menuItemType = NavbarAside
|
|
||||||
-- , menuItemLabel = MsgAdminHeading
|
|
||||||
-- , menuItemIcon = Just "screwdriver"
|
|
||||||
-- , menuItemRoute = SomeRoute AdminR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- ]
|
|
||||||
|
|
||||||
|
|
||||||
-- pageActions :: (MonadHandler m, HandlerSite m ~ UniWorX) => Route UniWorX -> m [Nav]
|
-- pageActions :: (MonadHandler m, HandlerSite m ~ UniWorX) => Route UniWorX -> m [Nav]
|
||||||
pageActions :: _
|
pageActions :: _
|
||||||
pageActions _ = return []
|
pageActions _ = return []
|
||||||
-- pageActions (NewsR) =
|
-- pageActions (NewsR) =
|
||||||
-- [
|
-- [ MenuItem
|
||||||
-- MenuItem
|
|
||||||
-- { menuItemType = PageActionPrime
|
|
||||||
-- , menuItemLabel = MsgInfoLecturerTitle
|
|
||||||
-- , menuItemIcon = Nothing
|
|
||||||
-- , menuItemRoute = SomeRoute InfoLecturerR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , MenuItem
|
|
||||||
-- { menuItemType = PageActionPrime
|
|
||||||
-- , menuItemLabel = MsgMenuCourseNew
|
|
||||||
-- , menuItemIcon = Just "book"
|
|
||||||
-- , menuItemRoute = SomeRoute CourseNewR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , MenuItem
|
|
||||||
-- { menuItemType = PageActionSecondary
|
|
||||||
-- , menuItemLabel = MsgMenuExternalExamList
|
|
||||||
-- , menuItemIcon = Nothing
|
|
||||||
-- , menuItemRoute = SomeRoute EExamListR
|
|
||||||
-- , menuItemModal = False
|
|
||||||
-- , menuItemAccessCallback' = return True
|
|
||||||
-- }
|
|
||||||
-- , MenuItem
|
|
||||||
-- { menuItemType = PageActionPrime
|
-- { menuItemType = PageActionPrime
|
||||||
-- , menuItemLabel = MsgMenuOpenCourses
|
-- , menuItemLabel = MsgMenuOpenCourses
|
||||||
-- , menuItemIcon = Nothing
|
-- , menuItemIcon = Nothing
|
||||||
|
|||||||
@ -75,6 +75,11 @@ data Icon
|
|||||||
| IconMenuProfile
|
| IconMenuProfile
|
||||||
| IconMenuLogin | IconMenuLogout
|
| IconMenuLogin | IconMenuLogout
|
||||||
| IconBreadcrumbsHome
|
| IconBreadcrumbsHome
|
||||||
|
| IconMenuExtra
|
||||||
|
| IconMenuCourseList
|
||||||
|
| IconMenuCorrections
|
||||||
|
| IconMenuExams
|
||||||
|
| IconMenuAdmin
|
||||||
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Typeable)
|
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Typeable)
|
||||||
|
|
||||||
iconText :: Icon -> Text
|
iconText :: Icon -> Text
|
||||||
@ -126,6 +131,11 @@ iconText = \case
|
|||||||
IconMenuLogin -> "sign-in-alt"
|
IconMenuLogin -> "sign-in-alt"
|
||||||
IconMenuLogout -> "sign-out-alt"
|
IconMenuLogout -> "sign-out-alt"
|
||||||
IconBreadcrumbsHome -> "home"
|
IconBreadcrumbsHome -> "home"
|
||||||
|
IconMenuExtra -> "ellipsis-h"
|
||||||
|
IconMenuCourseList -> "graduation-cap"
|
||||||
|
IconMenuCorrections -> "check"
|
||||||
|
IconMenuExams -> "poll-h"
|
||||||
|
IconMenuAdmin -> "screwdriver"
|
||||||
|
|
||||||
instance Universe Icon
|
instance Universe Icon
|
||||||
instance Finite Icon
|
instance Finite Icon
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user