diff --git a/modules/markup/markdown/markdown.go b/modules/markup/markdown/markdown.go
index 790de93c09d..0467ed9ba0c 100644
--- a/modules/markup/markdown/markdown.go
+++ b/modules/markup/markdown/markdown.go
@@ -65,17 +65,17 @@ func newParserContext(ctx *markup.RenderContext) parser.Context {
return pc
}
-type GlodmarkRender struct {
+type GoldmarkRender struct {
ctx *markup.RenderContext
goldmarkMarkdown goldmark.Markdown
}
-func (r *GlodmarkRender) Convert(source []byte, writer io.Writer, opts ...parser.ParseOption) error {
+func (r *GoldmarkRender) Convert(source []byte, writer io.Writer, opts ...parser.ParseOption) error {
return r.goldmarkMarkdown.Convert(source, writer, opts...)
}
-func (r *GlodmarkRender) highlightingRenderer(w util.BufWriter, c highlighting.CodeBlockContext, entering bool) {
+func (r *GoldmarkRender) highlightingRenderer(w util.BufWriter, c highlighting.CodeBlockContext, entering bool) {
if entering {
languageBytes, _ := c.Language()
languageStr := giteautil.IfZero(string(languageBytes), "text")
@@ -136,10 +136,10 @@ func goldmarkDefaultParser() parser.Parser {
}
// SpecializedMarkdown sets up the Gitea specific markdown extensions
-func SpecializedMarkdown(ctx *markup.RenderContext) *GlodmarkRender {
+func SpecializedMarkdown(ctx *markup.RenderContext) *GoldmarkRender {
// TODO: it could use a pool to cache the renderers to reuse them with different contexts
// at the moment it is fast enough (see the benchmarks)
- r := &GlodmarkRender{ctx: ctx}
+ r := &GoldmarkRender{ctx: ctx}
r.goldmarkMarkdown = goldmark.New(
goldmark.WithParser(goldmarkDefaultParser()),
goldmark.WithExtensions(
diff --git a/routers/web/repo/issue_view.go b/routers/web/repo/issue_view.go
index dfff6c295b5..ac5a3beb036 100644
--- a/routers/web/repo/issue_view.go
+++ b/routers/web/repo/issue_view.go
@@ -4,6 +4,7 @@
package repo
import (
+ "errors"
"fmt"
"math/big"
"net/http"
@@ -502,7 +503,9 @@ func (prInfo *pullRequestViewInfo) prepareMergeBoxCommitSigning(ctx *context.Con
wontSignReason = string(err.(*asymkey_service.ErrWontSign).Reason)
} else {
wontSignReason = "error"
- log.Error("Error whilst checking if could sign pr %d in repo %s. Error: %v", pull.ID, pull.BaseRepo.FullName(), err)
+ if !errors.Is(err, util.ErrNotExist) {
+ log.Error("Error whilst checking if could sign pr %d in repo %s. Error: %v", pull.ID, pull.BaseRepo.FullName(), err)
+ }
}
}
}
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index fcd45deea0a..650f94110ff 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -204,7 +204,9 @@ func GetPullDiffStats(ctx *context.Context) {
// do not report 500 server error to end users if error occurs, otherwise a PR missing ref won't be able to view.
headCommitID, err := ctx.Repo.GitRepo.GetRefCommitID(pull.GetGitHeadRefName())
- if err != nil {
+ if errors.Is(err, util.ErrNotExist) {
+ return
+ } else if err != nil {
log.Error("Failed to GetRefCommitID: %v, repo: %v", err, ctx.Repo.Repository.FullName())
return
}
@@ -375,7 +377,7 @@ func (prInfo *pullRequestViewInfo) prepareViewFillCompareInfo(ctx *context.Conte
pull := prInfo.issue.PullRequest
prInfo.CompareInfo, err = git_service.GetCompareInfo(ctx, ctx.Repo.Repository, ctx.Repo.Repository, ctx.Repo.GitRepo, baseRef, git.RefName(pull.GetGitHeadRefName()), false, false)
if err != nil {
- isKnownErrorForBroken := gitcmd.IsStderr(err, gitcmd.StderrNotValidObjectName) || gitcmd.IsStderr(err, gitcmd.StderrUnknownRevisionOrPath)
+ isKnownErrorForBroken := errors.Is(err, util.ErrNotExist) || gitcmd.IsStderr(err, gitcmd.StderrNotValidObjectName) || gitcmd.IsStderr(err, gitcmd.StderrUnknownRevisionOrPath)
if !isKnownErrorForBroken {
log.Error("GetCompareInfo: %v", err)
}
diff --git a/routers/web/repo/pull_merge_form.go b/routers/web/repo/pull_merge_form.go
index 8fc236d4b4f..668717604f7 100644
--- a/routers/web/repo/pull_merge_form.go
+++ b/routers/web/repo/pull_merge_form.go
@@ -4,6 +4,7 @@
package repo
import (
+ "errors"
"html/template"
pull_model "gitea.dev/models/pull"
@@ -11,6 +12,7 @@ import (
"gitea.dev/models/unit"
"gitea.dev/modules/svg"
"gitea.dev/modules/templates"
+ "gitea.dev/modules/util"
"gitea.dev/services/context"
pull_service "gitea.dev/services/pull"
)
@@ -61,12 +63,12 @@ func (prInfo *pullRequestViewInfo) prepareMergeBoxFormProps(ctx *context.Context
}
defaultMergeTitle, defaultMergeBody, err := pull_service.GetDefaultMergeMessage(ctx, ctx.Repo.GitRepo, pull, mergeStyle)
- if err != nil {
+ if err != nil && !errors.Is(err, util.ErrNotExist) {
ctx.ServerError("GetDefaultMergeMessage", err)
return
}
defaultSquashMergeTitle, defaultSquashMergeBody, err := pull_service.GetDefaultMergeMessage(ctx, ctx.Repo.GitRepo, pull, repo_model.MergeStyleSquash)
- if err != nil {
+ if err != nil && !errors.Is(err, util.ErrNotExist) {
ctx.ServerError("GetDefaultSquashMergeMessage", err)
return
}
diff --git a/templates/devtest/flex-list.tmpl b/templates/devtest/flex-list.tmpl
index 22030202440..26df0920c5d 100644
--- a/templates/devtest/flex-list.tmpl
+++ b/templates/devtest/flex-list.tmpl
@@ -72,7 +72,7 @@
- Go
+ Go
{{svg "octicon-star" 16}}45000
{{svg "octicon-git-branch" 16}}1234
diff --git a/templates/devtest/toast-and-message.tmpl b/templates/devtest/toast-and-message.tmpl
index 484110ef1bf..85385082b76 100644
--- a/templates/devtest/toast-and-message.tmpl
+++ b/templates/devtest/toast-and-message.tmpl
@@ -8,6 +8,7 @@
+
diff --git a/templates/explore/repos.tmpl b/templates/explore/repos.tmpl
index 68da3983063..02ea81b3688 100644
--- a/templates/explore/repos.tmpl
+++ b/templates/explore/repos.tmpl
@@ -3,6 +3,7 @@
{{template "explore/navbar" .}}
{{template "shared/repo/search" .}}
+
{{template "shared/repo/list" .}}
{{template "base/paginate" .}}
diff --git a/templates/org/home.tmpl b/templates/org/home.tmpl
index 12b41c3e942..d1472a889ee 100644
--- a/templates/org/home.tmpl
+++ b/templates/org/home.tmpl
@@ -9,6 +9,7 @@
{{.ProfileReadmeContent}}
{{end}}
{{template "shared/repo/search" .}}
+
{{if not .Repos}}
{{svg "octicon-repo" 48}}
diff --git a/templates/org/member/members.tmpl b/templates/org/member/members.tmpl
index 7c6b097765b..1a8aefa7a73 100644
--- a/templates/org/member/members.tmpl
+++ b/templates/org/member/members.tmpl
@@ -9,16 +9,13 @@
{{ctx.Locale.Tr "org.teams.manage_team_member_prompt"}}
{{ctx.Locale.Tr "org.teams.manage_team_member"}}
-
{{end}}
-
+
{{range .Members}}
{{$isPublic := index $.MembersIsPublicMember .ID}}
diff --git a/templates/shared/repo/list.tmpl b/templates/shared/repo/list.tmpl
index af2f5d97003..0b84aa0812e 100644
--- a/templates/shared/repo/list.tmpl
+++ b/templates/shared/repo/list.tmpl
@@ -36,8 +36,8 @@
{{if .PrimaryLanguage}}
-
-
+
+
{{.PrimaryLanguage.Language}}
{{end}}
diff --git a/templates/shared/repo/search.tmpl b/templates/shared/repo/search.tmpl
index a852e65582d..36d5fcfa158 100644
--- a/templates/shared/repo/search.tmpl
+++ b/templates/shared/repo/search.tmpl
@@ -1,5 +1,5 @@
-
-
{{ctx.Locale.Tr "filter_title"}}
+
+ {{ctx.Locale.Tr "filter_title"}}
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
-
-
{{ctx.Locale.Tr "repo.issues.filter_sort"}}
+
+
{{ctx.Locale.Tr "repo.issues.filter_sort"}}
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
{{end}}
-
diff --git a/templates/shared/search/code/results.tmpl b/templates/shared/search/code/results.tmpl
index 42f7a181a38..38283ce234f 100644
--- a/templates/shared/search/code/results.tmpl
+++ b/templates/shared/search/code/results.tmpl
@@ -1,10 +1,10 @@
diff --git a/templates/user/notification/notification_subscriptions.tmpl b/templates/user/notification/notification_subscriptions.tmpl
index 79abcbeb4d6..038a107ebcd 100644
--- a/templates/user/notification/notification_subscriptions.tmpl
+++ b/templates/user/notification/notification_subscriptions.tmpl
@@ -68,6 +68,7 @@
{{end}}
{{else}}
{{template "shared/repo/search" .}}
+
{{template "shared/repo/list" .}}
{{template "base/paginate" .}}
{{end}}
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index 74a53b937d1..a0e9fcb9272 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -18,6 +18,7 @@
{{else if eq .TabName "stars"}}
{{template "shared/repo/search" .}}
+
{{template "shared/repo/list" .}}
{{template "base/paginate" .}}
@@ -31,6 +32,7 @@
{{template "repo/user_cards" .}}
{{else}}
{{template "shared/repo/search" .}}
+
{{template "shared/repo/list" .}}
{{template "base/paginate" .}}
{{end}}
diff --git a/web_src/css/base.css b/web_src/css/base.css
index d26711b1541..4b489362afb 100644
--- a/web_src/css/base.css
+++ b/web_src/css/base.css
@@ -278,6 +278,7 @@ a {
a:hover {
text-decoration-line: underline;
+ text-underline-position: under; /* necessary for CJK fonts, otherwise, default "auto" makes the underline cross-over the CJK text bottom */
}
/* a = always colored, underlined on hover */
diff --git a/web_src/css/modules/label.css b/web_src/css/modules/label.css
index fb522fe5281..afc5eaf7ae6 100644
--- a/web_src/css/modules/label.css
+++ b/web_src/css/modules/label.css
@@ -39,25 +39,16 @@ a.ui.label {
height: 2.1666em;
}
-.ui.label > .color-icon {
- margin-left: 0;
-}
-
.ui.label > .icon {
width: auto;
margin: 0 0.75em 0 0;
}
.ui.label > .detail {
- display: inline-block;
- vertical-align: top;
font-weight: var(--font-weight-medium);
- margin-left: 1em;
+ margin-left: 0.5em; /* our .ui.label already provides flex gap, so the margin here shouldn't be too large */
opacity: 0.8;
}
-.ui.label > .detail .icon {
- margin: 0 0.25em 0 0;
-}
.ui.label > .close.icon,
.ui.label > .delete.icon {
diff --git a/web_src/css/modules/toast.css b/web_src/css/modules/toast.css
index 330d3b176eb..33c1f7547ce 100644
--- a/web_src/css/modules/toast.css
+++ b/web_src/css/modules/toast.css
@@ -22,6 +22,10 @@
overflow-wrap: anywhere;
}
+.toast-body pre {
+ white-space: pre-wrap; /* online editor, when git hook fails, the rendered message uses "pre" */
+}
+
.toast-close {
border-radius: var(--border-radius);
width: 30px;
diff --git a/web_src/js/features/repo-search.ts b/web_src/js/features/repo-search.ts
index 8fde3c9897a..caa6ed73653 100644
--- a/web_src/js/features/repo-search.ts
+++ b/web_src/js/features/repo-search.ts
@@ -1,23 +1,12 @@
+import {registerGlobalInitFunc} from '../modules/observer.ts';
+import {addDelegatedEventListener, queryElems} from '../utils/dom.ts';
+
export function initRepositorySearch() {
- const repositorySearchForm = document.querySelector
('#repo-search-form');
- if (!repositorySearchForm) return;
-
- repositorySearchForm.addEventListener('change', (e: Event) => {
- e.preventDefault();
-
- const params = new URLSearchParams();
- for (const [key, value] of new FormData(repositorySearchForm).entries()) {
- params.set(key, value as string);
- }
- if ((e.target as HTMLInputElement).name === 'clear-filter') {
- params.delete('archived');
- params.delete('fork');
- params.delete('mirror');
- params.delete('template');
- params.delete('private');
- }
-
- params.delete('clear-filter');
- window.location.search = params.toString();
+ registerGlobalInitFunc('initRepositorySearch', (form: HTMLFormElement) => {
+ addDelegatedEventListener(form, 'change', 'input[type="radio"]', () => form.submit());
+ form.querySelector('.repo-search-filter-reset')!.addEventListener('click', () => {
+ queryElems(form, 'input[type="radio"]', (el: HTMLInputElement) => el.checked = false);
+ form.submit();
+ });
});
}
diff --git a/web_src/js/modules/devtest.ts b/web_src/js/modules/devtest.ts
index 634d16293e4..598690fccd7 100644
--- a/web_src/js/modules/devtest.ts
+++ b/web_src/js/modules/devtest.ts
@@ -19,6 +19,9 @@ function initDevtestPage() {
levelMap[level](message);
});
}
+ document.querySelector('.toast-test-button-pre')!.addEventListener('click', () => {
+ showErrorToast(html`message
pre ${'a'.repeat(200)}summary
details `, {useHtmlBody: true});
+ });
}
const modalButtons = document.querySelector('.modal-buttons');