feat: restore & improve navbar contents
This commit is contained in:
parent
18ae75890a
commit
51fc6dc541
@ -67,7 +67,6 @@ export class NavHeaderContainerUtil {
|
||||
|
||||
close() {
|
||||
this.radioButton.checked = false;
|
||||
this.closeButton.checked = true;
|
||||
this.throttleUpdateWasOpen();
|
||||
}
|
||||
|
||||
|
||||
@ -1703,7 +1703,7 @@ siteLayout' headingOverride widget = do
|
||||
-- ^ highlight last route in breadcrumbs, favorites taking priority
|
||||
highlight = (highR ==) . Just . urlRoute
|
||||
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
|
||||
highlightNav = (||) <$> navForceActive <*> highlight
|
||||
favouriteTerms :: [TermIdentifier]
|
||||
@ -2299,88 +2299,152 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
|
||||
, 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 :: _
|
||||
pageActions _ = return []
|
||||
-- pageActions (NewsR) =
|
||||
-- [
|
||||
-- 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
|
||||
-- [ MenuItem
|
||||
-- { menuItemType = PageActionPrime
|
||||
-- , menuItemLabel = MsgMenuOpenCourses
|
||||
-- , menuItemIcon = Nothing
|
||||
|
||||
@ -75,6 +75,11 @@ data Icon
|
||||
| IconMenuProfile
|
||||
| IconMenuLogin | IconMenuLogout
|
||||
| IconBreadcrumbsHome
|
||||
| IconMenuExtra
|
||||
| IconMenuCourseList
|
||||
| IconMenuCorrections
|
||||
| IconMenuExams
|
||||
| IconMenuAdmin
|
||||
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Typeable)
|
||||
|
||||
iconText :: Icon -> Text
|
||||
@ -126,6 +131,11 @@ iconText = \case
|
||||
IconMenuLogin -> "sign-in-alt"
|
||||
IconMenuLogout -> "sign-out-alt"
|
||||
IconBreadcrumbsHome -> "home"
|
||||
IconMenuExtra -> "ellipsis-h"
|
||||
IconMenuCourseList -> "graduation-cap"
|
||||
IconMenuCorrections -> "check"
|
||||
IconMenuExams -> "poll-h"
|
||||
IconMenuAdmin -> "screwdriver"
|
||||
|
||||
instance Universe Icon
|
||||
instance Finite Icon
|
||||
|
||||
Loading…
Reference in New Issue
Block a user