diff --git a/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
new file mode 100644
index 00000000000..df847e87442
--- /dev/null
+++ b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue b/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue
new file mode 100644
index 00000000000..1489b96a465
--- /dev/null
+++ b/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue b/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue
index e4ff0846a07..3cb293c8a34 100644
--- a/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue
@@ -20,18 +20,21 @@
-->
-
+
-
+
+
+
Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(value),
+ validator: (value) => Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(value) || Object.values(SETTING_PROPERTY_READABLE_ENUM).includes(value),
},
handleScopeChange: {
type: Function,
- required: true,
+ default: null,
},
isEditable: {
type: Boolean,
@@ -84,7 +87,7 @@ export default {
},
scope: {
type: String,
- required: true,
+ default: null,
},
},
@@ -94,6 +97,12 @@ export default {
}
},
+ computed: {
+ isSettingProperty() {
+ return Object.values(SETTING_PROPERTY_READABLE_ENUM).includes(this.accountProperty)
+ },
+ },
+
methods: {
onAddAdditional() {
this.$emit('add-additional')
@@ -119,6 +128,15 @@ export default {
}
}
+ h3.setting-property {
+ width: 100%;
+ min-height: 38px;
+ display: inline-flex;
+ position: relative;
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+
.federation-control {
margin: -12px 0 0 8px;
}
diff --git a/apps/settings/src/main-personal-info.js b/apps/settings/src/main-personal-info.js
index 72ed4c15230..78de03cf7cf 100644
--- a/apps/settings/src/main-personal-info.js
+++ b/apps/settings/src/main-personal-info.js
@@ -29,8 +29,8 @@ import logger from './logger'
import DisplayNameSection from './components/PersonalInfo/DisplayNameSection/DisplayNameSection'
import EmailSection from './components/PersonalInfo/EmailSection/EmailSection'
+import LanguageSection from './components/PersonalInfo/LanguageSection/LanguageSection'
-// eslint-disable-next-line camelcase
__webpack_nonce__ = btoa(getRequestToken())
Vue.mixin({
@@ -44,6 +44,8 @@ Vue.mixin({
const DisplayNameView = Vue.extend(DisplayNameSection)
const EmailView = Vue.extend(EmailSection)
+const LanguageView = Vue.extend(LanguageSection)
new DisplayNameView().$mount('#vue-displaynamesection')
new EmailView().$mount('#vue-emailsection')
+new LanguageView().$mount('#vue-languagesection')
diff --git a/apps/settings/templates/settings/personal/personal.info.php b/apps/settings/templates/settings/personal/personal.info.php
index 8b1e22f964d..7484870a936 100644
--- a/apps/settings/templates/settings/personal/personal.info.php
+++ b/apps/settings/templates/settings/personal/personal.info.php
@@ -245,33 +245,7 @@ script('settings', [