2
0
Files
gitcaddy-server/templates/admin/config_settings/theme.tmpl
logikonline eca22df63a
Some checks failed
Build and Release / Create Release (push) Successful in 0s
Build and Release / Integration Tests (PostgreSQL) (push) Successful in 2m44s
Build and Release / Lint (push) Failing after 5m50s
Build and Release / Build Binaries (amd64, linux, linux-latest) (push) Has been skipped
Build and Release / Build Binaries (amd64, darwin, macos) (push) Has been skipped
Build and Release / Build Binaries (amd64, windows, windows-latest) (push) Has been skipped
Build and Release / Build Binaries (arm64, darwin, macos) (push) Has been skipped
Build and Release / Build Binary (linux/arm64) (push) Has been skipped
Build and Release / Unit Tests (push) Successful in 6m4s
feat(admin): add configurable footer links for licenses and api
Add theme configuration options to control visibility of Licenses and API links in the footer. Also add authentication token to vault version API requests in build workflow to prevent rate limiting issues.
2026-03-06 17:04:32 -05:00

220 lines
12 KiB
Handlebars

<h4 class="ui top attached header">
{{ctx.Locale.Tr "admin.config.theme_config"}}
</h4>
<div class="ui attached table segment">
<dl class="admin-dl-horizontal">
<dt>{{ctx.Locale.Tr "admin.config.disable_registration"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.disable_registration_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.disable_registration" {{if .SystemConfig.Theme.DisableRegistration.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.hide_explore_users"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.hide_explore_users_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.hide_explore_users" {{if .SystemConfig.Theme.HideExploreUsers.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.hide_explore_button"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.hide_explore_button_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.hide_explore_button" {{if .SystemConfig.Theme.HideExploreButton.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.enable_explore_packages"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.enable_explore_packages_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.enable_explore_packages" {{if .SystemConfig.Theme.EnableExplorePackages.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.enable_blogs"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.enable_blogs_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.enable_blogs" {{if .SystemConfig.Theme.EnableBlogs.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.blogs_in_top_nav"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.blogs_in_top_nav_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.blogs_in_top_nav" {{if .SystemConfig.Theme.BlogsInTopNav.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.help_url"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.help_url">
<div class="field">
<input type="text" name="value" value="{{.SystemConfig.Theme.HelpURL.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.help_url_placeholder"}}">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.help_url_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.custom_site_icon"}}</dt>
<dd>
<form class="ui form" method="post" action="{{AppSubUrl}}/-/admin/config/theme/icon" enctype="multipart/form-data">
{{.CsrfTokenHtml}}
{{if .SystemConfig.Theme.CustomSiteIconURL.Value ctx}}
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.current_icon"}}</label>
<img src="{{.SystemConfig.Theme.CustomSiteIconURL.Value ctx}}" alt="Current Icon" style="max-height: 32px; max-width: 32px; background: var(--color-secondary-bg); padding: 4px; border-radius: 4px;">
</div>
{{end}}
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.icon_url"}}</label>
<input type="text" name="custom_icon_url" value="{{.SystemConfig.Theme.CustomSiteIconURL.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.custom_icon_url_placeholder"}}">
</div>
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.upload_icon"}}</label>
<input type="file" name="icon_file" accept="image/svg+xml,image/png,image/x-icon,image/vnd.microsoft.icon">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.site_icon_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
{{if .SystemConfig.Theme.CustomSiteIconURL.Value ctx}}
<button class="ui red button" type="submit" name="action" value="reset">{{ctx.Locale.Tr "admin.config.reset_icon"}}</button>
{{end}}
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.custom_home_logo"}}</dt>
<dd>
<form class="ui form" method="post" action="{{AppSubUrl}}/-/admin/config/theme/logo" enctype="multipart/form-data">
{{.CsrfTokenHtml}}
{{if .SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.current_logo"}}</label>
<img src="{{.SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}" alt="Current Logo" style="max-height: 80px; max-width: 200px; background: var(--color-secondary-bg); padding: 8px; border-radius: 4px;">
</div>
{{end}}
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.logo_url"}}</label>
<input type="text" name="custom_logo_url" value="{{.SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.custom_logo_url_placeholder"}}">
</div>
<div class="field">
<label>{{ctx.Locale.Tr "admin.config.upload_logo"}}</label>
<input type="file" name="logo_file" accept="image/svg+xml,image/png,image/jpeg,image/gif">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.home_logo_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
{{if .SystemConfig.Theme.CustomHomeLogoURL.Value ctx}}
<button class="ui red button" type="submit" name="action" value="reset">{{ctx.Locale.Tr "admin.config.reset_logo"}}</button>
{{end}}
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.custom_home_title"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.custom_home_title">
<div class="field">
<input type="text" name="value" value="{{.SystemConfig.Theme.CustomHomeTitle.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.custom_home_title_placeholder"}}" maxlength="100">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.custom_home_title_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.custom_home_tagline"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.custom_home_tagline">
<div class="field">
<input type="text" name="value" value="{{.SystemConfig.Theme.CustomHomeTagline.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.custom_home_tagline_placeholder"}}" maxlength="255">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.custom_home_tagline_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.pinned_org_display_format"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.pinned_org_display_format">
<div class="field">
<select class="ui dropdown" name="value">
<option value="promotional" {{if eq (.SystemConfig.Theme.PinnedOrgDisplayFormat.Value ctx) "promotional"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.pinned_org_format_promotional"}}</option>
<option value="condensed" {{if eq (.SystemConfig.Theme.PinnedOrgDisplayFormat.Value ctx) "condensed"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.pinned_org_format_condensed"}}</option>
<option value="regular" {{if eq (.SystemConfig.Theme.PinnedOrgDisplayFormat.Value ctx) "regular"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.pinned_org_format_regular"}}</option>
</select>
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.pinned_org_display_format_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.explore_org_display_format"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.explore_org_display_format">
<div class="field">
<select class="ui dropdown" name="value">
<option value="list" {{if eq (.SystemConfig.Theme.ExploreOrgDisplayFormat.Value ctx) "list"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.explore_org_format_list"}}</option>
<option value="tiles" {{if eq (.SystemConfig.Theme.ExploreOrgDisplayFormat.Value ctx) "tiles"}}selected{{end}}>{{ctx.Locale.Tr "admin.config.explore_org_format_tiles"}}</option>
</select>
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.explore_org_display_format_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.show_footer_powered_by"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.show_footer_powered_by_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.show_footer_powered_by" {{if .SystemConfig.Theme.ShowFooterPoweredBy.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.show_footer_licenses"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.show_footer_licenses_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.show_footer_licenses" {{if .SystemConfig.Theme.ShowFooterLicenses.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.show_footer_api"}}</dt>
<dd>
<div class="ui toggle checkbox" data-tooltip-content="{{ctx.Locale.Tr "admin.config.show_footer_api_desc"}}">
<input type="checkbox" data-config-dyn-key="theme.show_footer_api" {{if .SystemConfig.Theme.ShowFooterAPI.Value ctx}}checked{{end}}><label></label>
</div>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.api_header_url"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.api_header_url">
<div class="field">
<input type="text" name="value" value="{{.SystemConfig.Theme.APIHeaderURL.Value ctx}}" placeholder="{{ctx.Locale.Tr "admin.config.api_header_url_placeholder"}}">
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.api_header_url_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
<div class="divider"></div>
<dt>{{ctx.Locale.Tr "admin.config.custom_home_html"}}</dt>
<dd>
<form class="ui form form-fetch-action" method="post" action="{{AppSubUrl}}/-/admin/config">
{{.CsrfTokenHtml}}
<input type="hidden" name="key" value="theme.custom_home_html">
<div class="field">
<textarea id="custom-home-html-editor" name="value" rows="15" placeholder="{{ctx.Locale.Tr "admin.config.custom_home_html_placeholder"}}" style="font-family: var(--fonts-monospace); font-size: 13px;">{{.SystemConfig.Theme.CustomHomeHTML.Value ctx}}</textarea>
</div>
<div class="help">{{ctx.Locale.Tr "admin.config.custom_home_html_help"}}</div>
<button class="ui primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</dd>
</dl>
</div>