diff options
Diffstat (limited to 'templates/base')
-rw-r--r-- | templates/base/alert.tmpl | 21 | ||||
-rw-r--r-- | templates/base/footer.tmpl | 8 | ||||
-rw-r--r-- | templates/base/head.tmpl | 6 | ||||
-rw-r--r-- | templates/base/head_navbar.tmpl | 70 | ||||
-rw-r--r-- | templates/base/head_navbar_icons.tmpl | 25 | ||||
-rw-r--r-- | templates/base/head_script.tmpl | 2 | ||||
-rw-r--r-- | templates/base/paginate.tmpl | 16 |
7 files changed, 67 insertions, 81 deletions
diff --git a/templates/base/alert.tmpl b/templates/base/alert.tmpl index 760d3bfa2c..5ebe191771 100644 --- a/templates/base/alert.tmpl +++ b/templates/base/alert.tmpl @@ -1,20 +1,25 @@ -{{if .Flash.ErrorMsg}} +{{- if .Flash.ErrorMsg -}} <div class="ui negative message flash-message flash-error"> <p>{{.Flash.ErrorMsg | SanitizeHTML}}</p> </div> -{{end}} -{{if .Flash.SuccessMsg}} +{{- end -}} +{{- if .Flash.SuccessMsg -}} <div class="ui positive message flash-message flash-success"> <p>{{.Flash.SuccessMsg | SanitizeHTML}}</p> </div> -{{end}} -{{if .Flash.InfoMsg}} +{{- end -}} +{{- if .Flash.InfoMsg -}} <div class="ui info message flash-message flash-info"> <p>{{.Flash.InfoMsg | SanitizeHTML}}</p> </div> -{{end}} -{{if .Flash.WarningMsg}} +{{- end -}} +{{- if .Flash.WarningMsg -}} <div class="ui warning message flash-message flash-warning"> <p>{{.Flash.WarningMsg | SanitizeHTML}}</p> </div> -{{end}} +{{- end -}} +{{- if .ShowTwoFactorRequiredMessage -}} +<div class="ui negative message flash-message flash-error"> + <p><a href="{{AppSubUrl}}/user/settings/security/two_factor/enroll">{{ctx.Locale.Tr "auth.twofa_required"}}</a></p> +</div> +{{- end -}} diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl index fed426a469..3af66e7369 100644 --- a/templates/base/footer.tmpl +++ b/templates/base/footer.tmpl @@ -5,16 +5,10 @@ <div> {{end}} - {{template "custom/body_inner_post" .}} - + {{template "custom/body_inner_post" .}} </div> - {{template "custom/body_outer_post" .}} - {{template "base/footer_content" .}} - - <script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script> - {{template "custom/footer" .}} </body> </html> diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index 174267fd2f..e9526818e3 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -19,12 +19,6 @@ <link rel="icon" href="{{AssetUrlPrefix}}/img/favicon.svg" type="image/svg+xml"> <link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png"> {{template "base/head_script" .}} - <noscript> - <style> - .dropdown:hover > .menu { display: block; } - .ui.secondary.menu .dropdown.item > .menu { margin-top: 0; } - </style> - </noscript> {{template "base/head_opengraph" .}} {{template "base/head_style" .}} {{template "custom/header" .}} diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl index bf0e7e632b..b721779c95 100644 --- a/templates/base/head_navbar.tmpl +++ b/templates/base/head_navbar.tmpl @@ -1,8 +1,3 @@ -{{$notificationUnreadCount := 0}} -{{if and .IsSigned .NotificationUnreadCount}} - {{$notificationUnreadCount = call .NotificationUnreadCount}} -{{end}} - <nav id="navbar" aria-label="{{ctx.Locale.Tr "aria.navbar"}}"> <div class="navbar-left"> <!-- the logo --> @@ -12,22 +7,7 @@ <!-- 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 navbar-mobile-right only-mobile"> - {{if and .IsSigned EnableTimetracking .ActiveStopwatch}} - <a id="mobile-stopwatch-icon" class="active-stopwatch item" href="{{.ActiveStopwatch.IssueLink}}" title="{{ctx.Locale.Tr "active_stopwatch"}}" data-seconds="{{.ActiveStopwatch.Seconds}}"> - <div class="tw-relative"> - {{svg "octicon-stopwatch"}} - <span class="header-stopwatch-dot"></span> - </div> - </a> - {{end}} - {{if .IsSigned}} - <a id="mobile-notifications-icon" class="item" 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}} + {{template "base/head_navbar_icons" dict "PageGlobalData" .PageGlobalData}} <button class="item ui icon mini button tw-m-0" id="navbar-expand-toggle" aria-label="{{ctx.Locale.Tr "home.nav_menu"}}">{{svg "octicon-three-bars"}}</button> </div> @@ -70,7 +50,7 @@ <span class="not-mobile">{{svg "octicon-triangle-down"}}</span> </span> <div class="menu user-menu"> - <div class="ui header"> + <div class="header"> {{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong> </div> @@ -82,22 +62,7 @@ </div><!-- end content avatar menu --> </div><!-- end dropdown avatar menu --> {{else if .IsSigned}} - {{if and EnableTimetracking .ActiveStopwatch}} - <a class="item not-mobile active-stopwatch" href="{{.ActiveStopwatch.IssueLink}}" title="{{ctx.Locale.Tr "active_stopwatch"}}" data-seconds="{{.ActiveStopwatch.Seconds}}"> - <div class="tw-relative"> - {{svg "octicon-stopwatch"}} - <span class="header-stopwatch-dot"></span> - </div> - </a> - {{end}} - - <a class="item not-mobile" 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> - + {{template "base/head_navbar_icons" dict "ItemExtraClass" "not-mobile" "PageGlobalData" .PageGlobalData}} <div class="ui dropdown jump item" data-tooltip-content="{{ctx.Locale.Tr "create_new"}}"> <span class="text"> {{svg "octicon-plus"}} @@ -127,10 +92,8 @@ <span class="only-mobile">{{.SignedUser.Name}}</span> <span class="not-mobile">{{svg "octicon-triangle-down"}}</span> </span> - {{/* do not localize it, here it needs the fixed length (width) to make UI comfortable */}} - {{if .IsAdmin}}<span class="navbar-profile-admin">admin</span>{{end}} <div class="menu user-menu"> - <div class="ui header"> + <div class="header"> {{ctx.Locale.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong> </div> @@ -157,14 +120,6 @@ {{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"}} @@ -175,24 +130,27 @@ {{else}} {{if .ShowRegistrationButton}} <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up"> - {{svg "octicon-person"}} {{ctx.Locale.Tr "register"}} + {{svg "octicon-person"}} + <span class="tw-ml-1">{{ctx.Locale.Tr "register"}}</span> </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"}} + {{svg "octicon-sign-in"}} + <span class="tw-ml-1">{{ctx.Locale.Tr "sign_in"}}</span> </a> {{end}} </div><!-- end full right menu --> - {{if and .IsSigned EnableTimetracking .ActiveStopwatch}} + {{$activeStopwatch := and .PageGlobalData (call .PageGlobalData.GetActiveStopwatch)}} + {{if $activeStopwatch}} <div class="active-stopwatch-popup tippy-target"> <div class="tw-flex tw-items-center tw-gap-2 tw-p-3"> - <a class="stopwatch-link tw-flex tw-items-center tw-gap-2 muted" href="{{.ActiveStopwatch.IssueLink}}"> + <a class="stopwatch-link tw-flex tw-items-center tw-gap-2 muted" href="{{$activeStopwatch.IssueLink}}"> {{svg "octicon-issue-opened" 16}} - <span class="stopwatch-issue">{{.ActiveStopwatch.RepoSlug}}#{{.ActiveStopwatch.IssueIndex}}</span> + <span class="stopwatch-issue">{{$activeStopwatch.RepoSlug}}#{{$activeStopwatch.IssueIndex}}</span> </a> <div class="tw-flex tw-gap-1"> - <form class="stopwatch-commit form-fetch-action" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/toggle"> + <form class="stopwatch-commit form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/stop"> {{.CsrfTokenHtml}} <button type="submit" @@ -200,7 +158,7 @@ data-tooltip-content="{{ctx.Locale.Tr "repo.issues.stop_tracking"}}" >{{svg "octicon-square-fill"}}</button> </form> - <form class="stopwatch-cancel form-fetch-action" method="post" action="{{.ActiveStopwatch.IssueLink}}/times/stopwatch/cancel"> + <form class="stopwatch-cancel form-fetch-action" method="post" action="{{$activeStopwatch.IssueLink}}/times/stopwatch/cancel"> {{.CsrfTokenHtml}} <button type="submit" diff --git a/templates/base/head_navbar_icons.tmpl b/templates/base/head_navbar_icons.tmpl new file mode 100644 index 0000000000..e3bdd27992 --- /dev/null +++ b/templates/base/head_navbar_icons.tmpl @@ -0,0 +1,25 @@ +{{- $itemExtraClass := .ItemExtraClass -}} +{{- $data := .PageGlobalData -}} +{{if and $data $data.IsSigned}}{{/* data may not exist, for example: rendering 503 page before the PageGlobalData middleware */}} + {{- $activeStopwatch := call $data.GetActiveStopwatch -}} + {{- $notificationUnreadCount := call $data.GetNotificationUnreadCount -}} + {{if $activeStopwatch}} + <a class="item active-stopwatch {{$itemExtraClass}}" href="{{$activeStopwatch.IssueLink}}" title="{{ctx.Locale.Tr "active_stopwatch"}}" data-seconds="{{$activeStopwatch.Seconds}}"> + <div class="tw-relative"> + {{svg "octicon-stopwatch"}} + <span class="header-stopwatch-dot"></span> + </div> + </a> + {{end}} + <a class="item {{$itemExtraClass}}" href="{{AppSubUrl}}/notifications" data-tooltip-content="{{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> + {{if $data.IsSiteAdmin}} + <a class="item {{$itemExtraClass}}" href="{{AppSubUrl}}/-/admin" data-tooltip-content="{{ctx.Locale.Tr "admin_panel"}}"> + {{svg "octicon-server"}} + </a> + {{end}} +{{end}} diff --git a/templates/base/head_script.tmpl b/templates/base/head_script.tmpl index 7c931e7404..f6648b59d8 100644 --- a/templates/base/head_script.tmpl +++ b/templates/base/head_script.tmpl @@ -46,4 +46,4 @@ If you introduce mistakes in it, Gitea JavaScript code wouldn't run correctly. {{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}} window.config.pageData = window.config.pageData || {}; </script> -<script src="{{AssetUrlPrefix}}/js/webcomponents.js?v={{AssetVersion}}"></script> +<script src="{{AssetUrlPrefix}}/js/index.js?v={{AssetVersion}}" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script> diff --git a/templates/base/paginate.tmpl b/templates/base/paginate.tmpl index 9a7a6322f7..f6c1785ccf 100644 --- a/templates/base/paginate.tmpl +++ b/templates/base/paginate.tmpl @@ -2,32 +2,42 @@ {{$paginationLink := $.Link}} {{if eq $paginationLink AppSubUrl}}{{$paginationLink = print $paginationLink "/"}}{{end}} {{with .Page.Paginater}} - {{if gt .TotalPages 1}} + {{if or (eq .TotalPages -1) (gt .TotalPages 1)}} + {{$showFirstLast := gt .TotalPages 1}} <div class="center page buttons"> <div class="ui borderless pagination menu"> + {{if $showFirstLast}} <a class="{{if .IsFirst}}disabled{{end}} item navigation" {{if not .IsFirst}}href="{{$paginationLink}}{{if $paginationParams}}?{{$paginationParams}}{{end}}"{{end}}> {{svg "gitea-double-chevron-left" 16 "tw-mr-1"}} <span class="navigation_label">{{ctx.Locale.Tr "admin.first_page"}}</span> </a> + {{end}} + <a class="{{if not .HasPrevious}}disabled{{end}} item navigation" {{if .HasPrevious}}href="{{$paginationLink}}?page={{.Previous}}{{if $paginationParams}}&{{$paginationParams}}{{end}}"{{end}}> {{svg "octicon-chevron-left" 16 "tw-mr-1"}} <span class="navigation_label">{{ctx.Locale.Tr "repo.issues.previous"}}</span> </a> - {{range .Pages}} + {{$pages := .Pages}} + {{$pagesLen := len $pages}} + {{range $pages}} {{if eq .Num -1}} <a class="disabled item">...</a> {{else}} - <a class="{{if .IsCurrent}}active {{end}}item tw-content-center" {{if not .IsCurrent}}href="{{$paginationLink}}?page={{.Num}}{{if $paginationParams}}&{{$paginationParams}}{{end}}"{{end}}>{{.Num}}</a> + {{/* do not highlight the current page if there is only one page */}} + <a class="{{if and .IsCurrent (gt $pagesLen 1)}}active {{end}}item" {{if not .IsCurrent}}href="{{$paginationLink}}?page={{.Num}}{{if $paginationParams}}&{{$paginationParams}}{{end}}"{{end}}>{{.Num}}</a> {{end}} {{end}} <a class="{{if not .HasNext}}disabled{{end}} item navigation" {{if .HasNext}}href="{{$paginationLink}}?page={{.Next}}{{if $paginationParams}}&{{$paginationParams}}{{end}}"{{end}}> <span class="navigation_label">{{ctx.Locale.Tr "repo.issues.next"}}</span> {{svg "octicon-chevron-right" 16 "tw-ml-1"}} </a> + + {{if $showFirstLast}} <a class="{{if .IsLast}}disabled{{end}} item navigation" {{if not .IsLast}}href="{{$paginationLink}}?page={{.TotalPages}}{{if $paginationParams}}&{{$paginationParams}}{{end}}"{{end}}> <span class="navigation_label">{{ctx.Locale.Tr "admin.last_page"}}</span> {{svg "gitea-double-chevron-right" 16 "tw-ml-1"}} </a> + {{end}} </div> </div> {{end}} |