2
0
Files
gitcaddy-server/templates/admin/plugins.tmpl
logikonline 8bfa27761a
All checks were successful
Build and Release / Create Release (push) Successful in 0s
Build and Release / Lint (push) Successful in 4m21s
Build and Release / Unit Tests (push) Successful in 3m22s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 3m21s
Build and Release / Build Binaries (amd64, darwin, linux-latest) (push) Successful in 2m53s
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Successful in 3m30s
Build and Release / Build Binaries (arm64, darwin, linux-latest) (push) Successful in 3m1s
Build and Release / Build Binaries (arm64, linux, linux-latest) (push) Successful in 3m10s
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Successful in 8h4m31s
feat: add admin plugins page
Adds a Site Admin page to view loaded plugins with:
- Plugin name, version, description
- Features (Database, Web UI, API, Repository, Licensed)
- License status for licensed plugins

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:07:09 -05:00

80 lines
2.5 KiB
Handlebars

{{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin plugins")}}
<div class="admin-setting-content">
<h4 class="ui top attached header">
{{ctx.Locale.Tr "admin.plugins"}}
</h4>
<div class="ui attached segment">
{{if .PluginsEnabled}}
<p>{{ctx.Locale.Tr "admin.plugins.path"}}: <code>{{.PluginsPath}}</code></p>
{{else}}
<div class="ui warning message">
{{ctx.Locale.Tr "admin.plugins.disabled"}}
</div>
{{end}}
</div>
{{if .PluginsEnabled}}
<h4 class="ui attached header">
{{ctx.Locale.Tr "admin.plugins.loaded"}} ({{len .Plugins}})
</h4>
<div class="ui attached table segment">
{{if .Plugins}}
<table class="ui very basic striped table unstackable tw-mb-0">
<thead>
<tr>
<th>{{ctx.Locale.Tr "admin.plugins.name"}}</th>
<th>{{ctx.Locale.Tr "admin.plugins.version"}}</th>
<th>{{ctx.Locale.Tr "admin.plugins.description"}}</th>
<th>{{ctx.Locale.Tr "admin.plugins.features"}}</th>
<th>{{ctx.Locale.Tr "admin.plugins.license"}}</th>
</tr>
</thead>
<tbody>
{{range .Plugins}}
<tr>
<td><strong>{{.Name}}</strong></td>
<td>{{.Version}}</td>
<td>{{.Description}}</td>
<td>
{{range .Features}}
<span class="ui label">{{.}}</span>
{{end}}
</td>
<td>
{{if .LicenseInfo}}
{{if .LicenseInfo.Valid}}
<span class="ui green label" data-tooltip-content="{{ctx.Locale.Tr "admin.plugins.license_expires"}} {{DateUtils.AbsoluteShort .LicenseInfo.ExpiresAt}}">
{{svg "octicon-verified"}} {{.LicenseInfo.Tier}}
</span>
{{else if .LicenseInfo.GracePeriod}}
<span class="ui yellow label">
{{svg "octicon-alert"}} {{ctx.Locale.Tr "admin.plugins.license_grace"}}
</span>
{{else}}
<span class="ui red label">
{{svg "octicon-x"}} {{ctx.Locale.Tr "admin.plugins.license_invalid"}}
</span>
{{end}}
{{else}}
<span class="ui grey label">{{ctx.Locale.Tr "admin.plugins.license_not_required"}}</span>
{{end}}
</td>
</tr>
{{end}}
</tbody>
</table>
{{else}}
<div class="ui placeholder segment">
<div class="ui icon header">
{{svg "octicon-package" 48}}
<div class="content">
{{ctx.Locale.Tr "admin.plugins.none"}}
</div>
</div>
</div>
{{end}}
</div>
{{end}}
</div>
{{template "admin/layout_footer" .}}