From dd6ee750f0887408998794603e53292a00e588c6 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 2 Jun 2026 14:17:47 -0500 Subject: [PATCH 1/2] fix(build): remove extra {{end}} in settings accordion template Co-Authored-By: Claude Opus 4.6 (1M context) --- templates/repo/settings/options.tmpl | 1 - 1 file changed, 1 deletion(-) diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl index a06c837f50..187b83e263 100644 --- a/templates/repo/settings/options.tmpl +++ b/templates/repo/settings/options.tmpl @@ -698,7 +698,6 @@ - {{end}}
-- 2.52.0 From 89fcbda623ed7dc83852abec328643815e9843cf Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 2 Jun 2026 14:23:49 -0500 Subject: [PATCH 2/2] feat(settings): move advanced settings to dedicated /settings/advanced page Extract all feature unit settings (Code, Wiki, Issues, Projects, Releases, Packages, Pull Requests) from options.tmpl into a separate advanced.tmpl with its own route at /settings/advanced. Options page now only contains: basic repo settings, avatar, mirror config, signing settings, and danger zone. Navbar updated: Advanced Settings link points to /settings/advanced. Form posts still go through the existing SettingsPost handler. Co-Authored-By: Claude Opus 4.6 (1M context) --- routers/web/repo/setting/advanced.go | 20 ++ routers/web/web.go | 3 + templates/repo/settings/advanced.tmpl | 421 ++++++++++++++++++++++++++ templates/repo/settings/navbar.tmpl | 2 +- templates/repo/settings/options.tmpl | 417 ------------------------- 5 files changed, 445 insertions(+), 418 deletions(-) create mode 100644 routers/web/repo/setting/advanced.go create mode 100644 templates/repo/settings/advanced.tmpl diff --git a/routers/web/repo/setting/advanced.go b/routers/web/repo/setting/advanced.go new file mode 100644 index 0000000000..fbebe39bb1 --- /dev/null +++ b/routers/web/repo/setting/advanced.go @@ -0,0 +1,20 @@ +// Copyright 2026 Moko Consulting +// SPDX-License-Identifier: GPL-3.0-or-later + +package setting + +import ( + "net/http" + + "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/templates" + "code.mokoconsulting.tech/MokoConsulting/MokoGitea/services/context" +) + +const tplSettingsAdvanced templates.TplName = "repo/settings/advanced" + +// AdvancedSettings displays the advanced (feature units) settings page. +func AdvancedSettings(ctx *context.Context) { + ctx.Data["Title"] = ctx.Tr("repo.settings.advanced_settings") + ctx.Data["PageIsSettingsAdvanced"] = true + ctx.HTML(http.StatusOK, tplSettingsAdvanced) +} diff --git a/routers/web/web.go b/routers/web/web.go index 0aceeddf0b..4dc4b809a9 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1183,6 +1183,9 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) { m.Post("/avatar/delete", repo_setting.SettingsDeleteAvatar) m.Combo("/public_access").Get(repo_setting.PublicAccess).Post(repo_setting.PublicAccessPost) + m.Group("", func() { + m.Combo("/advanced").Get(repo_setting.AdvancedSettings).Post(web.Bind(forms.RepoSettingForm{}), repo_setting.SettingsPost) + }, repo_setting.SettingsCtxData) m.Combo("/licensing").Get(repo_setting.LicensingSettings).Post(repo_setting.LicensingSettingsPost) m.Group("/collaboration", func() { diff --git a/templates/repo/settings/advanced.tmpl b/templates/repo/settings/advanced.tmpl new file mode 100644 index 0000000000..81826a6702 --- /dev/null +++ b/templates/repo/settings/advanced.tmpl @@ -0,0 +1,421 @@ +{{template "repo/settings/layout_head" (dict "pageClass" "repository settings advanced")}} +
+ {{/* FIXME: need to split the "Advance Settings" by units, there are too many options here */}} +

+ {{ctx.Locale.Tr "repo.settings.advanced_settings"}} +

+
+
+ + + {{/* ── Code ── */}} +
+ {{svg "octicon-code" 16}} {{ctx.Locale.Tr "repo.code"}} +
+ {{$isCodeEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeCode}} + {{$isCodeGlobalDisabled := ctx.Consts.RepoUnitTypeCode.UnitGlobalDisabled}} +
+
+ + +
+
+
+
+ + {{/* ── Wiki ── */}} +
+ {{svg "octicon-book" 16}} {{ctx.Locale.Tr "repo.wiki"}} +
+ {{$isInternalWikiEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeWiki}} + {{$isExternalWikiEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeExternalWiki}} + {{$isWikiEnabled := or $isInternalWikiEnabled $isExternalWikiEnabled}} + {{$isWikiGlobalDisabled := ctx.Consts.RepoUnitTypeWiki.UnitGlobalDisabled}} + {{$isExternalWikiGlobalDisabled := ctx.Consts.RepoUnitTypeExternalWiki.UnitGlobalDisabled}} + {{$isBothWikiGlobalDisabled := and $isWikiGlobalDisabled $isExternalWikiGlobalDisabled}} +
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+ + +

