From 5b98eff4bcb4f5f7ebb69f4c052c04fafda28bc5 Mon Sep 17 00:00:00 2001 From: shuai Date: Mon, 15 May 2023 15:52:08 +0800 Subject: [PATCH] fix: support gravatar mirror sites --- i18n/en_US.yaml | 5 +++- ui/src/common/interface.ts | 6 +---- ui/src/pages/Admin/SettingsUsers/index.tsx | 12 ++++++++++ ui/src/pages/Tags/Create/index.tsx | 1 + ui/src/pages/Users/Settings/Profile/index.tsx | 23 +++++++++++-------- ui/src/services/admin/settings.ts | 1 + ui/src/stores/siteInfo.ts | 1 + 7 files changed, 34 insertions(+), 15 deletions(-) diff --git a/i18n/en_US.yaml b/i18n/en_US.yaml index 7c9e6642..fd007a0e 100644 --- a/i18n/en_US.yaml +++ b/i18n/en_US.yaml @@ -828,7 +828,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -1556,6 +1556,9 @@ ui: avatar: label: Default Avatar text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. profile_editable: title: Profile Editable allow_update_display_name: diff --git a/ui/src/common/interface.ts b/ui/src/common/interface.ts index ae2e44db..8b885565 100644 --- a/ui/src/common/interface.ts +++ b/ui/src/common/interface.ts @@ -333,6 +333,7 @@ export interface AdminSettingsUsers { allow_update_username: boolean; allow_update_website: boolean; default_avatar: string; + gravatar_base_url: string; } export interface SiteSettings { @@ -568,8 +569,3 @@ export interface UserOauthConnectorItem extends OauthConnectorItem { binding: boolean; external_id: string; } - -export interface QuestionOperationReq { - id: string; - operation: 'pin' | 'unpin' | 'hide' | 'show'; -} diff --git a/ui/src/pages/Admin/SettingsUsers/index.tsx b/ui/src/pages/Admin/SettingsUsers/index.tsx index ad0ca476..8fa17dcd 100644 --- a/ui/src/pages/Admin/SettingsUsers/index.tsx +++ b/ui/src/pages/Admin/SettingsUsers/index.tsx @@ -31,6 +31,11 @@ const Index: FC = () => { enumNames: SYSTEM_AVATAR_OPTIONS?.map((v) => v.label), default: 'system', }, + gravatar_base_url: { + type: 'string', + title: t('gravatar_base_url.label'), + description: t('gravatar_base_url.text'), + }, profile_editable: { type: 'string', title: t('profile_editable.title'), @@ -68,6 +73,9 @@ const Index: FC = () => { default_avatar: { 'ui:widget': 'select', }, + gravatar_base_url: { + 'ui:widget': 'input', + }, profile_editable: { 'ui:widget': 'legend', }, @@ -127,6 +135,7 @@ const Index: FC = () => { allow_update_username: formData.allow_update_username.value, allow_update_website: formData.allow_update_website.value, default_avatar: formData.default_avatar.value, + gravatar_base_url: formData.gravatar_base_url.value, }; putUsersSetting(reqParams) .then(() => { @@ -155,6 +164,9 @@ const Index: FC = () => { if (k === 'default_avatar' && !v) { v = 'system'; } + if (k === 'gravatar_base_url' && !v) { + v = 'https://www.gravatar.com/avatar/'; + } formMeta[k] = { ...formData[k], value: v }; }); setFormData({ ...formData, ...formMeta }); diff --git a/ui/src/pages/Tags/Create/index.tsx b/ui/src/pages/Tags/Create/index.tsx index 1b78e562..d3772de2 100644 --- a/ui/src/pages/Tags/Create/index.tsx +++ b/ui/src/pages/Tags/Create/index.tsx @@ -81,6 +81,7 @@ const Index = () => { useEffect(() => { return () => { + console.log('clear data'); setFormData({ displayName: { value: '', diff --git a/ui/src/pages/Users/Settings/Profile/index.tsx b/ui/src/pages/Users/Settings/Profile/index.tsx index 76c1650d..4264e9d9 100644 --- a/ui/src/pages/Users/Settings/Profile/index.tsx +++ b/ui/src/pages/Users/Settings/Profile/index.tsx @@ -355,15 +355,20 @@ const Index: React.FC = () => { className="me-3 rounded" /> - - You can change image on - - gravatar.com - - + {t('avatar.gravatar_text')} + + {usersSetting.gravatar_base_url.includes('gravatar.cn') + ? 'gravatar.cn' + : 'gravatar.com'} + )} diff --git a/ui/src/services/admin/settings.ts b/ui/src/services/admin/settings.ts index d2919972..8f76278b 100644 --- a/ui/src/services/admin/settings.ts +++ b/ui/src/services/admin/settings.ts @@ -11,6 +11,7 @@ export interface AdminSettingsUsers { allow_update_username: boolean; allow_update_website: boolean; default_avatar: string; + gravatar_base_url: string; } interface PrivilegeLevel { diff --git a/ui/src/stores/siteInfo.ts b/ui/src/stores/siteInfo.ts index cdba4ff7..39298c77 100644 --- a/ui/src/stores/siteInfo.ts +++ b/ui/src/stores/siteInfo.ts @@ -21,6 +21,7 @@ const defaultUsersConf: AdminSettingsUsers = { allow_update_username: false, allow_update_website: false, default_avatar: 'system', + gravatar_base_url: 'https://www.gravatar.com/avatar/', }; const siteInfo = create((set) => ({