aboutsummaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-04-26 10:53:44 +0800
committerGitHub <noreply@github.com>2023-04-25 22:53:44 -0400
commit59d060622d375c4123ea88e2fa6c4f34d4fea4d3 (patch)
tree9cde11b2504d11e9b0332dffd0230678c1745227 /routers
parent5f21e0f8eb66791fc86c07baac80b485fd5965fc (diff)
downloadgitea-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.go2
-rw-r--r--routers/web/feed/file.go2
-rw-r--r--routers/web/feed/render.go12
-rw-r--r--routers/web/repo/branch.go6
-rw-r--r--routers/web/web.go4
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)