{{ctx.Locale.Tr "repo.settings.external_wiki_url_desc"}}

+
+
+
+
+ + {{/* ── Issues ── */}} +
+ {{svg "octicon-issue-opened" 16}} {{ctx.Locale.Tr "repo.issues"}} +
+ {{$isIssuesEnabled := or (.Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeIssues) (.Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeExternalTracker)}} + {{$isIssuesGlobalDisabled := ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled}} + {{$isExternalTrackerGlobalDisabled := ctx.Consts.RepoUnitTypeExternalTracker.UnitGlobalDisabled}} + {{$isIssuesAndExternalGlobalDisabled := and $isIssuesGlobalDisabled $isExternalTrackerGlobalDisabled}} +
+ +
+ + +
+
+
+
+
+ + +
+
+
+ {{if .Repository.CanEnableTimetracker}} +
+
+ + +
+
+
+
+ + +
+
+ {{end}} +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +

{{ctx.Locale.Tr "repo.settings.external_tracker_url_desc"}}

+
+
+ + +

{{ctx.Locale.Tr "repo.settings.tracker_url_format_desc"}}

+
+
+ +
+
+ {{$externalTracker := (.Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypeExternalTracker)}} + {{$externalTrackerStyle := $externalTracker.ExternalTrackerConfig.ExternalTrackerStyle}} + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +

{{ctx.Locale.Tr "repo.settings.tracker_issue_style.regexp_pattern_desc"}}

+
+
+
+
+
+ + {{/* ── Projects ── */}} +
+ {{svg "octicon-project" 16}} {{ctx.Locale.Tr "repo.projects"}} +
+ {{$isProjectsEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeProjects}} + {{$isProjectsGlobalDisabled := ctx.Consts.RepoUnitTypeProjects.UnitGlobalDisabled}} + {{$projectsUnit := .Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypeProjects}} +
+ +
+ + +
+
+
+

+ {{ctx.Locale.Tr "repo.settings.projects_mode_desc"}} +

+ +
+
+
+ + {{/* ── Releases ── */}} +
+ {{svg "octicon-tag" 16}} {{ctx.Locale.Tr "repo.releases"}} +
+ {{$isReleasesEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeReleases}} + {{$isReleasesGlobalDisabled := ctx.Consts.RepoUnitTypeReleases.UnitGlobalDisabled}} +
+
+ + +
+
+
+
+ + +

{{ctx.Locale.Tr "repo.settings.unit_visibility_releases_help"}}

+
+
+ +
+
+ + {{/* ── Packages ── */}} +
+ {{svg "octicon-package" 16}} {{ctx.Locale.Tr "repo.packages"}} +
+ {{$isPackagesEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypePackages}} + {{$isPackagesGlobalDisabled := ctx.Consts.RepoUnitTypePackages.UnitGlobalDisabled}} +
+
+ + +
+
+
+
+ + {{if not .IsMirror}} + {{/* ── Pull Requests ── */}} +
+ {{svg "octicon-git-pull-request" 16}} {{ctx.Locale.Tr "repo.pulls"}} +
+ {{$pullRequestEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypePullRequests}} + {{$pullRequestGlobalDisabled := ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled}} + {{$prUnit := .Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypePullRequests}} +
+ +
+ + +
+
+
+
+

+ {{ctx.Locale.Tr "repo.settings.merge_style_desc"}} +

+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+

+ {{ctx.Locale.Tr "repo.settings.default_merge_style_desc"}} +

+ +
+
+ + +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+ {{end}} + +
+
+ +
+ +
+
+
+
+{{template "repo/settings/layout_footer" .}} diff --git a/templates/repo/settings/navbar.tmpl b/templates/repo/settings/navbar.tmpl index 8a096e94e9..d3a6b9d923 100644 --- a/templates/repo/settings/navbar.tmpl +++ b/templates/repo/settings/navbar.tmpl @@ -38,7 +38,7 @@ {{end}} {{end}} - + {{svg "octicon-tools"}} {{ctx.Locale.Tr "repo.settings.advanced_settings"}} {{if .LicensingEnabled}} diff --git a/templates/repo/settings/options.tmpl b/templates/repo/settings/options.tmpl index 187b83e263..71651a94d1 100644 --- a/templates/repo/settings/options.tmpl +++ b/templates/repo/settings/options.tmpl @@ -287,423 +287,6 @@
{{end}} - {{/* FIXME: need to split the "Advance Settings" by units, there are too many options here */}} -

- {{ctx.Locale.Tr "repo.settings.advanced_settings"}} -

