mirror of https://github.com/go-gitea/gitea.git
Update the list of watchers and stargazers when clicking watch/unwatch or star/unstar (#32570)
We make sure the user cards are updated - Fixes https://github.com/go-gitea/gitea/issues/32561 I also removed `ctx.Data["PageIsWatchers"] = true` and `ctx.Data["PageIsStargazers"] = true` as they are not used anywhere. # Before ![before](https://github.com/user-attachments/assets/e3bc3235-35eb-4eda-862d-bdf2510282ea) # After ![after](https://github.com/user-attachments/assets/bc0488a5-8399-4cf6-95c9-17328a9702eb) --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
parent
ae90b21db0
commit
f2a9951741
|
@ -352,6 +352,9 @@ func Action(ctx *context.Context) {
|
||||||
ctx.Data["IsStaringRepo"] = repo_model.IsStaring(ctx, ctx.Doer.ID, ctx.Repo.Repository.ID)
|
ctx.Data["IsStaringRepo"] = repo_model.IsStaring(ctx, ctx.Doer.ID, ctx.Repo.Repository.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// see the `hx-trigger="refreshUserCards ..."` comments in tmpl
|
||||||
|
ctx.RespHeader().Add("hx-trigger", "refreshUserCards")
|
||||||
|
|
||||||
switch ctx.PathParam(":action") {
|
switch ctx.PathParam(":action") {
|
||||||
case "watch", "unwatch", "star", "unstar":
|
case "watch", "unwatch", "star", "unstar":
|
||||||
// we have to reload the repository because NumStars or NumWatching (used in the templates) has just changed
|
// we have to reload the repository because NumStars or NumWatching (used in the templates) has just changed
|
||||||
|
|
|
@ -1123,8 +1123,6 @@ func RenderUserCards(ctx *context.Context, total int, getter func(opts db.ListOp
|
||||||
func Watchers(ctx *context.Context) {
|
func Watchers(ctx *context.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("repo.watchers")
|
ctx.Data["Title"] = ctx.Tr("repo.watchers")
|
||||||
ctx.Data["CardsTitle"] = ctx.Tr("repo.watchers")
|
ctx.Data["CardsTitle"] = ctx.Tr("repo.watchers")
|
||||||
ctx.Data["PageIsWatchers"] = true
|
|
||||||
|
|
||||||
RenderUserCards(ctx, ctx.Repo.Repository.NumWatches, func(opts db.ListOptions) ([]*user_model.User, error) {
|
RenderUserCards(ctx, ctx.Repo.Repository.NumWatches, func(opts db.ListOptions) ([]*user_model.User, error) {
|
||||||
return repo_model.GetRepoWatchers(ctx, ctx.Repo.Repository.ID, opts)
|
return repo_model.GetRepoWatchers(ctx, ctx.Repo.Repository.ID, opts)
|
||||||
}, tplWatchers)
|
}, tplWatchers)
|
||||||
|
@ -1134,7 +1132,6 @@ func Watchers(ctx *context.Context) {
|
||||||
func Stars(ctx *context.Context) {
|
func Stars(ctx *context.Context) {
|
||||||
ctx.Data["Title"] = ctx.Tr("repo.stargazers")
|
ctx.Data["Title"] = ctx.Tr("repo.stargazers")
|
||||||
ctx.Data["CardsTitle"] = ctx.Tr("repo.stargazers")
|
ctx.Data["CardsTitle"] = ctx.Tr("repo.stargazers")
|
||||||
ctx.Data["PageIsStargazers"] = true
|
|
||||||
RenderUserCards(ctx, ctx.Repo.Repository.NumStars, func(opts db.ListOptions) ([]*user_model.User, error) {
|
RenderUserCards(ctx, ctx.Repo.Repository.NumStars, func(opts db.ListOptions) ([]*user_model.User, error) {
|
||||||
return repo_model.GetStargazers(ctx, ctx.Repo.Repository, opts)
|
return repo_model.GetStargazers(ctx, ctx.Repo.Repository, opts)
|
||||||
}, tplWatchers)
|
}, tplWatchers)
|
||||||
|
|
|
@ -1,4 +1,14 @@
|
||||||
<div class="user-cards">
|
<!-- Refresh the content if a htmx response contains "HX-Trigger" header.
|
||||||
|
This usually happens when a user stays on the watchers/stargazers page
|
||||||
|
when they watched/unwatched/starred/unstarred and the list should be refreshed.
|
||||||
|
To test go to the watchers page and click the watch button. The user cards should reload.
|
||||||
|
At the moment, no JS initialization would re-trigger (fortunately there is no JS for this page).
|
||||||
|
-->
|
||||||
|
<div class="no-loading-indicator tw-hidden"></div>
|
||||||
|
<div class="user-cards"
|
||||||
|
hx-trigger="refreshUserCards from:body" hx-indicator=".no-loading-indicator"
|
||||||
|
hx-get="{{$.CurrentURL}}" hx-swap="outerHTML" hx-select=".user-cards"
|
||||||
|
>
|
||||||
{{if .CardsTitle}}
|
{{if .CardsTitle}}
|
||||||
<h2 class="ui dividing header">
|
<h2 class="ui dividing header">
|
||||||
{{.CardsTitle}}
|
{{.CardsTitle}}
|
||||||
|
|
Loading…
Reference in New Issue