gitforge/templates/user/settings/appearance.tmpl
0ko 423b5c029c feat(ui): modernize hidden comment types checkboxes in appearance settings (#13044)
Changes

- use native fieldset and checkboxes instead of fomantic. As a result, the code is simpler and changing the checkbox state by clicking the text works without JS by native `label` behavior instead of fomantic scripted behavior.
- show tooltips as help hints. This is better because in a large list with only two items having tooltips the user doesn't have to guess which ones have a tooltip. And it is more touchscreen friendly.

Preview

|Old|New|
|-|-|
|![old](https://codeberg.org/attachments/d464e1b7-d490-4efe-ac2a-5c4eb1f70467)|![new](https://codeberg.org/attachments/decccca6-45b7-4c8a-9099-a28781aad7f3)|

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/13044
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2026-06-11 07:00:11 +02:00

168 lines
6.7 KiB
Go HTML Template

{{template "user/settings/layout_head" (dict "ctxData" . "pageClass" "user settings sshkeys")}}
<div class="user-setting-content">
<!-- Theme -->
<h4 class="ui top attached header">
{{ctx.Locale.Tr "settings.manage_themes"}}
</h4>
<div class="ui attached segment">
<div class="ui email list">
<div class="item">
{{ctx.Locale.Tr "settings.theme_desc"}}
</div>
<form class="ui form" action="{{.Link}}/theme" method="post">
<div class="field">
<label for="ui">{{ctx.Locale.Tr "settings.ui"}}</label>
<div class="ui selection dropdown" id="ui">
<input name="theme" type="hidden" value="{{.SignedUser.Theme}}">
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="text">
{{- range $i,$a := .AllThemes -}}
{{if eq $.SignedUser.Theme $a}}{{call $.ThemeName $a}}{{end}}
{{- end -}}
</div>
<div class="menu">
{{range $i,$a := .AllThemes}}
<div class="item{{if eq $.SignedUser.Theme $a}} active selected{{end}}" data-value="{{$a}}">
{{call $.ThemeName $a}}
</div>
{{end}}
</div>
</div>
</div>
<div class="field">
<button class="ui primary button">{{ctx.Locale.Tr "settings.update_theme"}}</button>
</div>
</form>
</div>
</div>
<!-- Language -->
<h4 class="ui top attached header">
{{ctx.Locale.Tr "settings.language.title"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}/language" method="post">
<div class="tw-mb-4">
{{ctx.Locale.Tr "settings.language.description"}}
</div>
<div class="field">
<div class="ui language selection dropdown" id="language">
<input name="language" type="hidden" value="{{.SignedUser.Language}}">
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="text">{{range .AllLangs}}{{if eq $.SignedUser.Language .Lang}}{{.Name}}{{end}}{{end}}</div>
<div class="menu">
{{range .AllLangs}}
<div class="item{{if eq $.SignedUser.Language .Lang}} active selected{{end}}" data-value="{{.Lang}}">{{.Name}}</div>
{{end}}
</div>
</div>
</div>
<div class="tw-mb-4">
{{ctx.Locale.Tr "settings.language.localization_project" "https://forgejo.org/docs/next/contributor/localization/"}}
</div>
<div class="field">
<button class="ui primary button">{{ctx.Locale.Tr "settings.update_language"}}</button>
</div>
</form>
</div>
<!-- Hints -->
<h4 id="hints" class="ui top attached header">
{{ctx.Locale.Tr "settings.hints"}}
</h4>
<div class="ui attached segment">
<form class="ui form" action="{{.Link}}/hints" method="post">
<div class="inline field">
<div class="ui checkbox" data-tooltip-content="{{ctx.Locale.Tr "settings.additional_repo_units_hint_description"}}">
<input name="enable_repo_unit_hints" type="checkbox" {{if $.SignedUser.EnableRepoUnitHints}}checked{{end}}>
<label>{{ctx.Locale.Tr "settings.additional_repo_units_hint"}}</label>
</div>
</div>
<div class="field">
<button class="ui primary button">{{ctx.Locale.Tr "settings.update_hints"}}</button>
</div>
</form>
</div>
<!-- Shown comment event types -->
<h4 class="ui top attached header">
{{ctx.Locale.Tr "settings.hidden_comment_types"}}
</h4>
<div class="ui attached segment">
<p class="help">
{{ctx.Locale.Tr "settings.hidden_comment_types_description"}}
</p>
<form class="ui form" action="{{.Link}}/hidden_comments" method="post">
<fieldset>
<label>
<input name="reference" type="checkbox" {{if(call .IsCommentTypeGroupChecked "reference")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_reference"}}
<span class="help">
{{ctx.Locale.Tr "settings.hidden_comment_types.ref_tooltip"}}
</span>
</label>
<label>
<input name="label" type="checkbox" {{if (call .IsCommentTypeGroupChecked "label")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_label"}}
</label>
<label>
<input name="milestone" type="checkbox" {{if (call .IsCommentTypeGroupChecked "milestone")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_milestone"}}
</label>
<label>
<input name="assignee" type="checkbox" {{if (call .IsCommentTypeGroupChecked "assignee")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_assignee"}}
</label>
<label>
<input name="title" type="checkbox" {{if (call .IsCommentTypeGroupChecked "title")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_title"}}
</label>
<label>
<input name="branch" type="checkbox" {{if (call .IsCommentTypeGroupChecked "branch")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_branch"}}
</label>
<label>
<input name="time_tracking" type="checkbox" {{if (call .IsCommentTypeGroupChecked "time_tracking")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_time_tracking"}}
</label>
<label>
<input name="deadline" type="checkbox" {{if (call .IsCommentTypeGroupChecked "deadline")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_deadline"}}
</label>
<label>
<input name="dependency" type="checkbox" {{if (call .IsCommentTypeGroupChecked "dependency")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_dependency"}}
</label>
<label>
<input name="lock" type="checkbox" {{if (call .IsCommentTypeGroupChecked "lock")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_lock"}}
</label>
<label>
<input name="review_request" type="checkbox" {{if (call .IsCommentTypeGroupChecked "review_request")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_review_request"}}
</label>
<label>
<input name="pull_request_push" type="checkbox" {{if (call .IsCommentTypeGroupChecked "pull_request_push")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_pull_request_push"}}
</label>
<label>
<input name="project" type="checkbox" {{if (call .IsCommentTypeGroupChecked "project")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_project"}}
</label>
<label>
<input name="issue_ref" type="checkbox" {{if (call .IsCommentTypeGroupChecked "issue_ref")}}checked{{end}}>
{{ctx.Locale.Tr "settings.comment_type_group_issue_ref"}}
<span class="help">
{{ctx.Locale.Tr "settings.hidden_comment_types.issue_ref_tooltip"}}
</span>
</label>
</fieldset>
<button class="primary button">{{ctx.Locale.Tr "save"}}</button>
</form>
</div>
</div>
{{template "user/settings/layout_footer" .}}