diff options
Diffstat (limited to 'templates/base/head_navbar.tmpl')
-rw-r--r-- | templates/base/head_navbar.tmpl | 205 |
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> |