summaryrefslogtreecommitdiffstats
path: root/templates/repo
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-05-16 03:02:10 +0800
committerGitHub <noreply@github.com>2023-05-15 19:02:10 +0000
commit99283415bcbaa8acfe4d249ce3040de2f3a8b006 (patch)
treefec2fa557f45ffce4deea301758b869d87d5e4b9 /templates/repo
parentb9fad73e9fcf40e81cde3304198105af6c668421 (diff)
downloadgitea-99283415bcbaa8acfe4d249ce3040de2f3a8b006.tar.gz
gitea-99283415bcbaa8acfe4d249ce3040de2f3a8b006.zip
Refactor Pull Mirror and fix out-of-sync bugs (#24732)
The "mirror" table and "repository" table might be out-of-sync in some cases. It means that "IsMirror=true" but "Mirror=nil" This PR removes unnecessary "Mirror" field, rename "Mirror" to "PullMirror" and fix nil panic bug. Screenshot of changed templates: ![image](https://github.com/go-gitea/gitea/assets/2114189/c0f2bdfc-5911-43ea-b989-b19619de4235) ![image](https://github.com/go-gitea/gitea/assets/2114189/1078b41a-484f-4c06-8c2f-edb9e658275d)
Diffstat (limited to 'templates/repo')
-rw-r--r--templates/repo/header.tmpl4
-rw-r--r--templates/repo/settings/options.tmpl27
2 files changed, 20 insertions, 11 deletions
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl
index 03f5a2e78f..33791fd512 100644
--- a/templates/repo/header.tmpl
+++ b/templates/repo/header.tmpl
@@ -39,8 +39,8 @@
<a class="rss-icon gt-ml-3" href="{{$.RepoLink}}.rss" data-tooltip-content="{{$.locale.Tr "rss_feed"}}">{{svg "octicon-rss" 18}}</a>
{{end}}
</div>
- {{if $.IsPullMirror}}
- {{$address := MirrorRemoteAddress $.Context . $.Mirror.GetRemoteName false}}
+ {{if $.PullMirror}}
+ {{$address := MirrorRemoteAddress $.Context . $.PullMirror.GetRemoteName false}}
<div class="fork-flag">{{$.locale.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{$address.Address}}">{{$address.Address}}</a></div>
{{end}}
{{if .IsFork}}<div class="fork-flag">{{$.locale.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{.BaseRepo.FullName}}</a></div>{{end}}
diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl
index b26656bf28..efcdaceb37 100644
--- a/templates/repo/settings/options.tmpl
+++ b/templates/repo/settings/options.tmpl
@@ -84,12 +84,21 @@
</tr>
</thead>
{{end}}
- {{if .Repository.IsMirror}}
+ {{if and .Repository.IsMirror (not .PullMirror)}}
+ {{/* even if a repo is a pull mirror (IsMirror=true), the PullMirror might still be nil if the mirror migration is broken */}}
+ <tbody>
+ <tr>
+ <td colspan="4">
+ <span class="text red gt-db gt-py-4 gt-border-secondary-bottom">{{$.locale.Tr "repo.settings.mirror_settings.direction.pull"}}: {{$.locale.Tr "error.occurred"}}</span>
+ </td>
+ </tr>
+ </tbody>
+ {{else if .PullMirror}}
<tbody>
<tr>
- <td>{{(MirrorRemoteAddress $.Context .Repository .Mirror.GetRemoteName false).Address}}</td>
+ <td>{{(MirrorRemoteAddress $.Context .Repository .PullMirror.GetRemoteName false).Address}}</td>
<td>{{$.locale.Tr "repo.settings.mirror_settings.direction.pull"}}</td>
- <td>{{DateTime "full" .Mirror.UpdatedUnix}}</td>
+ <td>{{DateTime "full" .PullMirror.UpdatedUnix}}</td>
<td class="right aligned">
<form method="post" class="gt-dib">
{{.CsrfTokenHtml}}
@@ -107,15 +116,15 @@
<div class="inline field {{if .Err_EnablePrune}}error{{end}}">
<label>{{.locale.Tr "repo.mirror_prune"}}</label>
<div class="ui checkbox">
- <input id="enable_prune" name="enable_prune" type="checkbox" {{if .MirrorEnablePrune}}checked{{end}}>
+ <input id="enable_prune" name="enable_prune" type="checkbox" {{if .PullMirror.EnablePrune}}checked{{end}}>
<label>{{.locale.Tr "repo.mirror_prune_desc"}}</label>
</div>
</div>
<div class="inline field {{if .Err_Interval}}error{{end}}">
<label for="interval">{{.locale.Tr "repo.mirror_interval" .MinimumMirrorInterval}}</label>
- <input id="interval" name="interval" value="{{.MirrorInterval}}">
+ <input id="interval" name="interval" value="{{.PullMirror.Interval}}">
</div>
- {{$address := MirrorRemoteAddress $.Context .Repository .Mirror.GetRemoteName false}}
+ {{$address := MirrorRemoteAddress $.Context .Repository .PullMirror.GetRemoteName false}}
<div class="field {{if .Err_MirrorAddress}}error{{end}}">
<label for="mirror_address">{{.locale.Tr "repo.mirror_address"}}</label>
<input id="mirror_address" name="mirror_address" value="{{$address.Address}}" required>
@@ -142,13 +151,13 @@
<div class="inline field">
<label>{{.locale.Tr "repo.mirror_lfs"}}</label>
<div class="ui checkbox">
- <input id="mirror_lfs" name="mirror_lfs" type="checkbox" {{if .Mirror.LFS}}checked{{end}}>
+ <input id="mirror_lfs" name="mirror_lfs" type="checkbox" {{if .PullMirror.LFS}}checked{{end}}>
<label>{{.locale.Tr "repo.mirror_lfs_desc"}}</label>
</div>
</div>
<div class="field {{if .Err_LFSEndpoint}}error{{end}}">
<label for="mirror_lfs_endpoint">{{.locale.Tr "repo.mirror_lfs_endpoint"}}</label>
- <input id="mirror_lfs_endpoint" name="mirror_lfs_endpoint" value="{{.Mirror.LFSEndpoint}}" placeholder="{{.locale.Tr "repo.migrate_options_lfs_endpoint.placeholder"}}">
+ <input id="mirror_lfs_endpoint" name="mirror_lfs_endpoint" value="{{.PullMirror.LFSEndpoint}}" placeholder="{{.locale.Tr "repo.migrate_options_lfs_endpoint.placeholder"}}">
<p class="help">{{.locale.Tr "repo.mirror_lfs_endpoint_desc" "https://github.com/git-lfs/git-lfs/blob/main/docs/api/server-discovery.md#server-discovery" | Str2html}}</p>
</div>
{{end}}
@@ -160,7 +169,7 @@
</tr>
</tbody>
<thead><tr><th colspan="4"></th></tr></thead>
- {{end}}
+ {{end}}{{/* end if: IsMirror */}}
<tbody>
{{range .PushMirrors}}
<tr>