-
-
- - - {{/* ── Code ── */}} -
- {{svg "octicon-code" 16}} {{ctx.Locale.Tr "repo.code"}} -
- {{$isCodeEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeCode}} - {{$isCodeGlobalDisabled := ctx.Consts.RepoUnitTypeCode.UnitGlobalDisabled}} -
-
- - -
-
-
-
- - {{/* ── Wiki ── */}} -
- {{svg "octicon-book" 16}} {{ctx.Locale.Tr "repo.wiki"}} -
- {{$isInternalWikiEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeWiki}} - {{$isExternalWikiEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeExternalWiki}} - {{$isWikiEnabled := or $isInternalWikiEnabled $isExternalWikiEnabled}} - {{$isWikiGlobalDisabled := ctx.Consts.RepoUnitTypeWiki.UnitGlobalDisabled}} - {{$isExternalWikiGlobalDisabled := ctx.Consts.RepoUnitTypeExternalWiki.UnitGlobalDisabled}} - {{$isBothWikiGlobalDisabled := and $isWikiGlobalDisabled $isExternalWikiGlobalDisabled}} -
-
- - -
-
-
-
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
-
- - -

{{ctx.Locale.Tr "repo.settings.external_wiki_url_desc"}}

-
-
-
-
- - {{/* ── Issues ── */}} -
- {{svg "octicon-issue-opened" 16}} {{ctx.Locale.Tr "repo.issues"}} -
- {{$isIssuesEnabled := or (.Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeIssues) (.Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeExternalTracker)}} - {{$isIssuesGlobalDisabled := ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled}} - {{$isExternalTrackerGlobalDisabled := ctx.Consts.RepoUnitTypeExternalTracker.UnitGlobalDisabled}} - {{$isIssuesAndExternalGlobalDisabled := and $isIssuesGlobalDisabled $isExternalTrackerGlobalDisabled}} -
- -
- - -
-
-
-
-
- - -
-
-
- {{if .Repository.CanEnableTimetracker}} -
-
- - -
-
-
-
- - -
-
- {{end}} -
-
- - -
-
-
- - -
-
- - -
-
-
-
- - -
-
-
-
- - -

{{ctx.Locale.Tr "repo.settings.external_tracker_url_desc"}}

-
-
- - -

{{ctx.Locale.Tr "repo.settings.tracker_url_format_desc"}}

-
-
- -
-
- {{$externalTracker := (.Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypeExternalTracker)}} - {{$externalTrackerStyle := $externalTracker.ExternalTrackerConfig.ExternalTrackerStyle}} - - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -

{{ctx.Locale.Tr "repo.settings.tracker_issue_style.regexp_pattern_desc"}}

-
-
-
-
-
- - {{/* ── Projects ── */}} -
- {{svg "octicon-project" 16}} {{ctx.Locale.Tr "repo.projects"}} -
- {{$isProjectsEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeProjects}} - {{$isProjectsGlobalDisabled := ctx.Consts.RepoUnitTypeProjects.UnitGlobalDisabled}} - {{$projectsUnit := .Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypeProjects}} -
- -
- - -
-
-
-

- {{ctx.Locale.Tr "repo.settings.projects_mode_desc"}} -

- -
-
-
- - {{/* ── Releases ── */}} -
- {{svg "octicon-tag" 16}} {{ctx.Locale.Tr "repo.releases"}} -
- {{$isReleasesEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypeReleases}} - {{$isReleasesGlobalDisabled := ctx.Consts.RepoUnitTypeReleases.UnitGlobalDisabled}} -
-
- - -
-
-
-
- - -

{{ctx.Locale.Tr "repo.settings.unit_visibility_releases_help"}}

-
-
- -
-
- - {{/* ── Packages ── */}} -
- {{svg "octicon-package" 16}} {{ctx.Locale.Tr "repo.packages"}} -
- {{$isPackagesEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypePackages}} - {{$isPackagesGlobalDisabled := ctx.Consts.RepoUnitTypePackages.UnitGlobalDisabled}} -
-
- - -
-
-
-
- - {{if not .IsMirror}} - {{/* ── Pull Requests ── */}} -
- {{svg "octicon-git-pull-request" 16}} {{ctx.Locale.Tr "repo.pulls"}} -
- {{$pullRequestEnabled := .Repository.UnitEnabled ctx ctx.Consts.RepoUnitTypePullRequests}} - {{$pullRequestGlobalDisabled := ctx.Consts.RepoUnitTypePullRequests.UnitGlobalDisabled}} - {{$prUnit := .Repository.MustGetUnit ctx ctx.Consts.RepoUnitTypePullRequests}} -
- -
- - -
-
-
-
-

- {{ctx.Locale.Tr "repo.settings.merge_style_desc"}} -

-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
- -
-

- {{ctx.Locale.Tr "repo.settings.default_merge_style_desc"}} -

- -
-
- - -
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
- {{end}} - -
-
- -
- -
-
-

{{ctx.Locale.Tr "repo.settings.signing_settings"}} -- 2.52.0