aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPanagiotis "Ivory" Vasilopoulos <git@n0toose.net>2023-05-29 11:32:52 +0000
committerGitHub <noreply@github.com>2023-05-29 11:32:52 +0000
commit35ce7ca25b5756441949312d79aa6382f98ce8d6 (patch)
treef614b73b98dd55c2af316d9806a30ebb703e2269
parenta70d853d064a97f0be1d3702a9c3912494b546ec (diff)
downloadgitea-35ce7ca25b5756441949312d79aa6382f98ce8d6.tar.gz
gitea-35ce7ca25b5756441949312d79aa6382f98ce8d6.zip
Hide 'Mirror Settings' when unneeded, improve hints (#24433)
Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Giteabot <teabot@gitea.io>
-rw-r--r--options/locale/locale_en-US.ini11
-rw-r--r--routers/web/repo/setting.go2
-rw-r--r--templates/repo/settings/options.tmpl40
3 files changed, 47 insertions, 6 deletions
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 16dbb0948d..ed7cbef9fe 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1913,7 +1913,16 @@ settings.hooks = Webhooks
settings.githooks = Git Hooks
settings.basic_settings = Basic Settings
settings.mirror_settings = Mirror Settings
-settings.mirror_settings.docs = Set up your project to automatically push and/or pull changes to/from another repository. Branches, tags, and commits will be synced automatically. <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/repo-mirror/">How do I mirror repositories?</a>
+settings.mirror_settings.docs = Set up your repository to automatically synchronize commits, tags and branches with another repository.
+settings.mirror_settings.docs.disabled_pull_mirror.instructions = Set up your project to automatically push commits, tags and branches to another repository. Pull mirrors have been disabled by your site administrator.
+settings.mirror_settings.docs.disabled_push_mirror.instructions = Set up your project to automatically pull commits, tags and branches from another repository.
+settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning = Right now, this can only be done in the "New Migration" menu. For more information, please consult:
+settings.mirror_settings.docs.disabled_push_mirror.info = Push mirrors have been disabled by your site administrator.
+settings.mirror_settings.docs.no_new_mirrors = Your repository is mirroring changes to or from another repository. Please keep in mind that you can't create any new mirrors at this time.
+settings.mirror_settings.docs.can_still_use = Although you can't modify existing mirrors or create new ones, you may still use your existing mirror.
+settings.mirror_settings.docs.pull_mirror_instructions = To set up a pull mirror, please consult:
+settings.mirror_settings.docs.doc_link_title = How do I mirror repositories?
+settings.mirror_settings.docs.pulling_remote_title = Pulling from a remote repository
settings.mirror_settings.mirrored_repository = Mirrored repository
settings.mirror_settings.direction = Direction
settings.mirror_settings.direction.pull = Pull
diff --git a/routers/web/repo/setting.go b/routers/web/repo/setting.go
index 578b70194e..4481ff4f04 100644
--- a/routers/web/repo/setting.go
+++ b/routers/web/repo/setting.go
@@ -64,6 +64,7 @@ func SettingsCtxData(ctx *context.Context) {
ctx.Data["PageIsSettingsOptions"] = true
ctx.Data["ForcePrivate"] = setting.Repository.ForcePrivate
ctx.Data["MirrorsEnabled"] = setting.Mirror.Enabled
+ ctx.Data["DisableNewPullMirrors"] = setting.Mirror.DisableNewPull
ctx.Data["DisableNewPushMirrors"] = setting.Mirror.DisableNewPush
ctx.Data["DefaultMirrorInterval"] = setting.Mirror.DefaultInterval
ctx.Data["MinimumMirrorInterval"] = setting.Mirror.MinInterval
@@ -108,6 +109,7 @@ func SettingsPost(ctx *context.Context) {
ctx.Data["ForcePrivate"] = setting.Repository.ForcePrivate
ctx.Data["MirrorsEnabled"] = setting.Mirror.Enabled
+ ctx.Data["DisableNewPullMirrors"] = setting.Mirror.DisableNewPull
ctx.Data["DisableNewPushMirrors"] = setting.Mirror.DisableNewPush
ctx.Data["DefaultMirrorInterval"] = setting.Mirror.DefaultInterval
ctx.Data["MinimumMirrorInterval"] = setting.Mirror.MinInterval
diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl
index 83a6bc4ba1..18a5b04463 100644
--- a/templates/repo/settings/options.tmpl
+++ b/templates/repo/settings/options.tmpl
@@ -67,14 +67,44 @@
</div>
- {{if .MirrorsEnabled}}
+
+ {{/* These variables exist to make the logic in the Settings window easier to comprehend and are not used later on. */}}
+ {{$newMirrorsPartiallyEnabled := or (not .DisableNewPullMirrors) (not .DisableNewPushMirrors)}}
+ {{/* .Repository.IsMirror is not always reliable if the repository is not actively acting as a mirror because of errors. */}}
+ {{$showMirrorSettings := or $newMirrorsPartiallyEnabled .Repository.IsMirror .PullMirror .PushMirrors}}
+ {{$newMirrorsEntirelyEnabled := and (not .DisableNewPullMirrors) (not .DisableNewPushMirrors)}}
+ {{$onlyNewPushMirrorsEnabled := and (not .DisableNewPushMirrors) .DisableNewPullMirrors}}
+ {{$onlyNewPullMirrorsEnabled := and .DisableNewPushMirrors (not .DisableNewPullMirrors)}}
+ {{$existingPushMirror := or .Repository.IsMirror .PushMirrors}}
+ {{$modifyBrokenPullMirror := and .Repository.IsMirror (not .PullMirror)}}
+ {{$isWorkingPullMirror := .PullMirror}}
+
+ {{if $showMirrorSettings}}
<h4 class="ui top attached header">
{{.locale.Tr "repo.settings.mirror_settings"}}
</h4>
<div class="ui attached segment">
- {{$.locale.Tr "repo.settings.mirror_settings.docs" | Safe}}
+ {{if $newMirrorsEntirelyEnabled}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs"}}
+ <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/usage/repo-mirror/#pushing-to<ing-to-a-remote-repository">{{$.locale.Tr "repo.settings.mirror_settings.docs.doc_link_title"}}</a><br><br>
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.pull_mirror_instructions"}}
+ <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/usage/repo-mirror/#pulling-from-a-remote-repository">{{$.locale.Tr "repo.settings.mirror_settings.docs.doc_link_title"}}</a><br>
+ {{else if $onlyNewPushMirrorsEnabled}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.disabled_pull_mirror.instructions"}}
+ <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/usage/repo-mirror/#pulling-from-a-remote-repository">{{$.locale.Tr "repo.settings.mirror_settings.docs.doc_link_title"}}</a><br>
+ {{else if $onlyNewPullMirrorsEnabled}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.disabled_push_mirror.instructions"}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.disabled_push_mirror.pull_mirror_warning"}}
+ <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/usage/repo-mirror/#pulling-from-a-remote-repository">{{$.locale.Tr "repo.settings.mirror_settings.docs.doc_link_title"}}</a><br><br>
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.disabled_push_mirror.info"}}
+ {{if $existingPushMirror}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.can_still_use"}}
+ {{end}}
+ {{else}}
+ {{$.locale.Tr "repo.settings.mirror_settings.docs.no_new_mirrors"}} {{$.locale.Tr "repo.settings.mirror_settings.docs.can_still_use"}}<br>
+ {{end}}
<table class="ui table">
- {{if or .Repository.IsMirror .PushMirrors}}
+ {{if $existingPushMirror}}
<thead>
<tr>
<th style="width:40%">{{$.locale.Tr "repo.settings.mirror_settings.mirrored_repository"}}</th>
@@ -84,7 +114,7 @@
</tr>
</thead>
{{end}}
- {{if and .Repository.IsMirror (not .PullMirror)}}
+ {{if $modifyBrokenPullMirror}}
{{/* even if a repo is a pull mirror (IsMirror=true), the PullMirror might still be nil if the mirror migration is broken */}}
<tbody>
<tr>
@@ -93,7 +123,7 @@
</td>
</tr>
</tbody>
- {{else if .PullMirror}}
+ {{else if $isWorkingPullMirror}}
<tbody>
<tr>
<td>{{(MirrorRemoteAddress $.Context .Repository .PullMirror.GetRemoteName false).Address}}</td>