mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-02 10:54:25 +02:00
Merge branch 'origin/main' into session-management
Conflict resolutions: - models/migrations/v1_26/v328.go: kept origin/main's TokenPermissions migration; moved AddUserSessionTable to v1_27/v332.go (1.26.0 closed at migration 330; 1.27 starts at 331). - models/migrations/migrations.go: registered session migration as 332 using v1_27.AddUserSessionTable. - tests/integration/api_admin_test.go: adopted new DecodeJSON return style; cron count is 30 (added cleanup_user_sessions task). Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
This commit is contained in:
1841 files changed
+83555
-29241
No files matched your search
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin actions")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin actions")}}
|
||||
<div class="admin-setting-content">
|
||||
{{if eq .PageType "runners"}}
|
||||
{{template "shared/actions/runner_list" .}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin config")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin config")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "settings.applications"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin config")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin config")}}
|
||||
<div class="admin-setting-content">
|
||||
|
||||
{{template "user/settings/applications_oauth2_edit_form" .}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin edit authentication")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin edit authentication")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.auths.edit"}}
|
||||
@@ -330,6 +330,11 @@
|
||||
<label>{{ctx.Locale.Tr "admin.auths.oauth2_ssh_public_key_claim_name"}}</label>
|
||||
<input name="oauth2_ssh_public_key_claim_name" value="{{$cfg.SSHPublicKeyClaimName}}" placeholder="sshpubkey">
|
||||
</div>
|
||||
<div class="open_id_connect_external_id_claim field">
|
||||
<label for="open_id_connect_external_id_claim">{{ctx.Locale.Tr "admin.auths.open_id_connect_external_id_claim"}}</label>
|
||||
<input id="open_id_connect_external_id_claim" name="open_id_connect_external_id_claim" value="{{$cfg.ExternalIDClaim}}" placeholder="sub">
|
||||
<p class="help">{{ctx.Locale.Tr "admin.auths.open_id_connect_external_id_claim_helper"}}</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="oauth2_required_claim_name">{{ctx.Locale.Tr "admin.auths.oauth2_required_claim_name"}}</label>
|
||||
<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" value="{{$cfg.RequiredClaimName}}">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin authentication")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin authentication")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.auths.auth_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin new authentication")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin new authentication")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.auths.new"}}
|
||||
@@ -84,37 +84,66 @@
|
||||
<h5>GMail Settings:</h5>
|
||||
<p>Host: smtp.gmail.com, Port: 587, Enable TLS Encryption: true</p>
|
||||
|
||||
<h5 class="oauth2">{{ctx.Locale.Tr "admin.auths.tips.oauth2.general"}}:</h5>
|
||||
<p class="oauth2">{{ctx.Locale.Tr "admin.auths.tips.oauth2.general.tip"}} <b id="oauth2-callback-url"></b></p>
|
||||
|
||||
<h5 class="ui top attached header">{{ctx.Locale.Tr "admin.auths.tip.oauth2_provider"}}</h5>
|
||||
<div class="ui attached segment">
|
||||
<li>Bitbucket</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.bitbucket" "https://bitbucket.org/account/user/{your-username}/oauth-consumers/new"}}</span>
|
||||
<li>Dropbox</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.dropbox" "https://www.dropbox.com/developers/apps"}}</span>
|
||||
<li>Facebook</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.facebook" "https://developers.facebook.com/apps"}}</span>
|
||||
<li>GitHub</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.github" "https://github.com/settings/applications/new"}}</span>
|
||||
<li>GitLab</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.gitlab_new" "https://gitlab.com/-/profile/applications"}}</span>
|
||||
<li>Google</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.google_plus" "https://console.developers.google.com/"}}</span>
|
||||
<li>OpenID Connect</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.openid_connect"}}</span>
|
||||
<li>Twitter</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.twitter" "https://dev.twitter.com/apps"}}</span>
|
||||
<li>Discord</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.discord" "https://discordapp.com/developers/applications/me"}}</span>
|
||||
<li>Gitea</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.gitea" "https://docs.gitea.com/development/oauth2-provider"}}</span>
|
||||
<li>Nextcloud</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.nextcloud"}}</span>
|
||||
<li>Yandex</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.yandex" "https://oauth.yandex.com/client/new"}}</span>
|
||||
<li>Mastodon</li>
|
||||
<span>{{ctx.Locale.Tr "admin.auths.tip.mastodon"}}</span>
|
||||
<div class="oauth2">
|
||||
<h5>{{ctx.Locale.Tr "admin.auths.tips.oauth2.general"}}</h5>
|
||||
<p>{{ctx.Locale.Tr "admin.auths.tips.oauth2.general.tip"}} <b id="oauth2-callback-url"></b></p>
|
||||
</div>
|
||||
<div class="oauth2 tw-mt-4">
|
||||
<h5>{{ctx.Locale.Tr "admin.auths.tip.oauth2_provider"}}</h5>
|
||||
<ul>
|
||||
<li>
|
||||
Bitbucket
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.bitbucket" "https://bitbucket.org/account/user/{your-username}/oauth-consumers/new"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Dropbox
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.dropbox" "https://www.dropbox.com/developers/apps"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Facebook
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.facebook" "https://developers.facebook.com/apps"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
GitHub
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.github" "https://github.com/settings/applications/new"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
GitLab
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.gitlab_new" "https://gitlab.com/-/profile/applications"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Google
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.google_plus" "https://console.developers.google.com/"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
OpenID Connect
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.openid_connect"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Twitter
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.twitter" "https://dev.twitter.com/apps"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Discord
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.discord" "https://discordapp.com/developers/applications/me"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Gitea
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.gitea" "https://docs.gitea.com/development/oauth2-provider"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Nextcloud
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.nextcloud"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Yandex
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.yandex" "https://oauth.yandex.com/client/new"}}</div>
|
||||
</li>
|
||||
<li>
|
||||
Mastodon
|
||||
<div>{{ctx.Locale.Tr "admin.auths.tip.mastodon"}}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -88,6 +88,11 @@
|
||||
<label>{{ctx.Locale.Tr "admin.auths.oauth2_ssh_public_key_claim_name"}}</label>
|
||||
<input name="oauth2_ssh_public_key_claim_name" value="{{.oauth2_ssh_public_key_claim_name}}" placeholder="sshpubkey">
|
||||
</div>
|
||||
<div class="open_id_connect_external_id_claim field">
|
||||
<label for="open_id_connect_external_id_claim">{{ctx.Locale.Tr "admin.auths.open_id_connect_external_id_claim"}}</label>
|
||||
<input id="open_id_connect_external_id_claim" name="open_id_connect_external_id_claim" value="{{.open_id_connect_external_id_claim}}" placeholder="sub">
|
||||
<p class="help">{{ctx.Locale.Tr "admin.auths.open_id_connect_external_id_claim_helper"}}</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="oauth2_required_claim_name">{{ctx.Locale.Tr "admin.auths.oauth2_required_claim_name"}}</label>
|
||||
<input id="oauth2_required_claim_name" name="oauth2_required_claim_name" value="{{.oauth2_required_claim_name}}">
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin edit badge")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.badges.edit_badge"}}
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
<form class="ui form form-fetch-action" action="./edit" method="post">
|
||||
<div class="field">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.slug"}}</label>
|
||||
<input value="{{.Badge.Slug}}" readonly>
|
||||
</div>
|
||||
<div class="field {{if .Err_Description}}error{{end}}">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.description"}}</label>
|
||||
<textarea name="description" rows="2">{{.Badge.Description}}</textarea>
|
||||
</div>
|
||||
<div class="field {{if .Err_ImageURL}}error{{end}}">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.image_url"}}</label>
|
||||
<input type="url" name="image_url" value="{{.Badge.ImageURL}}">
|
||||
</div>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<div class="field">
|
||||
<button class="ui primary button">{{ctx.Locale.Tr "admin.badges.update_badge"}}</button>
|
||||
<button class="ui red button show-modal" data-modal="#delete-badge-modal">{{ctx.Locale.Tr "admin.badges.delete_badge"}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ui g-modal-confirm modal" id="delete-badge-modal">
|
||||
<div class="header">
|
||||
{{svg "octicon-trash"}}
|
||||
{{ctx.Locale.Tr "admin.badges.delete_badge"}}
|
||||
</div>
|
||||
<form class="ui form" method="post" action="./delete">
|
||||
<div class="content">
|
||||
<p>{{ctx.Locale.Tr "admin.badges.delete_badge_desc"}}</p>
|
||||
</div>
|
||||
{{template "base/modal_actions_confirm" .}}
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -0,0 +1,67 @@
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin badge")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.badges.badges_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
<div class="ui right">
|
||||
<a class="ui primary tiny button" href="{{AppSubUrl}}/-/admin/badges/new">{{ctx.Locale.Tr "admin.badges.new_badge"}}</a>
|
||||
</div>
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
<form class="ui form ignore-dirty flex-text-block" id="user-list-search-form">
|
||||
<div class="tw-flex-1">
|
||||
{{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.badge_kind")}}
|
||||
</div>
|
||||
<!-- Right Menu -->
|
||||
<div class="ui secondary menu tw-m-0">
|
||||
<!-- Sort Menu Item -->
|
||||
<div class="ui dropdown type jump item">
|
||||
<span class="text">
|
||||
{{ctx.Locale.Tr "repo.issues.filter_sort"}}
|
||||
</span>
|
||||
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
||||
<div class="menu">
|
||||
<button class="{{if eq $.SortType "oldest"}}active {{end}}item" name="sort" value="oldest">{{ctx.Locale.Tr "repo.issues.filter_sort.oldest"}}</button>
|
||||
<button class="{{if eq $.SortType "newest"}}active {{end}}item" name="sort" value="newest">{{ctx.Locale.Tr "repo.issues.filter_sort.latest"}}</button>
|
||||
<button class="{{if eq $.SortType "alphabetically"}}active {{end}}item" name="sort" value="alphabetically">{{ctx.Locale.Tr "repo.issues.label.filter_sort.alphabetically"}}</button>
|
||||
<button class="{{if eq $.SortType "reversealphabetically"}}active {{end}}item" name="sort" value="reversealphabetically">{{ctx.Locale.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ui attached table segment">
|
||||
<table class="ui very basic striped table unstackable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-sortt-asc="oldest" data-sortt-desc="newest" data-sortt-default="true">ID{{SortArrow "oldest" "newest" .SortType false}}</th>
|
||||
<th data-sortt-asc="alphabetically" data-sortt-desc="reversealphabetically">
|
||||
{{ctx.Locale.Tr "admin.badges.slug"}}
|
||||
{{SortArrow "alphabetically" "reversealphabetically" $.SortType true}}
|
||||
</th>
|
||||
<th>{{ctx.Locale.Tr "admin.badges.description"}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Badges}}
|
||||
<tr>
|
||||
<td>{{.ID}}</td>
|
||||
<td>
|
||||
<a href="{{$.Link}}/slug/{{.Slug | PathEscape}}">{{.Slug}}</a>
|
||||
</td>
|
||||
<td class="gt-ellipsis tw-max-w-48">{{.Description}}</td>
|
||||
<td>
|
||||
<div class="tw-flex tw-gap-2">
|
||||
<a href="{{$.Link}}/slug/{{.Slug | PathEscape}}" data-tooltip-content="{{ctx.Locale.Tr "admin.badges.details"}}">{{svg "octicon-star"}}</a>
|
||||
<a href="{{$.Link}}/slug/{{.Slug | PathEscape}}/edit" data-tooltip-content="{{ctx.Locale.Tr "edit"}}">{{svg "octicon-pencil"}}</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{{template "base/paginate" .}}
|
||||
</div>
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -0,0 +1,26 @@
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin new badge")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.badges.new_badge"}}
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
<form class="ui form form-fetch-action" action="{{.Link}}" method="post">
|
||||
<div class="required field">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.slug"}}</label>
|
||||
<input autofocus required name="slug">
|
||||
</div>
|
||||
<div class="required field">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.description"}}</label>
|
||||
<textarea name="description" rows="2" required></textarea>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{ctx.Locale.Tr "admin.badges.image_url"}}</label>
|
||||
<input type="url" name="image_url">
|
||||
</div>
|
||||
<div class="field">
|
||||
<button class="ui primary button">{{ctx.Locale.Tr "admin.badges.new_badge"}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -0,0 +1,40 @@
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin badge")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{.Title}}
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
<form class="ui form" action="{{.Link}}" method="post">
|
||||
<div id="search-user-box" class="ui search input tw-align-middle">
|
||||
<input class="prompt" name="user" placeholder="{{ctx.Locale.Tr "search.user_kind"}}" autocomplete="off" autofocus required>
|
||||
</div>
|
||||
<button class="ui primary button">{{ctx.Locale.Tr "admin.badges.add_user"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
{{if .Users}}
|
||||
<div class="ui attached segment">
|
||||
<div class="flex-divided-list items-with-main">
|
||||
{{range .Users}}
|
||||
<div class="item tw-items-center">
|
||||
<div class="item-leading">
|
||||
<a href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 32}}</a>
|
||||
</div>
|
||||
<div class="item-main">
|
||||
<div class="item-title">
|
||||
{{template "shared/user/name" .}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-trailing">
|
||||
<a class="ui red tiny button inline link-action" data-url="{{$.Link}}/delete?id={{.ID}}" data-modal-confirm="{{ctx.Locale.Tr "admin.badges.delete_user_desc"}}">
|
||||
{{ctx.Locale.Tr "admin.badges.remove_user"}}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{template "base/paginate" .}}
|
||||
</div>
|
||||
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -0,0 +1,44 @@
|
||||
{{template "admin/layout_head" (dict)}}
|
||||
|
||||
<div class="admin-setting-content">
|
||||
<div class="admin-responsive-columns">
|
||||
<div class="tw-flex-1">
|
||||
<h4 class="ui top attached header">
|
||||
{{.Title}}
|
||||
<div class="ui right">
|
||||
<a class="ui primary tiny button" href="{{.Link}}/edit">{{ctx.Locale.Tr "admin.badges.edit_badge"}}</a>
|
||||
</div>
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
<div class="flex-divided-list items-with-main">
|
||||
<div class="item">
|
||||
{{if .Badge.ImageURL}}
|
||||
<div class="item-leading">
|
||||
<img width="64" height="64" src="{{.Badge.ImageURL}}" alt="{{.Badge.Description}}" data-tooltip-content="{{.Badge.Description}}">
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="item-main">
|
||||
<div class="item-title">
|
||||
{{.Badge.Slug}}
|
||||
</div>
|
||||
<div class="item-body">
|
||||
{{.Badge.Description}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "explore.users"}} ({{.UsersTotal}})
|
||||
<div class="ui right">
|
||||
<a class="ui primary tiny button" href="{{.Link}}/users">{{ctx.Locale.Tr "admin.badges.manage_users"}}</a>
|
||||
</div>
|
||||
</h4>
|
||||
<div class="ui attached segment">
|
||||
{{template "explore/user_list" .}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin config")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin config")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.config.server_config"}}
|
||||
@@ -11,10 +11,6 @@
|
||||
<dd>{{AppVer}}{{.AppBuiltWith}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.custom_conf"}}</dt>
|
||||
<dd>{{.CustomConf}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.app_url"}}</dt>
|
||||
<dd>{{.AppUrl}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.domain"}}</dt>
|
||||
<dd>{{.Domain}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.disable_router_log"}}</dt>
|
||||
<dd>{{svg (Iif .DisableRouterLog "octicon-check" "octicon-x")}}</dd>
|
||||
|
||||
@@ -248,8 +244,6 @@
|
||||
<dd>{{.CacheInterval}} {{ctx.Locale.Tr "tool.raw_seconds"}}</dd>
|
||||
{{end}}
|
||||
{{if .CacheConn}}
|
||||
<dt>{{ctx.Locale.Tr "admin.config.cache_conn"}}</dt>
|
||||
<dd>{{.CacheConn}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.cache_item_ttl"}}</dt>
|
||||
<dd>{{.CacheItemTTL}}</dd>
|
||||
{{end}}
|
||||
@@ -270,8 +264,6 @@
|
||||
<dl class="admin-dl-horizontal">
|
||||
<dt>{{ctx.Locale.Tr "admin.config.session_provider"}}</dt>
|
||||
<dd>{{.SessionConfig.Provider}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.provider_config"}}</dt>
|
||||
<dd>{{if .SessionConfig.ProviderConfig}}{{.SessionConfig.ProviderConfig}}{{else}}-{{end}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.cookie_name"}}</dt>
|
||||
<dd>{{.SessionConfig.CookieName}}</dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.config.gc_interval_time"}}</dt>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin config" "dataGlobalInit" "initAdminConfigSettings")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin config" "dataGlobalInit" "initAdminConfigSettings")}}
|
||||
|
||||
{{template "admin/config_settings/avatars" .}}
|
||||
{{template "admin/config_settings/repository" .}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.monitor.cron"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin dashboard")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin dashboard")}}
|
||||
<div class="admin-setting-content">
|
||||
{{if .NeedUpdate}}
|
||||
<div class="ui negative message flash-error">
|
||||
@@ -76,10 +76,7 @@
|
||||
</h4>
|
||||
{{/* TODO: make these stats work in multi-server deployments, likely needs per-server stats in DB */}}
|
||||
<div class="ui attached table segment">
|
||||
<div class="no-loading-indicator tw-hidden"></div>
|
||||
<div hx-get="{{$.Link}}/system_status" hx-swap="morph:innerHTML" hx-trigger="every 5s" hx-indicator=".no-loading-indicator">
|
||||
{{template "admin/system_status" .}}
|
||||
</div>
|
||||
{{template "admin/system_status" .}}
|
||||
</div>
|
||||
</div>
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.emails.email_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin settings new webhook")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin settings new webhook")}}
|
||||
<div class="admin-setting-content">
|
||||
{{$CustomHeaderTitle := ctx.Locale.Tr "admin.defaulthooks.update_webhook"}}
|
||||
{{if .PageIsAdminDefaultHooksNew}}
|
||||
@@ -8,6 +8,6 @@
|
||||
{{else if .Webhook.IsSystemWebhook}}
|
||||
{{$CustomHeaderTitle = ctx.Locale.Tr "admin.systemhooks.update_webhook"}}
|
||||
{{end}}
|
||||
{{template "webhook/new" (dict "ctxData" . "CustomHeaderTitle" $CustomHeaderTitle)}}
|
||||
{{template "webhook/new" (dict "CustomHeaderTitle" $CustomHeaderTitle)}}
|
||||
</div>
|
||||
{{template "admin/layout_footer" .}}
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin hooks")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin hooks")}}
|
||||
<div class="admin-setting-content">
|
||||
{{template "repo/settings/webhook/base_list" .SystemWebhooks}}
|
||||
{{template "repo/settings/webhook/base_list" .DefaultWebhooks}}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{{template "base/head" .ctxData}}
|
||||
<div role="main" aria-label="{{.ctxData.Title}}" class="page-content {{.pageClass}}" {{if .dataGlobalInit}}data-global-init="{{.dataGlobalInit}}"{{end}}>
|
||||
{{template "base/head" ctx.RootData}}
|
||||
<div role="main" aria-label="{{ctx.RootData.Title}}" class="page-content {{.pageClass}}" {{if .dataGlobalInit}}data-global-init="{{.dataGlobalInit}}"{{end}}>
|
||||
<div class="ui container fluid padded flex-container">
|
||||
{{template "admin/navbar" .ctxData}}
|
||||
{{template "admin/navbar" ctx.RootData}}
|
||||
<div class="flex-container-main">
|
||||
{{template "base/alert" .ctxData}}
|
||||
{{template "base/alert" ctx.RootData}}
|
||||
{{/* block: admin-setting-content */}}
|
||||
|
||||
{{if false}}{{/* to make html structure "likely" complete to prevent IDE warnings */}}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</details>
|
||||
<details class="item toggleable-item" {{if or .PageIsAdminUsers .PageIsAdminEmails .PageIsAdminOrganizations .PageIsAdminAuthentications}}open{{end}}>
|
||||
<details class="item toggleable-item" {{if or .PageIsAdminUsers .PageIsAdminBadges .PageIsAdminEmails .PageIsAdminOrganizations .PageIsAdminAuthentications}}open{{end}}>
|
||||
<summary>{{ctx.Locale.Tr "admin.identity_access"}}</summary>
|
||||
<div class="menu">
|
||||
<a class="{{if .PageIsAdminAuthentications}}active {{end}}item" href="{{AppSubUrl}}/-/admin/auths">
|
||||
@@ -25,6 +25,9 @@
|
||||
<a class="{{if .PageIsAdminUsers}}active {{end}}item" href="{{AppSubUrl}}/-/admin/users">
|
||||
{{ctx.Locale.Tr "admin.users"}}
|
||||
</a>
|
||||
<a class="{{if .PageIsAdminBadges}}active {{end}}item" href="{{AppSubUrl}}/-/admin/badges">
|
||||
{{ctx.Locale.Tr "admin.badges"}}
|
||||
</a>
|
||||
<a class="{{if .PageIsAdminEmails}}active {{end}}item" href="{{AppSubUrl}}/-/admin/emails">
|
||||
{{ctx.Locale.Tr "admin.emails"}}
|
||||
</a>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin notice")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin notice")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.notices.system_notice_list"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
@@ -50,7 +50,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="ui small button" id="delete-selection" data-link="{{.Link}}/delete" data-redirect="?page={{.Page.Paginater.Current}}">
|
||||
<button class="ui small button" id="delete-selection" data-link="{{.Link}}/delete">
|
||||
<span class="text">{{ctx.Locale.Tr "admin.notices.delete_selected"}}</span>
|
||||
</button>
|
||||
</th>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.orgs.org_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.packages.package_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .TotalCount}},
|
||||
@@ -89,7 +89,7 @@
|
||||
</div>
|
||||
|
||||
<form class="ui small modal form-fetch-action" method="post" id="admin-package-delete-modal">
|
||||
<div class="header">{{svg "octicon-trash"}} {{ctx.Locale.Tr "packages.settings.delete"}}</div>
|
||||
<div class="header">{{svg "octicon-trash"}} {{ctx.Locale.Tr "packages.settings.delete.version"}}</div>
|
||||
<div class="content">
|
||||
{{ctx.Locale.Tr "packages.settings.delete.notice" (HTMLFormat `<span class="%s"></span>` "package-name") (HTMLFormat `<span class="%s"></span>` "package-version")}}
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
|
||||
<div class="admin-setting-content">
|
||||
{{template "admin/trace_tabs" .}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.monitor.queues"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.monitor.queue" .Queue.GetName}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.repos.repo_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.repos.unadopted"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin runners")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin runners")}}
|
||||
<div class="admin-setting-content">
|
||||
{{template "shared/actions/runner_edit" .}}
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin")}}
|
||||
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
<div class="admin-setting-content">
|
||||
|
||||
{{template "admin/trace_tabs" .}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin monitor")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin monitor")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.dashboard.statistic"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<dl class="admin-dl-horizontal">
|
||||
<dl class="admin-dl-horizontal" data-fetch-url="{{AppSubUrl}}/-/admin/system_status" data-fetch-sync="$morph" data-fetch-trigger="every 5s">
|
||||
<dt>{{ctx.Locale.Tr "admin.dashboard.server_uptime"}}</dt>
|
||||
<dd><relative-time format="duration" datetime="{{.SysStatus.StartTime}}">{{.SysStatus.StartTime}}</relative-time></dd>
|
||||
<dt>{{ctx.Locale.Tr "admin.dashboard.current_goroutine"}}</dt>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin edit user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin edit user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.users.edit_account"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.users.user_manage_panel"}} ({{ctx.Locale.Tr "admin.total" .Total}})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin new user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin new user")}}
|
||||
<div class="admin-setting-content">
|
||||
<h4 class="ui top attached header">
|
||||
{{ctx.Locale.Tr "admin.users.new_account"}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin view user")}}
|
||||
{{template "admin/layout_head" (dict "pageClass" "admin view user")}}
|
||||
|
||||
<div class="admin-setting-content">
|
||||
<div class="admin-responsive-columns">
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<div class="flex-list">
|
||||
<div class="flex-item">
|
||||
<div class="flex-item-leading">
|
||||
<div class="flex-divided-list items-with-main">
|
||||
<div class="item">
|
||||
<div class="item-leading">
|
||||
{{ctx.AvatarUtils.Avatar .User 48}}
|
||||
</div>
|
||||
<div class="flex-item-main">
|
||||
<div class="flex-item-title">
|
||||
<div class="item-main">
|
||||
<div class="item-title">
|
||||
{{template "shared/user/name" .User}}
|
||||
{{if .User.IsAdmin}}
|
||||
<span class="ui basic label">{{ctx.Locale.Tr "admin.users.admin"}}</span>
|
||||
@@ -13,34 +13,34 @@
|
||||
<span class="ui basic label">{{ctx.Locale.Tr "admin.users.bot"}}</span>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "admin.users.auth_source"}}:</b>
|
||||
{{Iif (eq .LoginSource.ID 0) (ctx.Locale.Tr "admin.users.local") .LoginSource.Name}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "admin.users.activated"}}:</b>
|
||||
{{svg (Iif .User.IsActive "octicon-check" "octicon-x")}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "admin.users.prohibit_login"}}:</b>
|
||||
{{svg (Iif .User.ProhibitLogin "octicon-check" "octicon-x")}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "admin.users.restricted"}}:</b>
|
||||
{{svg (Iif .User.IsRestricted "octicon-check" "octicon-x")}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "settings.visibility"}}:</b>
|
||||
{{if .User.Visibility.IsPublic}}{{ctx.Locale.Tr "settings.visibility.public"}}{{end}}
|
||||
{{if .User.Visibility.IsLimited}}{{ctx.Locale.Tr "settings.visibility.limited"}}{{end}}
|
||||
{{if .User.Visibility.IsPrivate}}{{ctx.Locale.Tr "settings.visibility.private"}}{{end}}
|
||||
</div>
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<b>{{ctx.Locale.Tr "admin.users.2fa"}}:</b>
|
||||
{{svg (Iif .TwoFactorEnabled "octicon-check" "octicon-x")}}
|
||||
</div>
|
||||
{{if .User.Language}}
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<span class="flex-text-inline">
|
||||
<b>{{ctx.Locale.Tr "settings.language"}}:</b>
|
||||
{{range .AllLangs}}{{if eq $.User.Language .Lang}}{{.Name}}{{end}}{{end}}
|
||||
@@ -48,12 +48,12 @@
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .User.Location}}
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<span class="flex-text-inline">{{svg "octicon-location"}}{{.User.Location}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .User.Website}}
|
||||
<div class="flex-item-body">
|
||||
<div class="item-body">
|
||||
<span class="flex-text-inline">
|
||||
{{svg "octicon-link"}}
|
||||
<a target="_blank" href="{{.User.Website}}">{{.User.Website}}</a>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="flex-list">
|
||||
<div class="flex-divided-list items-with-main">
|
||||
{{range .Emails}}
|
||||
<div class="flex-item">
|
||||
<div class="flex-item-main">
|
||||
<div class="item">
|
||||
<div class="item-main">
|
||||
<div class="flex-text-block">
|
||||
<a href="mailto:{{.Email}}">{{.Email}}</a>
|
||||
{{if .IsPrimary}}
|
||||
|
||||
Reference in new issue
Block a user