mirror of
https://github.com/go-gitea/gitea
synced 2024-12-22 08:34:26 +00:00
Fix various trivial problems (#32861)
1. add/improve comments to help future readers could understand the problem more easily. 2. add an error log to LDAP with username fallback 3. use `or` instead of `Iif` for "repo/branch_dropdown" (`Iif` was a mistake, but it doesn't really affect the UI) 4. add `tw-font-mono` style to container digest to match dockerhub 5. fix a bug in RepoBranchTagSelector: the form is not updated when there is no click to an item --------- Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
parent
9f9bff0f04
commit
2d7e6e9482
@ -69,7 +69,7 @@ func TestAggregateJobStatus(t *testing.T) {
|
|||||||
{[]Status{StatusFailure, StatusBlocked}, StatusFailure},
|
{[]Status{StatusFailure, StatusBlocked}, StatusFailure},
|
||||||
|
|
||||||
// skipped with other status
|
// skipped with other status
|
||||||
// TODO: need to clarify whether a PR with "skipped" job status is considered as "mergeable" or not.
|
// "all skipped" is also considered as "mergeable" by "services/actions.toCommitStatus", the same as GitHub
|
||||||
{[]Status{StatusSkipped}, StatusSkipped},
|
{[]Status{StatusSkipped}, StatusSkipped},
|
||||||
{[]Status{StatusSkipped, StatusSuccess}, StatusSuccess},
|
{[]Status{StatusSkipped, StatusSuccess}, StatusSuccess},
|
||||||
{[]Status{StatusSkipped, StatusFailure}, StatusFailure},
|
{[]Status{StatusSkipped, StatusFailure}, StatusFailure},
|
||||||
|
@ -129,7 +129,8 @@ func SpecializedMarkdown(ctx *markup.RenderContext) *GlodmarkRender {
|
|||||||
Enabled: setting.Markdown.EnableMath,
|
Enabled: setting.Markdown.EnableMath,
|
||||||
ParseDollarInline: true,
|
ParseDollarInline: true,
|
||||||
ParseDollarBlock: true,
|
ParseDollarBlock: true,
|
||||||
ParseSquareBlock: true, // TODO: this is a bad syntax, it should be deprecated in the future (by some config options)
|
ParseSquareBlock: true, // TODO: this is a bad syntax "\[ ... \]", it conflicts with normal markdown escaping, it should be deprecated in the future (by some config options)
|
||||||
|
// ParseBracketInline: true, // TODO: this is also a bad syntax "\( ... \)", it also conflicts, it should be deprecated in the future
|
||||||
}),
|
}),
|
||||||
meta.Meta,
|
meta.Meta,
|
||||||
),
|
),
|
||||||
|
@ -12,6 +12,9 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// CanUserForkBetweenOwners returns true if user can fork between owners.
|
||||||
|
// By default, a user can fork a repository from another owner, but not from themselves.
|
||||||
|
// Many users really like to fork their own repositories, so add an experimental setting to allow this.
|
||||||
func CanUserForkBetweenOwners(id1, id2 int64) bool {
|
func CanUserForkBetweenOwners(id1, id2 int64) bool {
|
||||||
if id1 != id2 {
|
if id1 != id2 {
|
||||||
return true
|
return true
|
||||||
|
@ -205,8 +205,11 @@ func ViewPost(ctx *context_module.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: "ComposeMetas" (usually for comment) is not quite right, but it is still the same as what template "RenderCommitMessage" does.
|
||||||
|
// need to be refactored together in the future
|
||||||
metas := ctx.Repo.Repository.ComposeMetas(ctx)
|
metas := ctx.Repo.Repository.ComposeMetas(ctx)
|
||||||
|
|
||||||
|
// the title for the "run" is from the commit message
|
||||||
resp.State.Run.Title = run.Title
|
resp.State.Run.Title = run.Title
|
||||||
resp.State.Run.TitleHTML = templates.NewRenderUtils(ctx).RenderCommitMessage(run.Title, metas)
|
resp.State.Run.TitleHTML = templates.NewRenderUtils(ctx).RenderCommitMessage(run.Title, metas)
|
||||||
resp.State.Run.Link = run.Link()
|
resp.State.Run.Link = run.Link()
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"code.gitea.io/gitea/models/auth"
|
"code.gitea.io/gitea/models/auth"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
auth_module "code.gitea.io/gitea/modules/auth"
|
auth_module "code.gitea.io/gitea/modules/auth"
|
||||||
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/optional"
|
"code.gitea.io/gitea/modules/optional"
|
||||||
asymkey_service "code.gitea.io/gitea/services/asymkey"
|
asymkey_service "code.gitea.io/gitea/services/asymkey"
|
||||||
source_service "code.gitea.io/gitea/services/auth/source"
|
source_service "code.gitea.io/gitea/services/auth/source"
|
||||||
@ -31,7 +32,12 @@ func (source *Source) Authenticate(ctx context.Context, user *user_model.User, u
|
|||||||
return nil, user_model.ErrUserNotExist{Name: loginName}
|
return nil, user_model.ErrUserNotExist{Name: loginName}
|
||||||
}
|
}
|
||||||
// Fallback.
|
// Fallback.
|
||||||
|
// FIXME: this fallback would cause problems when the "Username" attribute is not set and a user inputs their email.
|
||||||
|
// In this case, the email would be used as the username, and will cause the "CreateUser" failure for the first login.
|
||||||
if sr.Username == "" {
|
if sr.Username == "" {
|
||||||
|
if strings.Contains(userName, "@") {
|
||||||
|
log.Error("No username in search result (Username Attribute is not set properly?), using email as username might cause problems")
|
||||||
|
}
|
||||||
sr.Username = userName
|
sr.Username = userName
|
||||||
}
|
}
|
||||||
if sr.Mail == "" {
|
if sr.Mail == "" {
|
||||||
|
@ -36,9 +36,10 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{range .PackageDescriptor.Metadata.Manifests}}
|
{{range .PackageDescriptor.Metadata.Manifests}}
|
||||||
|
{{/* "unknown/unknown" is attestation-manifest, so we should skip it */}}
|
||||||
{{if ne .Platform "unknown/unknown"}}
|
{{if ne .Platform "unknown/unknown"}}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
|
<td><a class="tw-font-mono" href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
|
||||||
<td>{{.Platform}}</td>
|
<td>{{.Platform}}</td>
|
||||||
<td>{{FileSize .Size}}</td>
|
<td>{{FileSize .Size}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -68,11 +68,13 @@
|
|||||||
<p id="cherry-pick-content" class="branch-dropdown"></p>
|
<p id="cherry-pick-content" class="branch-dropdown"></p>
|
||||||
|
|
||||||
<form method="get">
|
<form method="get">
|
||||||
|
{{/*FIXME: CurrentRefShortName seems not making sense here (old code),
|
||||||
|
because the "commit page" has no "$.BranchName" info, so only using DefaultBranch should be enough */}}
|
||||||
{{template "repo/branch_dropdown" dict
|
{{template "repo/branch_dropdown" dict
|
||||||
"Repository" .Repository
|
"Repository" .Repository
|
||||||
"ShowTabBranches" true
|
"ShowTabBranches" true
|
||||||
"CurrentRefType" "branch"
|
"CurrentRefType" "branch"
|
||||||
"CurrentRefShortName" (Iif $.BranchName $.Repository.DefaultBranch)
|
"CurrentRefShortName" (or $.BranchName $.Repository.DefaultBranch)
|
||||||
"RefFormActionTemplate" (print "{RepoLink}/_cherrypick/" .CommitID "/{RefShortName}")
|
"RefFormActionTemplate" (print "{RepoLink}/_cherrypick/" .CommitID "/{RefShortName}")
|
||||||
}}
|
}}
|
||||||
<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br>
|
<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br>
|
||||||
|
@ -23,6 +23,9 @@
|
|||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
<a class="item label-filter-query-default" href="{{QueryBuild $queryLink "labels" NIL}}">{{ctx.Locale.Tr "repo.issues.filter_label_no_select"}}</a>
|
<a class="item label-filter-query-default" href="{{QueryBuild $queryLink "labels" NIL}}">{{ctx.Locale.Tr "repo.issues.filter_label_no_select"}}</a>
|
||||||
<a class="item label-filter-query-not-set" href="{{QueryBuild $queryLink "labels" 0}}">{{ctx.Locale.Tr "repo.issues.filter_label_select_no_label"}}</a>
|
<a class="item label-filter-query-not-set" href="{{QueryBuild $queryLink "labels" 0}}">{{ctx.Locale.Tr "repo.issues.filter_label_select_no_label"}}</a>
|
||||||
|
{{/* The logic here is not the same as the label selector in the issue sidebar.
|
||||||
|
The one in the issue sidebar renders "repo labels | divider | org labels".
|
||||||
|
Maybe the logic should be updated to be consistent.*/}}
|
||||||
{{$previousExclusiveScope := "_no_scope"}}
|
{{$previousExclusiveScope := "_no_scope"}}
|
||||||
{{range .Labels}}
|
{{range .Labels}}
|
||||||
{{$exclusiveScope := .ExclusiveScope}}
|
{{$exclusiveScope := .ExclusiveScope}}
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{{end}}{{/*if .EnablePasswordSignInForm*/}}
|
{{end}}{{/*if .EnablePasswordSignInForm*/}}
|
||||||
|
{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
|
||||||
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
|
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
|
||||||
{{if and $showOAuth2Methods .EnablePasswordSignInForm}}
|
{{if and $showOAuth2Methods .EnablePasswordSignInForm}}
|
||||||
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
|
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
|
||||||
|
@ -47,6 +47,8 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
|
||||||
|
{{/* TODO: it seems that "EnableSSPI" is only set in "sign-in" handlers, but it should use the same logic to control its display */}}
|
||||||
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
|
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
|
||||||
{{if $showOAuth2Methods}}
|
{{if $showOAuth2Methods}}
|
||||||
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
|
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
{{template "repo/issue/filter_item_label" dict "Labels" .Labels "QueryLink" $queryLinkWithFilter "SupportArchivedLabel" true}}
|
{{template "repo/issue/filter_item_label" dict "Labels" .Labels "QueryLink" $queryLinkWithFilter "SupportArchivedLabel" true}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
|
{{/* at the moment there is no easy way to get poster candidates on this page, so only show a username input, search for what the end user enters */}}
|
||||||
{{if ne $.ViewType "created_by"}}
|
{{if ne $.ViewType "created_by"}}
|
||||||
{{template "repo/issue/filter_item_user_fetch" dict
|
{{template "repo/issue/filter_item_user_fetch" dict
|
||||||
"QueryParamKey" "poster"
|
"QueryParamKey" "poster"
|
||||||
@ -70,6 +71,7 @@
|
|||||||
}}
|
}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
|
{{/* at the moment there is no easy way to get assignee candidates on this page, so only show a username input, search for what the end user enters */}}
|
||||||
{{if ne $.ViewType "assigned"}}
|
{{if ne $.ViewType "assigned"}}
|
||||||
{{template "repo/issue/filter_item_user_fetch" dict
|
{{template "repo/issue/filter_item_user_fetch" dict
|
||||||
"QueryParamKey" "assignee"
|
"QueryParamKey" "assignee"
|
||||||
|
@ -113,6 +113,16 @@ const sfc = {
|
|||||||
if (this.menuVisible) this.menuVisible = false;
|
if (this.menuVisible) this.menuVisible = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
if (this.refFormActionTemplate) {
|
||||||
|
// if the selector is used in a form and needs to change the form action,
|
||||||
|
// make a mock item and select it to update the form action
|
||||||
|
const item: ListItem = {selected: true, refType: this.currentRefType, refShortName: this.currentRefShortName, rssFeedLink: ''};
|
||||||
|
this.selectItem(item);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
selectItem(item: ListItem) {
|
selectItem(item: ListItem) {
|
||||||
this.menuVisible = false;
|
this.menuVisible = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user