diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-04-26 10:53:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-25 22:53:44 -0400 |
commit | 59d060622d375c4123ea88e2fa6c4f34d4fea4d3 (patch) | |
tree | 9cde11b2504d11e9b0332dffd0230678c1745227 /routers | |
parent | 5f21e0f8eb66791fc86c07baac80b485fd5965fc (diff) | |
download | gitea-59d060622d375c4123ea88e2fa6c4f34d4fea4d3.tar.gz gitea-59d060622d375c4123ea88e2fa6c4f34d4fea4d3.zip |
Improve RSS (#24335)
Follow #22719
### Major changes
1. `ServerError` doesn't do format, so remove the `%s`
2. Simplify `RenderBranchFeed` (slightly)
3. Remove unused `BranchFeedRSS`
4. Make `feed.RenderBranchFeed` respect `EnableFeed` config
5. Make `RepoBranchTagSelector.vue` respect `EnableFeed` setting,
otherwise there is always RSS icon
6. The `(branchURLPrefix + item.url).replace('src', 'rss')` doesn't seem
right for all cases, for example, the string `src` could appear in
`branchURLPrefix`, so we need a separate `rssURLPrefix`
7. The `<a>` in Vue menu needs `@click.stop`, otherwise the menu itself
would be triggered at the same time
8. Change `<a><button></button></a>` to `<a role=button>`
9. Use `{{PathEscapeSegments .TreePath}}` instead of `{{range $i, $v :=
.TreeNames}}/{{$v}}{{end}}`
Screenshot of changed parts:
<details>
![image](https://user-images.githubusercontent.com/2114189/234315538-66603694-9093-48a8-af33-83575fd7a018.png)
![image](https://user-images.githubusercontent.com/2114189/234315786-f1efa60b-012e-490b-8ce2-d448dc6fe5c9.png)
![image](https://user-images.githubusercontent.com/2114189/234334941-446941bc-1baa-4256-8850-ccc439476cda.png)
</details>
### Other thoughts
Should we remove the RSS icon from the branch dropdown list? It seems
too complex for a list UI, and users already have the chance to get the
RSS feed URL from "branches" page.
---------
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/web/feed/branch.go | 2 | ||||
-rw-r--r-- | routers/web/feed/file.go | 2 | ||||
-rw-r--r-- | routers/web/feed/render.go | 12 | ||||
-rw-r--r-- | routers/web/repo/branch.go | 6 | ||||
-rw-r--r-- | routers/web/web.go | 4 |
5 files changed, 8 insertions, 18 deletions
diff --git a/routers/web/feed/branch.go b/routers/web/feed/branch.go index fb9d2a7351..22b6e2f14b 100644 --- a/routers/web/feed/branch.go +++ b/routers/web/feed/branch.go @@ -18,7 +18,7 @@ import ( func ShowBranchFeed(ctx *context.Context, repo *repo.Repository, formatType string) { commits, err := ctx.Repo.Commit.CommitsByRange(0, 10) if err != nil { - ctx.ServerError("ShowBranchFeed %s", err) + ctx.ServerError("ShowBranchFeed", err) return } diff --git a/routers/web/feed/file.go b/routers/web/feed/file.go index 3dc9a4e27f..6a8d0c454d 100644 --- a/routers/web/feed/file.go +++ b/routers/web/feed/file.go @@ -23,7 +23,7 @@ func ShowFileFeed(ctx *context.Context, repo *repo.Repository, formatType string } commits, err := ctx.Repo.GitRepo.CommitsByFileAndRange(ctx.Repo.RefName, fileName, 1) if err != nil { - ctx.ServerError("ShowBranchFeed %s", err) + ctx.ServerError("ShowBranchFeed", err) return } diff --git a/routers/web/feed/render.go b/routers/web/feed/render.go index 0f327f87f2..8931dae8cc 100644 --- a/routers/web/feed/render.go +++ b/routers/web/feed/render.go @@ -4,19 +4,15 @@ package feed import ( - model "code.gitea.io/gitea/models/repo" "code.gitea.io/gitea/modules/context" ) // RenderBranchFeed render format for branch or file func RenderBranchFeed(ctx *context.Context) { _, _, showFeedType := GetFeedType(ctx.Params(":reponame"), ctx.Req) - var renderer func(ctx *context.Context, repo *model.Repository, formatType string) - switch { - case ctx.Repo.TreePath == "": - renderer = ShowBranchFeed - case ctx.Repo.TreePath != "": - renderer = ShowFileFeed + if ctx.Repo.TreePath == "" { + ShowBranchFeed(ctx, ctx.Repo.Repository, showFeedType) + } else { + ShowFileFeed(ctx, ctx.Repo.Repository, showFeedType) } - renderer(ctx, ctx.Repo.Repository, showFeedType) } diff --git a/routers/web/repo/branch.go b/routers/web/repo/branch.go index 1014449f78..9f26634311 100644 --- a/routers/web/repo/branch.go +++ b/routers/web/repo/branch.go @@ -25,7 +25,6 @@ import ( "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/modules/web" "code.gitea.io/gitea/routers/utils" - "code.gitea.io/gitea/routers/web/feed" "code.gitea.io/gitea/services/forms" release_service "code.gitea.io/gitea/services/release" repo_service "code.gitea.io/gitea/services/repository" @@ -341,11 +340,6 @@ func getDeletedBranches(ctx *context.Context) ([]*Branch, error) { return branches, nil } -// BranchFeedRSS get feeds for tags in RSS format -func BranchFeedRSS(ctx *context.Context) { - feed.ShowBranchFeed(ctx, ctx.Repo.Repository, "rss") -} - // CreateBranch creates new branch in repository func CreateBranch(ctx *context.Context) { form := web.GetForm(ctx).(*forms.NewBranchForm) diff --git a/routers/web/web.go b/routers/web/web.go index af39059325..779499889f 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1454,8 +1454,8 @@ func RegisterRoutes(m *web.Route) { m.Get("/cherry-pick/{sha:([a-f0-9]{7,40})$}", repo.SetEditorconfigIfExists, repo.CherryPick) }, repo.MustBeNotEmpty, context.RepoRef(), reqRepoCodeReader) - m.Get("/rss/branch/*", context.RepoRefByType(context.RepoRefBranch), feed.RenderBranchFeed) - m.Get("/atom/branch/*", context.RepoRefByType(context.RepoRefBranch), feed.RenderBranchFeed) + m.Get("/rss/branch/*", context.RepoRefByType(context.RepoRefBranch), feedEnabled, feed.RenderBranchFeed) + m.Get("/atom/branch/*", context.RepoRefByType(context.RepoRefBranch), feedEnabled, feed.RenderBranchFeed) m.Group("/src", func() { m.Get("/branch/*", context.RepoRefByType(context.RepoRefBranch), repo.Home) |