summaryrefslogtreecommitdiffstats
path: root/templates/base/head_navbar.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'templates/base/head_navbar.tmpl')
-rw-r--r--templates/base/head_navbar.tmpl205
1 files changed, 205 insertions, 0 deletions
diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl
new file mode 100644
index 0000000..ba17222
--- /dev/null
+++ b/templates/base/head_navbar.tmpl
@@ -0,0 +1,205 @@
+{{$notificationUnreadCount := 0}}
+{{if and .IsSigned .NotificationUnreadCount}}
+ {{$notificationUnreadCount = call .NotificationUnreadCount}}
+{{end}}
+
+<nav id="navbar" aria-label="{{ctx.Locale.Tr "aria.navbar"}}">
+ <div class="navbar-left ui secondary menu">
+ <!-- the logo -->
+ <a class="item" id="navbar-logo" href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}">
+ <img width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}" aria-hidden="true">
+ </a>
+
+ <!-- mobile right menu, it must be here because in mobile view, each item is a flex column, the first item is a full row column -->
+ <div class="ui secondary menu item navbar-mobile-right only-mobile">
+ {{if .IsSigned}}
+ <a id="mobile-notifications-icon" class="item tw-w-auto tw-p-2" href="{{AppSubUrl}}/notifications" data-tooltip-content="{{ctx.Locale.Tr "notifications"}}" aria-label="{{ctx.Locale.Tr "notifications"}}">
+ <div class="tw-relative">
+ {{svg "octicon-bell"}}
+ <span class="notification_count{{if not $notificationUnreadCount}} tw-hidden{{end}}">{{$notificationUnreadCount}}</span>
+ </div>
+ </a>
+ {{end}}
+ <button class="item tw-w-auto ui icon mini button tw-p-2 tw-m-0" id="navbar-expand-toggle" aria-label="{{ctx.Locale.Tr "toggle_menu"}}">{{svg "octicon-three-bars"}}</button>
+ </div>
+
+ <!-- navbar links non-mobile -->
+ {{if and .IsSigned .MustChangePassword}}
+ {{/* No links */}}
+ {{else if .IsSigned}}
+ {{if not .UnitIssuesGlobalDisabled}}
+ <a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{ctx.Locale.Tr "issues"}}</a>
+ {{end}}
+ {{if not .UnitPullsGlobalDisabled}}
+ <a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubUrl}}/pulls">{{ctx.Locale.Tr "pull_requests"}}</a>
+ {{end}}
+ {{if not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled)}}
+ {{if .ShowMilestonesDashboardPage}}
+ <a class="item{{if .PageIsMilestonesDashboard}} active{{end}}" href="{{AppSubUrl}}/milestones">{{ctx.Locale.Tr "milestones"}}</a>
+ {{end}}
+ {{end}}
+ <a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
+ {{else if .IsLandingPageOrganizations}}
+ <a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{ctx.Locale.Tr "explore"}}</a>
+ {{else}}
+ <a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
+ {{end}}
+
+ {{template "custom/extra_links" .}}
+
+ {{if not .IsSigned}}
+ <a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">{{ctx.Locale.Tr "help"}}</a>
+ {{end}}
+ </div>
+
+ <!-- the full dropdown menus -->
+ <div class="navbar-right ui secondary menu">
+ {{if and .IsSigned .MustChangePassword}}
+ <div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
+ <span class="text tw-flex tw-items-center">
+ {{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
+ <span class="only-mobile tw-ml-2">{{.SignedUser.Name}}</span>
+ <span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
+ </span>
+ <div class="menu user-menu">
+ <div class="ui header">
+ {{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
+ </div>
+
+ <div class="divider"></div>
+ <a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
+ {{svg "octicon-sign-out"}}
+ {{ctx.Locale.Tr "sign_out"}}
+ </a>
+ </div><!-- end content avatar menu -->
+ </div><!-- end dropdown avatar menu -->
+ {{else if .IsSigned}}
+ {{if EnableTimetracking}}
+ <a class="active-stopwatch-trigger item tw-mx-0{{if not .ActiveStopwatch}} tw-hidden{{end}}" href="{{.ActiveStopwatch.IssueLink}}" title="{{ctx.Locale.Tr "active_stopwatch"}}">
+ <div class="tw-relative">
+ {{svg "octicon-stopwatch"}}
+ <span class="header-stopwatch-dot"></span>
+ </div>
+ <span class="only-mobile tw-ml-2">{{ctx.Locale.Tr "active_stopwatch"}}</span>
+ </a>
+ <div class="active-stopwatch-popup item tippy-target tw-p-2">
+ <div class="tw-flex tw-items-center">
+ <a class="stopwatch-link tw-flex tw-items-center" href="{{.ActiveStopwatch.IssueLink}}">
+ {{svg "octicon-issue-opened" 16 "tw-mr-2"}}
+ <span class="stopwatch-issue">{{.ActiveStopwatch.RepoSlug}}#{{.ActiveStopwatch.IssueIndex}}</span>
+ <span class="ui primary label stopwatch-time tw-my-0 tw-mx-4" data-seconds="{{.ActiveStopwatch.Seconds}}">
+ {{if .ActiveStopwatch}}{{Sec2Time .ActiveStopwatch.Seconds}}{{end}}
+ </span>
+ </a>
+ <form class="stopwatch-commit" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/toggle">
+ {{.CsrfTokenHtml}}
+ <button
+ type="submit"
+ class="ui button mini compact basic icon"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.issues.stop_tracking"}}"
+ >{{svg "octicon-square-fill"}}</button>
+ </form>
+ <form class="stopwatch-cancel" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/cancel">
+ {{.CsrfTokenHtml}}
+ <button
+ type="submit"
+ class="ui button mini compact basic icon"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.issues.cancel_tracking"}}"
+ >{{svg "octicon-trash"}}</button>
+ </form>
+ </div>
+ </div>
+ {{end}}
+
+ <a class="item not-mobile tw-mx-0" href="{{AppSubUrl}}/notifications" data-tooltip-content="{{ctx.Locale.Tr "notifications"}}" aria-label="{{ctx.Locale.Tr "notifications"}}">
+ <div class="tw-relative">
+ {{svg "octicon-bell"}}
+ <span class="notification_count{{if not $notificationUnreadCount}} tw-hidden{{end}}">{{$notificationUnreadCount}}</span>
+ </div>
+ </a>
+
+ <div class="ui dropdown jump item tw-mx-0 tw-pr-2" data-tooltip-content="{{ctx.Locale.Tr "create_new"}}">
+ <span class="text">
+ {{svg "octicon-plus"}}
+ <span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
+ <span class="only-mobile">{{ctx.Locale.Tr "create_new"}}</span>
+ </span>
+ <div class="menu">
+ <a class="item" href="{{AppSubUrl}}/repo/create">
+ {{svg "octicon-plus"}} {{ctx.Locale.Tr "new_repo.link"}}
+ </a>
+ {{if not .DisableMigrations}}
+ <a class="item" href="{{AppSubUrl}}/repo/migrate">
+ {{svg "octicon-repo-push"}} {{ctx.Locale.Tr "new_migrate.link"}}
+ </a>
+ {{end}}
+ {{if .SignedUser.CanCreateOrganization}}
+ <a class="item" href="{{AppSubUrl}}/org/create">
+ {{svg "octicon-organization"}} {{ctx.Locale.Tr "new_org.link"}}
+ </a>
+ {{end}}
+ </div><!-- end content create new menu -->
+ </div><!-- end dropdown menu create new -->
+
+ <div class="ui dropdown jump item tw-mx-0 tw-pr-2" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
+ <span class="text tw-flex tw-items-center">
+ {{ctx.AvatarUtils.Avatar .SignedUser 24 "tw-mr-1"}}
+ <span class="only-mobile tw-ml-2">{{.SignedUser.Name}}</span>
+ <span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
+ </span>
+ <div class="menu user-menu">
+ <div class="ui header">
+ {{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
+ </div>
+
+ <div class="divider"></div>
+ <a class="item" href="{{.SignedUser.HomeLink}}">
+ {{svg "octicon-person"}}
+ {{ctx.Locale.Tr "your_profile"}}
+ </a>
+ {{if not .DisableStars}}
+ <a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
+ {{svg "octicon-star"}}
+ {{ctx.Locale.Tr "your_starred"}}
+ </a>
+ {{end}}
+ <a class="item" href="{{AppSubUrl}}/notifications/subscriptions">
+ {{svg "octicon-bell"}}
+ {{ctx.Locale.Tr "notification.subscriptions"}}
+ </a>
+ <a class="{{if .PageIsUserSettings}}active {{end}}item" href="{{AppSubUrl}}/user/settings">
+ {{svg "octicon-tools"}}
+ {{ctx.Locale.Tr "your_settings"}}
+ </a>
+ <a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">
+ {{svg "octicon-question"}}
+ {{ctx.Locale.Tr "help"}}
+ </a>
+ {{if .IsAdmin}}
+ <div class="divider"></div>
+
+ <a class="{{if .PageIsAdmin}}active {{end}}item" href="{{AppSubUrl}}/admin">
+ {{svg "octicon-server"}}
+ {{ctx.Locale.Tr "admin_panel"}}
+ </a>
+ {{end}}
+
+ <div class="divider"></div>
+ <a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
+ {{svg "octicon-sign-out"}}
+ {{ctx.Locale.Tr "sign_out"}}
+ </a>
+ </div><!-- end content avatar menu -->
+ </div><!-- end dropdown avatar menu -->
+ {{else}}
+ {{if .ShowRegistrationButton}}
+ <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
+ {{svg "octicon-person"}} {{ctx.Locale.Tr "register"}}
+ </a>
+ {{end}}
+ <a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login{{if not .PageIsSignIn}}?redirect_to={{.CurrentURL}}{{end}}">
+ {{svg "octicon-sign-in"}} {{ctx.Locale.Tr "sign_in"}}
+ </a>
+ {{end}}
+ </div><!-- end full right menu -->
+</nav>