diff --git a/frappe-ui b/frappe-ui index 333dce1a..8cd9b06a 160000 --- a/frappe-ui +++ b/frappe-ui @@ -1 +1 @@ -Subproject commit 333dce1a4d13243645403775db613a9b5106994c +Subproject commit 8cd9b06a5ed50dc181d9672b2fe84c1594b52b48 diff --git a/frontend/src/components/Modals/EditProfile.vue b/frontend/src/components/Modals/EditProfile.vue index 144878ae..f6564d49 100644 --- a/frontend/src/components/Modals/EditProfile.vue +++ b/frontend/src/components/Modals/EditProfile.vue @@ -2,7 +2,7 @@ @@ -95,12 +102,14 @@ import { TextEditor, toast, } from 'frappe-ui' -import { reactive, watch } from 'vue' -import { FileText, X } from 'lucide-vue-next' +import { ref, reactive, watch } from 'vue' +import { X } from 'lucide-vue-next' import { getFileSize, decodeEntities } from '@/utils' +import Link from '@/components/Controls/Link.vue' import DOMPurify from 'dompurify' const reloadProfile = defineModel('reloadProfile') +const hasLanguageChanged = ref(false) const props = defineProps({ profile: { @@ -170,6 +179,10 @@ const saveProfile = (close) => { onSuccess() { close() reloadProfile.value.reload() + if (hasLanguageChanged.value) { + hasLanguageChanged.value = false + window.location.reload() + } }, onError(err) { toast.error(err.messages?.[0] || err) @@ -200,9 +213,19 @@ watch( profile.first_name = newVal.first_name profile.last_name = newVal.last_name profile.headline = newVal.headline + profile.language = newVal.language profile.bio = newVal.bio if (newVal.user_image) imageResource.submit({ image: newVal.user_image }) } } ) + +watch( + () => profile.language, + (newVal, oldVal) => { + if (newVal !== oldVal) { + hasLanguageChanged.value = true + } + } +) diff --git a/frontend/src/components/Settings/SettingFields.vue b/frontend/src/components/Settings/SettingFields.vue index 4b2f7633..828e5dad 100644 --- a/frontend/src/components/Settings/SettingFields.vue +++ b/frontend/src/components/Settings/SettingFields.vue @@ -30,9 +30,17 @@ -
-
- {{ __(field.label) }} +
+
+
+ {{ __(field.label) }} +
+
+ {{ __(field.description) }} +
{ label: 'Logo', name: 'banner_image', type: 'Upload', + description: + 'Appears in the top left corner of the application to represent your brand.', }, { label: 'Favicon', name: 'favicon', type: 'Upload', + description: + 'Appears in the browser tab next to the page title, bookmarks, and shortcuts to help users quickly identify the application.', }, ], }, diff --git a/frontend/src/pages/Home/Home.vue b/frontend/src/pages/Home/Home.vue index f0f6ed24..db7c0046 100644 --- a/frontend/src/pages/Home/Home.vue +++ b/frontend/src/pages/Home/Home.vue @@ -119,7 +119,7 @@ const subtitle = computed(() => { return __('Manage your courses and batches at a glance') } else { let liveClassSuffix = - myLiveClasses.data.length > 1 ? __('live classes') : __('live class') + myLiveClasses.data?.length > 1 ? __('live classes') : __('live class') let evalSuffix = evalCount.value > 1 ? __('evaluations') : __('evaluation') if (myLiveClasses.data?.length > 0 && evalCount.value > 0) { return __('You have {0} upcoming {1} and {2} {3} scheduled.').format( diff --git a/frontend/src/pages/JobDetail.vue b/frontend/src/pages/JobDetail.vue index c3b25ebd..ab478116 100644 --- a/frontend/src/pages/JobDetail.vue +++ b/frontend/src/pages/JobDetail.vue @@ -86,7 +86,7 @@
-
+