Add "Unspecified" option to pronouns dropdown

This commit is contained in:
hazycora 2023-09-26 01:21:52 -05:00
parent 994c6d3cde
commit 563e8b49e8
No known key found for this signature in database
GPG key ID: 215AF1F81F86940E
4 changed files with 15 additions and 5 deletions

View file

@ -703,6 +703,7 @@ website = Website
location = Location location = Location
pronouns = Pronouns pronouns = Pronouns
pronouns_custom = Custom pronouns_custom = Custom
pronouns_unspecified = Unspecified
update_theme = Change theme update_theme = Change theme
update_profile = Update profile update_profile = Update profile
update_language = Change language update_language = Change language

View file

@ -46,7 +46,7 @@ func Profile(ctx *context.Context) {
ctx.Data["PageIsSettingsProfile"] = true ctx.Data["PageIsSettingsProfile"] = true
ctx.Data["AllowedUserVisibilityModes"] = setting.Service.AllowedUserVisibilityModesSlice.ToVisibleTypeSlice() ctx.Data["AllowedUserVisibilityModes"] = setting.Service.AllowedUserVisibilityModesSlice.ToVisibleTypeSlice()
ctx.Data["DisableGravatar"] = setting.Config().Picture.DisableGravatar.Value(ctx) ctx.Data["DisableGravatar"] = setting.Config().Picture.DisableGravatar.Value(ctx)
ctx.Data["PronounsAreCustom"] = ctx.Doer.Pronouns != "he/him" && ctx.Doer.Pronouns != "she/her" && ctx.Doer.Pronouns != "they/them" && ctx.Doer.Pronouns != "it/its" ctx.Data["PronounsAreCustom"] = ctx.Doer.Pronouns != "" && ctx.Doer.Pronouns != "he/him" && ctx.Doer.Pronouns != "she/her" && ctx.Doer.Pronouns != "they/them" && ctx.Doer.Pronouns != "it/its"
ctx.HTML(http.StatusOK, tplSettingsProfile) ctx.HTML(http.StatusOK, tplSettingsProfile)
} }
@ -57,7 +57,7 @@ func ProfilePost(ctx *context.Context) {
ctx.Data["PageIsSettingsProfile"] = true ctx.Data["PageIsSettingsProfile"] = true
ctx.Data["AllowedUserVisibilityModes"] = setting.Service.AllowedUserVisibilityModesSlice.ToVisibleTypeSlice() ctx.Data["AllowedUserVisibilityModes"] = setting.Service.AllowedUserVisibilityModesSlice.ToVisibleTypeSlice()
ctx.Data["DisableGravatar"] = setting.Config().Picture.DisableGravatar.Value(ctx) ctx.Data["DisableGravatar"] = setting.Config().Picture.DisableGravatar.Value(ctx)
ctx.Data["PronounsAreCustom"] = ctx.Doer.Pronouns != "he/him" && ctx.Doer.Pronouns != "she/her" && ctx.Doer.Pronouns != "they/them" && ctx.Doer.Pronouns != "it/its" ctx.Data["PronounsAreCustom"] = ctx.Doer.Pronouns != "" && ctx.Doer.Pronouns != "he/him" && ctx.Doer.Pronouns != "she/her" && ctx.Doer.Pronouns != "they/them" && ctx.Doer.Pronouns != "it/its"
if ctx.HasError() { if ctx.HasError() {
ctx.HTML(http.StatusOK, tplSettingsProfile) ctx.HTML(http.StatusOK, tplSettingsProfile)

View file

@ -44,12 +44,15 @@
<div class="text"> <div class="text">
{{if .PronounsAreCustom}} {{if .PronounsAreCustom}}
{{.locale.Tr "settings.pronouns_custom"}} {{.locale.Tr "settings.pronouns_custom"}}
{{else if eq "" .SignedUser.Pronouns}}
{{.locale.Tr "settings.pronouns_unspecified"}}
{{else}} {{else}}
{{.SignedUser.Pronouns}} {{.SignedUser.Pronouns}}
{{end}} {{end}}
</div> </div>
{{svg "octicon-triangle-down" 14 "dropdown icon"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}}
<div class="menu"> <div class="menu">
<div class="item{{if eq "" .SignedUser.Pronouns}} active selected{{end}}" data-value=""><i>{{.locale.Tr "settings.pronouns_unspecified"}}</i></div>
<div class="item{{if eq "he/him" .SignedUser.Pronouns}} active selected{{end}}" data-value="he/him">he/him</div> <div class="item{{if eq "he/him" .SignedUser.Pronouns}} active selected{{end}}" data-value="he/him">he/him</div>
<div class="item{{if eq "she/her" .SignedUser.Pronouns}} active selected{{end}}" data-value="she/her">she/her</div> <div class="item{{if eq "she/her" .SignedUser.Pronouns}} active selected{{end}}" data-value="she/her">she/her</div>
<div class="item{{if eq "they/them" .SignedUser.Pronouns}} active selected{{end}}" data-value="they/them">they/them</div> <div class="item{{if eq "they/them" .SignedUser.Pronouns}} active selected{{end}}" data-value="they/them">they/them</div>
@ -57,7 +60,7 @@
{{if .PronounsAreCustom}} {{if .PronounsAreCustom}}
<div class="item active selected" data-value="{{.SignedUser.Pronouns}}">{{.locale.Tr "settings.pronouns_custom"}}</div> <div class="item active selected" data-value="{{.SignedUser.Pronouns}}">{{.locale.Tr "settings.pronouns_custom"}}</div>
{{else}} {{else}}
<div class="item" data-value="">{{.locale.Tr "settings.pronouns_custom"}}</div> <div class="item" data-value="!">{{.locale.Tr "settings.pronouns_custom"}}</div>
{{end}} {{end}}
</div> </div>
</div> </div>

View file

@ -2,15 +2,21 @@ import {hideElem, showElem} from '../utils/dom.js';
function onPronounsDropdownUpdate() { function onPronounsDropdownUpdate() {
const pronounsCustom = document.getElementById('pronouns-custom'); const pronounsCustom = document.getElementById('pronouns-custom');
const pronounsInput = document.querySelector('#pronouns-dropdown input'); const pronounsDropdown = document.getElementById('pronouns-dropdown');
const pronounsInput = pronounsDropdown.querySelector('input');
const isCustom = !( const isCustom = !(
pronounsInput.value === '' ||
pronounsInput.value === 'he/him' || pronounsInput.value === 'he/him' ||
pronounsInput.value === 'she/her' || pronounsInput.value === 'she/her' ||
pronounsInput.value === 'they/them' || pronounsInput.value === 'they/them' ||
pronounsInput.value === 'it/its' pronounsInput.value === 'it/its'
); );
if (isCustom) { if (isCustom) {
if (pronounsInput.value === '!') {
pronounsCustom.value = '';
} else {
pronounsCustom.value = pronounsInput.value; pronounsCustom.value = pronounsInput.value;
}
pronounsCustom.style.display = ''; pronounsCustom.style.display = '';
} else { } else {
pronounsCustom.style.display = 'none'; pronounsCustom.style.display = 'none';