2023-06-09 04:10:51 -05:00
|
|
|
{{$notificationUnreadCount := 0}}
|
|
|
|
{{if and .IsSigned .NotificationUnreadCount}}
|
|
|
|
{{$notificationUnreadCount = call .NotificationUnreadCount}}
|
|
|
|
{{end}}
|
|
|
|
|
2023-09-25 03:56:50 -05:00
|
|
|
<nav id="navbar" aria-label="{{ctx.Locale.Tr "aria.navbar"}}">
|
2023-06-20 15:35:25 -05:00
|
|
|
<div class="navbar-left ui secondary menu">
|
2023-06-09 04:10:51 -05:00
|
|
|
<!-- the logo -->
|
2023-09-25 07:42:40 -05:00
|
|
|
<a class="item" id="navbar-logo" href="{{AppSubUrl}}/" aria-label="{{if .IsSigned}}{{ctx.Locale.Tr "dashboard"}}{{else}}{{ctx.Locale.Tr "home"}}{{end}}">
|
2023-09-25 03:56:50 -05:00
|
|
|
<img width="30" height="30" src="{{AssetUrlPrefix}}/img/logo.svg" alt="{{ctx.Locale.Tr "logo"}}" aria-hidden="true">
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
2023-06-09 04:10:51 -05:00
|
|
|
|
|
|
|
<!-- 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 -->
|
2023-06-23 23:31:39 -05:00
|
|
|
<div class="ui secondary menu item navbar-mobile-right">
|
2023-02-09 00:42:18 -05:00
|
|
|
{{if .IsSigned}}
|
2024-02-27 09:31:41 -05:00
|
|
|
<a id="mobile-notifications-icon" class="item tw-w-auto gt-p-3" href="{{AppSubUrl}}/notifications" data-tooltip-content="{{ctx.Locale.Tr "notifications"}}" aria-label="{{ctx.Locale.Tr "notifications"}}">
|
2024-03-05 00:29:32 -05:00
|
|
|
<div class="tw-relative">
|
2023-02-09 00:42:18 -05:00
|
|
|
{{svg "octicon-bell"}}
|
2023-06-09 04:10:51 -05:00
|
|
|
<span class="notification_count{{if not $notificationUnreadCount}} gt-hidden{{end}}">{{$notificationUnreadCount}}</span>
|
|
|
|
</div>
|
2023-02-09 00:42:18 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
2024-02-27 09:31:41 -05:00
|
|
|
<button class="item tw-w-auto ui icon mini button gt-p-3 gt-m-0" id="navbar-expand-toggle" aria-label="{{ctx.Locale.Tr "toggle_menu"}}">{{svg "octicon-three-bars"}}</button>
|
2018-09-06 21:59:06 -05:00
|
|
|
</div>
|
|
|
|
|
2023-06-20 15:35:25 -05:00
|
|
|
<!-- navbar links non-mobile -->
|
|
|
|
{{if and .IsSigned .MustChangePassword}}
|
|
|
|
{{/* No links */}}
|
|
|
|
{{else if .IsSigned}}
|
|
|
|
{{if not .UnitIssuesGlobalDisabled}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubUrl}}/issues">{{ctx.Locale.Tr "issues"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{end}}
|
|
|
|
{{if not .UnitPullsGlobalDisabled}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubUrl}}/pulls">{{ctx.Locale.Tr "pull_requests"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{end}}
|
|
|
|
{{if not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled)}}
|
|
|
|
{{if .ShowMilestonesDashboardPage}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsMilestonesDashboard}} active{{end}}" href="{{AppSubUrl}}/milestones">{{ctx.Locale.Tr "milestones"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{end}}
|
2023-06-09 04:10:51 -05:00
|
|
|
{{end}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{else if .IsLandingPageOrganizations}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{ctx.Locale.Tr "explore"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{else}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubUrl}}/explore/repos">{{ctx.Locale.Tr "explore"}}</a>
|
2020-01-17 02:34:37 -05:00
|
|
|
{{end}}
|
2018-09-06 21:59:06 -05:00
|
|
|
|
2023-06-20 15:35:25 -05:00
|
|
|
{{template "custom/extra_links" .}}
|
2018-09-06 21:59:06 -05:00
|
|
|
|
2023-06-20 15:35:25 -05:00
|
|
|
{{if not .IsSigned}}
|
2023-01-09 08:01:00 -05:00
|
|
|
<a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">{{ctx.Locale.Tr "help"}}</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
{{end}}
|
|
|
|
</div>
|
2020-05-26 17:39:39 -05:00
|
|
|
|
2023-06-09 04:10:51 -05:00
|
|
|
<!-- the full dropdown menus -->
|
2023-06-20 15:35:25 -05:00
|
|
|
<div class="navbar-right ui secondary menu">
|
2023-06-09 04:10:51 -05:00
|
|
|
{{if and .IsSigned .MustChangePassword}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
|
2024-03-22 14:51:29 -05:00
|
|
|
<span class="text tw-flex tw-items-center">
|
2023-08-09 22:19:39 -05:00
|
|
|
{{ctx.AvatarUtils.Avatar .SignedUser 24 "gt-mr-2"}}
|
2023-06-20 15:35:25 -05:00
|
|
|
<span class="mobile-only gt-ml-3">{{.SignedUser.Name}}</span>
|
2023-06-09 04:10:51 -05:00
|
|
|
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
2020-05-26 17:39:39 -05:00
|
|
|
</span>
|
2023-06-09 04:10:51 -05:00
|
|
|
<div class="menu user-menu">
|
2020-05-26 17:39:39 -05:00
|
|
|
<div class="ui header">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
|
2020-05-26 17:39:39 -05:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="divider"></div>
|
2023-06-26 14:36:10 -05:00
|
|
|
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
|
2020-09-11 15:19:00 -05:00
|
|
|
{{svg "octicon-sign-out"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "sign_out"}}
|
2020-05-26 17:39:39 -05:00
|
|
|
</a>
|
|
|
|
</div><!-- end content avatar menu -->
|
|
|
|
</div><!-- end dropdown avatar menu -->
|
2023-06-09 04:10:51 -05:00
|
|
|
{{else if .IsSigned}}
|
2023-01-09 21:53:11 -05:00
|
|
|
{{if EnableTimetracking}}
|
2023-09-25 03:56:50 -05:00
|
|
|
<a class="active-stopwatch-trigger item gt-mx-0{{if not .ActiveStopwatch}} gt-hidden{{end}}" href="{{.ActiveStopwatch.IssueLink}}" title="{{ctx.Locale.Tr "active_stopwatch"}}">
|
2024-03-05 00:29:32 -05:00
|
|
|
<div class="tw-relative">
|
2023-02-09 00:42:18 -05:00
|
|
|
{{svg "octicon-stopwatch"}}
|
|
|
|
<span class="header-stopwatch-dot"></span>
|
2023-06-09 04:10:51 -05:00
|
|
|
</div>
|
2023-09-25 03:56:50 -05:00
|
|
|
<span class="mobile-only gt-ml-3">{{ctx.Locale.Tr "active_stopwatch"}}</span>
|
2021-01-21 09:51:52 -05:00
|
|
|
</a>
|
2023-06-20 15:35:25 -05:00
|
|
|
<div class="active-stopwatch-popup item tippy-target gt-p-3">
|
2024-03-22 14:51:29 -05:00
|
|
|
<div class="tw-flex tw-items-center">
|
|
|
|
<a class="stopwatch-link tw-flex tw-items-center" href="{{.ActiveStopwatch.IssueLink}}">
|
2023-02-13 12:59:59 -05:00
|
|
|
{{svg "octicon-issue-opened" 16 "gt-mr-3"}}
|
2021-01-21 09:51:52 -05:00
|
|
|
<span class="stopwatch-issue">{{.ActiveStopwatch.RepoSlug}}#{{.ActiveStopwatch.IssueIndex}}</span>
|
2023-02-13 12:59:59 -05:00
|
|
|
<span class="ui primary label stopwatch-time gt-my-0 gt-mx-4" data-seconds="{{.ActiveStopwatch.Seconds}}">
|
2021-01-21 09:51:52 -05:00
|
|
|
{{if .ActiveStopwatch}}{{Sec2Time .ActiveStopwatch.Seconds}}{{end}}
|
|
|
|
</span>
|
|
|
|
</a>
|
2023-06-14 13:17:58 -05:00
|
|
|
<form class="stopwatch-commit" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/toggle">
|
2021-01-21 09:51:52 -05:00
|
|
|
{{.CsrfTokenHtml}}
|
|
|
|
<button
|
2022-08-09 07:37:34 -05:00
|
|
|
type="submit"
|
2023-06-09 04:10:51 -05:00
|
|
|
class="ui button mini compact basic icon"
|
2023-09-25 03:56:50 -05:00
|
|
|
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.stop_tracking"}}"
|
2021-01-21 09:51:52 -05:00
|
|
|
>{{svg "octicon-square-fill"}}</button>
|
|
|
|
</form>
|
2023-06-14 13:17:58 -05:00
|
|
|
<form class="stopwatch-cancel" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/cancel">
|
2021-01-21 09:51:52 -05:00
|
|
|
{{.CsrfTokenHtml}}
|
|
|
|
<button
|
2022-08-09 07:37:34 -05:00
|
|
|
type="submit"
|
2023-06-09 04:10:51 -05:00
|
|
|
class="ui button mini compact basic icon"
|
2023-09-25 03:56:50 -05:00
|
|
|
data-tooltip-content="{{ctx.Locale.Tr "repo.issues.cancel_tracking"}}"
|
2021-03-21 23:04:19 -05:00
|
|
|
>{{svg "octicon-trash"}}</button>
|
2021-01-21 09:51:52 -05:00
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-01-09 21:53:11 -05:00
|
|
|
{{end}}
|
2021-01-21 09:51:52 -05:00
|
|
|
|
2023-09-25 07:42:40 -05:00
|
|
|
<a class="item not-mobile gt-mx-0" href="{{AppSubUrl}}/notifications" data-tooltip-content="{{ctx.Locale.Tr "notifications"}}" aria-label="{{ctx.Locale.Tr "notifications"}}">
|
2024-03-05 00:29:32 -05:00
|
|
|
<div class="tw-relative">
|
2023-02-09 00:42:18 -05:00
|
|
|
{{svg "octicon-bell"}}
|
2023-06-09 04:10:51 -05:00
|
|
|
<span class="notification_count{{if not $notificationUnreadCount}} gt-hidden{{end}}">{{$notificationUnreadCount}}</span>
|
|
|
|
</div>
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
|
2023-09-25 03:56:50 -05:00
|
|
|
<div class="ui dropdown jump item gt-mx-0 gt-pr-3" data-tooltip-content="{{ctx.Locale.Tr "create_new"}}">
|
2018-09-06 21:59:06 -05:00
|
|
|
<span class="text">
|
2023-06-09 04:10:51 -05:00
|
|
|
{{svg "octicon-plus"}}
|
|
|
|
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
2023-09-25 03:56:50 -05:00
|
|
|
<span class="mobile-only">{{ctx.Locale.Tr "create_new"}}</span>
|
2018-09-06 21:59:06 -05:00
|
|
|
</span>
|
|
|
|
<div class="menu">
|
|
|
|
<a class="item" href="{{AppSubUrl}}/repo/create">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{svg "octicon-plus"}} {{ctx.Locale.Tr "new_repo"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
2020-12-21 09:39:41 -05:00
|
|
|
{{if not .DisableMigrations}}
|
|
|
|
<a class="item" href="{{AppSubUrl}}/repo/migrate">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{svg "octicon-repo-push"}} {{ctx.Locale.Tr "new_migrate"}}
|
2020-12-21 09:39:41 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
2018-09-06 21:59:06 -05:00
|
|
|
{{if .SignedUser.CanCreateOrganization}}
|
|
|
|
<a class="item" href="{{AppSubUrl}}/org/create">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{svg "octicon-organization"}} {{ctx.Locale.Tr "new_org"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
|
|
|
</div><!-- end content create new menu -->
|
|
|
|
</div><!-- end dropdown menu create new -->
|
|
|
|
|
2023-09-25 03:56:50 -05:00
|
|
|
<div class="ui dropdown jump item gt-mx-0 gt-pr-3" data-tooltip-content="{{ctx.Locale.Tr "user_profile_and_more"}}">
|
2024-03-22 14:51:29 -05:00
|
|
|
<span class="text tw-flex tw-items-center">
|
2023-08-09 22:19:39 -05:00
|
|
|
{{ctx.AvatarUtils.Avatar .SignedUser 24 "gt-mr-2"}}
|
2023-06-20 15:35:25 -05:00
|
|
|
<span class="mobile-only gt-ml-3">{{.SignedUser.Name}}</span>
|
2023-06-09 04:10:51 -05:00
|
|
|
<span class="not-mobile">{{svg "octicon-triangle-down"}}</span>
|
2018-09-06 21:59:06 -05:00
|
|
|
</span>
|
2023-06-09 04:10:51 -05:00
|
|
|
<div class="menu user-menu">
|
2018-09-06 21:59:06 -05:00
|
|
|
<div class="ui header">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
|
2018-09-06 21:59:06 -05:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="divider"></div>
|
2021-11-16 13:18:25 -05:00
|
|
|
<a class="item" href="{{.SignedUser.HomeLink}}">
|
2020-09-11 15:19:00 -05:00
|
|
|
{{svg "octicon-person"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "your_profile"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
2021-04-15 11:53:57 -05:00
|
|
|
{{if not .DisableStars}}
|
2021-11-16 13:18:25 -05:00
|
|
|
<a class="item" href="{{.SignedUser.HomeLink}}?tab=stars">
|
2021-04-15 11:53:57 -05:00
|
|
|
{{svg "octicon-star"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "your_starred"}}
|
2021-04-15 11:53:57 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
2022-09-29 14:09:14 -05:00
|
|
|
<a class="item" href="{{AppSubUrl}}/notifications/subscriptions">
|
|
|
|
{{svg "octicon-bell"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "notification.subscriptions"}}
|
2022-09-29 14:09:14 -05:00
|
|
|
</a>
|
2022-12-09 08:34:51 -05:00
|
|
|
<a class="{{if .PageIsUserSettings}}active {{end}}item" href="{{AppSubUrl}}/user/settings">
|
2020-09-11 15:19:00 -05:00
|
|
|
{{svg "octicon-tools"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "your_settings"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
2023-01-09 08:01:00 -05:00
|
|
|
<a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">
|
2020-09-11 15:19:00 -05:00
|
|
|
{{svg "octicon-question"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "help"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
{{if .IsAdmin}}
|
|
|
|
<div class="divider"></div>
|
|
|
|
|
2022-12-09 08:34:51 -05:00
|
|
|
<a class="{{if .PageIsAdmin}}active {{end}}item" href="{{AppSubUrl}}/admin">
|
2021-02-25 07:35:43 -05:00
|
|
|
{{svg "octicon-server"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "admin_panel"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
<div class="divider"></div>
|
2023-06-26 14:36:10 -05:00
|
|
|
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout">
|
2020-09-11 15:19:00 -05:00
|
|
|
{{svg "octicon-sign-out"}}
|
2023-09-25 03:56:50 -05:00
|
|
|
{{ctx.Locale.Tr "sign_out"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
</div><!-- end content avatar menu -->
|
|
|
|
</div><!-- end dropdown avatar menu -->
|
2023-06-09 04:10:51 -05:00
|
|
|
{{else}}
|
2018-09-06 21:59:06 -05:00
|
|
|
{{if .ShowRegistrationButton}}
|
|
|
|
<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{svg "octicon-person"}} {{ctx.Locale.Tr "register"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
|
|
|
{{end}}
|
2021-10-28 05:09:25 -05:00
|
|
|
<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login{{if not .PageIsSignIn}}?redirect_to={{.CurrentURL}}{{end}}">
|
2023-09-25 03:56:50 -05:00
|
|
|
{{svg "octicon-sign-in"}} {{ctx.Locale.Tr "sign_in"}}
|
2018-09-06 21:59:06 -05:00
|
|
|
</a>
|
2023-06-09 04:10:51 -05:00
|
|
|
{{end}}
|
|
|
|
</div><!-- end full right menu -->
|
2023-03-16 22:52:44 -05:00
|
|
|
</nav>
|