Implemented personal settings
This commit is contained in:
@@ -15,12 +15,8 @@
|
||||
<div>
|
||||
<label>{{ $t("register.repeatPassword") }}<input type="password" v-model="repeatPassword" /></label>
|
||||
</div>
|
||||
<div>
|
||||
<label>{{ $t("register.language") }}<select v-model="language">
|
||||
<option value="en">{{ $t("register.languages.en") }}</option>
|
||||
<option value="de">{{ $t("register.languages.de") }}</option>
|
||||
</select></label>
|
||||
</div>
|
||||
<SelectDropdownWidget labelTr="settings.personal.label.language" :v-model="language"
|
||||
tooltipTr="settings.personal.tooltip.language" :list="languages" :value="language" />
|
||||
</div>
|
||||
<ErrorDialog ref="errorDialog" />
|
||||
</DialogWidget>
|
||||
@@ -31,12 +27,14 @@ import { mapActions } from 'vuex';
|
||||
import apiClient from '@/utils/axios.js';
|
||||
import DialogWidget from '@/components/DialogWidget.vue';
|
||||
import ErrorDialog from '@/dialogues/standard/ErrorDialog.vue';
|
||||
import SelectDropdownWidget from '@/components/form/SelectDropdownWidget.vue';
|
||||
|
||||
export default {
|
||||
name: 'RegisterDialog',
|
||||
components: {
|
||||
DialogWidget,
|
||||
ErrorDialog,
|
||||
SelectDropdownWidget,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -44,7 +42,8 @@ export default {
|
||||
username: '',
|
||||
password: '',
|
||||
repeatPassword: '',
|
||||
language: this.getBrowserLanguage(),
|
||||
language: null,
|
||||
languages: [],
|
||||
buttons: [
|
||||
{ text: 'register.close', action: 'close' },
|
||||
{ text: 'register.register', action: 'register', disabled: !this.canRegister }
|
||||
@@ -61,15 +60,22 @@ export default {
|
||||
this.buttons[1].disabled = !newValue;
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
await this.getLanguages();
|
||||
await this.getBrowserLanguage();
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['login']),
|
||||
getBrowserLanguage() {
|
||||
async getBrowserLanguage() {
|
||||
const browserLanguage = navigator.language || navigator.languages[0];
|
||||
let short = '';
|
||||
if (browserLanguage.startsWith('de')) {
|
||||
return 'de';
|
||||
short = 'de';
|
||||
} else {
|
||||
return 'en';
|
||||
short = 'en';
|
||||
}
|
||||
const response = await apiClient.post('/api/settings/getparamvalueid', { paramValue: short });
|
||||
this.language = response.data.paramValueId;
|
||||
},
|
||||
open() {
|
||||
this.$refs.dialog.open();
|
||||
@@ -93,7 +99,6 @@ export default {
|
||||
});
|
||||
|
||||
if (response.status === 201) {
|
||||
console.log(response.data);
|
||||
this.login(response.data);
|
||||
this.$refs.dialog.close();
|
||||
this.$router.push('/activate');
|
||||
@@ -108,6 +113,16 @@ export default {
|
||||
this.$refs.errorDialog.open('tr:register.' + error.response.data.error);
|
||||
}
|
||||
}
|
||||
},
|
||||
async getLanguages() {
|
||||
try {
|
||||
const response = await apiClient.post('/api/settings/getparamvalues', {
|
||||
type: 'language'
|
||||
});
|
||||
this.languages = response.data.map(item => { return { value: item.id, captionTr: `settings.personal.language.${item.name}` } });
|
||||
} catch (err) {
|
||||
console.error('Error loading languages:', err);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user