Phase 3: Organization Public Profile Page - Pinned repositories with groups - Public members display with roles - API endpoints for pinned repos and groups Phase 4: Gitea Pages Foundation - Landing page templates (simple, docs, product, portfolio) - Custom domain support with verification - YAML configuration parser (.gitea/landing.yaml) - Repository settings UI for pages Phase 5: Enhanced Wiki System with V2 API - Full CRUD operations via v2 API - Full-text search with WikiIndex table - Link graph visualization - Wiki health metrics (orphaned, dead links, outdated) - Designed for external AI plugin integration - Developer guide for .NET integration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
148 lines
5.1 KiB
Handlebars
148 lines
5.1 KiB
Handlebars
{{template "repo/settings/layout_head" (dict "ctxData" . "pageClass" "repository settings pages")}}
|
|
<div class="user-main-content twelve wide column">
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "repo.settings.pages"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
{{if .PagesEnabled}}
|
|
<div class="ui positive message">
|
|
<div class="header">{{ctx.Locale.Tr "repo.settings.pages.enabled"}}</div>
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.enabled_desc"}}</p>
|
|
<p><strong>{{ctx.Locale.Tr "repo.settings.pages.subdomain"}}:</strong> <code>{{.PagesSubdomain}}</code></p>
|
|
</div>
|
|
|
|
<form class="ui form" method="post">
|
|
<input type="hidden" name="action" value="update_template">
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "repo.settings.pages.template"}}</label>
|
|
<select name="template" class="ui dropdown">
|
|
{{range .PagesTemplates}}
|
|
<option value="{{.}}" {{if eq $.PagesTemplate .}}selected{{end}}>{{.}}</option>
|
|
{{end}}
|
|
</select>
|
|
</div>
|
|
<div class="field">
|
|
<button class="ui primary button">{{ctx.Locale.Tr "repo.settings.pages.update_template"}}</button>
|
|
</div>
|
|
</form>
|
|
|
|
<div class="divider"></div>
|
|
|
|
<form class="ui form" method="post">
|
|
<input type="hidden" name="action" value="disable">
|
|
<button class="ui red button">{{ctx.Locale.Tr "repo.settings.pages.disable"}}</button>
|
|
</form>
|
|
{{else}}
|
|
<div class="ui info message">
|
|
<div class="header">{{ctx.Locale.Tr "repo.settings.pages.not_enabled"}}</div>
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.not_enabled_desc"}}</p>
|
|
</div>
|
|
|
|
<form class="ui form" method="post">
|
|
<input type="hidden" name="action" value="enable">
|
|
<div class="field">
|
|
<label>{{ctx.Locale.Tr "repo.settings.pages.template"}}</label>
|
|
<select name="template" class="ui dropdown">
|
|
{{range .PagesTemplates}}
|
|
<option value="{{.}}">{{.}}</option>
|
|
{{end}}
|
|
</select>
|
|
</div>
|
|
<div class="field">
|
|
<button class="ui primary button">{{ctx.Locale.Tr "repo.settings.pages.enable"}}</button>
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
</div>
|
|
|
|
{{if .PagesEnabled}}
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "repo.settings.pages.configuration"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.config_desc"}}</p>
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.config_file_hint"}}</p>
|
|
<div class="ui secondary segment">
|
|
<code>.gitea/landing.yaml</code>
|
|
</div>
|
|
</div>
|
|
|
|
<h4 class="ui top attached header">
|
|
{{ctx.Locale.Tr "repo.settings.pages.custom_domains"}}
|
|
</h4>
|
|
<div class="ui attached segment">
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.custom_domains_desc"}}</p>
|
|
|
|
{{if .PagesDomains}}
|
|
<table class="ui table">
|
|
<thead>
|
|
<tr>
|
|
<th>{{ctx.Locale.Tr "repo.settings.pages.domain"}}</th>
|
|
<th>{{ctx.Locale.Tr "repo.settings.pages.status"}}</th>
|
|
<th>{{ctx.Locale.Tr "repo.settings.pages.ssl"}}</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{range .PagesDomains}}
|
|
<tr>
|
|
<td>{{.Domain}}</td>
|
|
<td>
|
|
{{if .Verified}}
|
|
<span class="ui green label">{{ctx.Locale.Tr "repo.settings.pages.verified"}}</span>
|
|
{{else}}
|
|
<span class="ui yellow label">{{ctx.Locale.Tr "repo.settings.pages.pending"}}</span>
|
|
{{end}}
|
|
</td>
|
|
<td>
|
|
{{if eq .SSLStatus "active"}}
|
|
<span class="ui green label">{{ctx.Locale.Tr "repo.settings.pages.ssl_active"}}</span>
|
|
{{else if eq .SSLStatus "pending"}}
|
|
<span class="ui yellow label">{{ctx.Locale.Tr "repo.settings.pages.ssl_pending"}}</span>
|
|
{{else}}
|
|
<span class="ui grey label">{{ctx.Locale.Tr "repo.settings.pages.ssl_none"}}</span>
|
|
{{end}}
|
|
</td>
|
|
<td class="tw-text-right">
|
|
{{if not .Verified}}
|
|
<form method="post" class="tw-inline-block">
|
|
<input type="hidden" name="action" value="verify_domain">
|
|
<input type="hidden" name="domain_id" value="{{.ID}}">
|
|
<button class="ui primary tiny button">{{ctx.Locale.Tr "repo.settings.pages.verify"}}</button>
|
|
</form>
|
|
{{end}}
|
|
<form method="post" class="tw-inline-block">
|
|
<input type="hidden" name="action" value="delete_domain">
|
|
<input type="hidden" name="domain_id" value="{{.ID}}">
|
|
<button class="ui red tiny button">{{ctx.Locale.Tr "remove"}}</button>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
{{if not .Verified}}
|
|
<tr>
|
|
<td colspan="4">
|
|
<div class="ui info message">
|
|
<p>{{ctx.Locale.Tr "repo.settings.pages.verify_dns_hint"}}</p>
|
|
<code>TXT _gitea-pages.{{.Domain}} {{.VerificationToken}}</code>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{{end}}
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
{{end}}
|
|
|
|
<form class="ui form" method="post">
|
|
<input type="hidden" name="action" value="add_domain">
|
|
<div class="inline field">
|
|
<label>{{ctx.Locale.Tr "repo.settings.pages.add_domain"}}</label>
|
|
<input name="domain" type="text" placeholder="example.com">
|
|
<button class="ui primary button">{{ctx.Locale.Tr "repo.settings.pages.add"}}</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{template "repo/settings/layout_footer" .}}
|