orePlayCommon/app/views/layout/header.scala.html
@*
The main header displayed on each layout.
*@
@import controllers.project.{routes => projectRoutes}
@import controllers.sugar.Requests.OreRequest
@import ore.OreConfig
@import ore.permission.Permission
@import util.syntax._
@(authEnabled: Boolean = true)(implicit messages: Messages, request: OreRequest[_], config: OreConfig)
@tooltip(title: String) = @{
Html("data-toggle=\"tooltip\" data-placement=\"bottom\" title=\"" + title + "\"")
}
<nav id="topbar" class="navbar-main navbar-inverse">
<div class="container">
<!-- Left navbar -->
<div id="sp-logo-container">
<a class="logo" href="@routes.Application.showHome(Nil, None, None, None, None, None, None)">
<img src="@config.sponge.logo">
<span>@messages("general.projectName")</span>
<i class="fas fa-fw fa-chevron-down"></i>
</a>
<div id="sp-logo-menu">
<ul id="sp-logo-dropdown">
<li><a href="https://www.spongepowered.org">
<i class="fa-fw fas fa-home"></i>@messages("general.home")
</a></li>
<li><a href="https://forums.spongepowered.org">
<i class="fa-fw fas fa-comments"></i>@messages("general.forums")
</a></li>
<li><a href="https://github.com/SpongePowered">
<i class="fa-fw fas fa-code"></i>@messages("general.code")
</a></li>
<li><a href="https://docs.spongepowered.org">
<i class="fa-fw fas fa-book"></i>@messages("general.docs")
</a></li>
<li><a href="https://jd.spongepowered.org">
<i class="fa-fw fas fa-graduation-cap"></i>@messages("general.javadocs")
</a></li>
<li class="active"><a href="@routes.Application.showHome(Nil, None, None, None, None, None, None)">
<img src="https://spongepowered.org/assets/img/icons/ore.svg" alt="" class="fa-fw ore-nav">@messages("general.plugins") (@messages("general.appName"))
</a></li>
<li><a href="https://www.spongepowered.org/downloads">
<i class="fa-fw fas fa-download"></i>@messages("general.getsponge")
</a></li>
<li><a href="https://www.spongepowered.org/chat">
<i class="fa-fw fas fa-comment"></i>@messages("general.irc")
</a></li>
</ul>
</div>
</div>
<!-- Right navbar -->
@if(authEnabled) {
<ul class="nav navbar-nav navbar-collapse collapse navbar-right">
@request.headerData.currentUser.map { cu =>
<li class="dropdown nav-icon new-controls">
<a href="#" class="drop-down-toggle" data-toggle="dropdown">
<i class="icon fas fa-plus"></i>
<span class="caret"></span>
</a>
<ul class="user-dropdown dropdown-menu" aria-label="Create new…">
<li>
<a href="@projectRoutes.Projects.showCreator()">
<i class="fas fa-book fa-fw mr-1"></i>
<span>@messages("project.create")</span>
</a>
<a href="@routes.Organizations.showCreator()">
<i class="fas fa-users fa-fw mr-1"></i>
<span>@messages("org.create")</span>
</a>
</li>
</ul>
</li>
<li class="nav-icon authors-icon" @tooltip(messages("project.viewAuthors"))>
<a href="@routes.Users.showAuthors(None, None)">
<i class="icon fas fa-users"></i>
</a>
</li>
@if(request.headerData.globalPerm(Permission.IsStaff)) {
<li class="nav-icon staff-icon" @tooltip(messages("project.viewStaff"))>
<a href="@routes.Users.showStaff(None, None)">
<i class="icon fas fa-user-tie"></i>
</a>
</li>
}
@* Show user controls *@
<li class="dropdown user-controls nav-icon">
<a href="#" class="drop-down-toggle user-toggle" data-toggle="dropdown">
@if(request.headerData.hasNotice) {
<span class="unread"></span>
}
<img height="32" width="32" class="user-avatar" src="@cu.avatarUrl" />
<span class="caret"></span>
</a>
<ul class="user-dropdown dropdown-menu" aria-label="@messages("aria.dropdown.menu", 1)">
<li>
<a href="@routes.Users.showProjects(cu.name, None)">
<i class="fas fa-user mr-1"></i>
<span>@cu.name</span>
</a>
</li>
<li>
<a href="@routes.Users.showNotifications(None, None)">
<i class="fas fa-bell mr-1"></i>
<span>
@messages("notification.plural")
@if(request.headerData.hasUnreadNotifications) {
<span class="unread"></span>
}
</span>
</a>
</li>
@if(request.headerData.globalPerm(Permission.ModNotesAndFlags)) {
<li>
<a href="@routes.Application.showFlags()">
<i class="fas fa-flag mr-1"></i>
<span>
@messages("project.flag.plural")
@if(request.headerData.unresolvedFlags) {
<span class="unread"></span>
}
</span>
</a>
</li>
}
@if(request.headerData.globalPerm(Permission.ModNotesAndFlags)) {
<li>
<a href="@routes.Application.showProjectVisibility()">
<i class="fas fa-thumbs-up mr-1"></i>
<span>
Project approvals
@if(request.headerData.hasProjectApprovals) {
<span class="unread"></span>
}
</span>
</a>
</li>
}
@if(request.headerData.globalPerm(Permission.Reviewer)) {
<li>
<a href="@routes.Application.showQueue()">
<i class="far fa-thumbs-up mr-1"></i>
<span>
@messages("user.queue")
@if(request.headerData.hasReviewQueue) {
<span class="unread"></span>
}
</span>
</a>
</li>
}
@if(request.headerData.globalPerm(Permission.ViewStats)) {
<li>
<a href="@routes.Application.showStats(None, None)">
<i class="fas fa-chart-area mr-1"></i>
<span>
@messages("user.stats")
</span>
</a>
</li>
}
@if(request.headerData.globalPerm(Permission.ViewHealth)) {
<li>
<a href="@routes.Application.showHealth()">
<i class="fas fa-heartbeat mr-1"></i>
<span>
@messages("admin.health.title")
</span>
</a>
</li>
}
@if(request.headerData.globalPerm(Permission.ViewLogs)) {
<li>
<a href="@routes.Application.showLog(None, None, None, None, None, None, None)">
<i class="fas fa-list mr-1"></i>
<span>
@messages("admin.log.title")
</span>
</a>
</li>
}
<li role="separator" class="divider"></li>
<li>
<a href="@routes.Users.logOut()">
<i class="fas fa-sign-out-alt mr-1"></i>
<span>@messages("general.signout")</span>
</a>
</li>
</ul>
</li>
}.getOrElse {
<li>
<div class="btn-group-login">
<a href="@routes.Users.signUp()"
class="btn btn-primary navbar-btn">@messages("general.signup")</a>
<a href="@routes.Users.logIn(None, None, Some(request.path))"
class="btn btn-primary navbar-btn">@messages("general.login")</a>
</div>
</li>
}
</ul>
}
</div>
</nav>