Change-Id: I1a30b5dfd68c5fb255e66e95d9601c6f9e2ebe67mr10.0
parent
b45da7aad6
commit
ac204b353b
@ -1,56 +0,0 @@
|
||||
<template>
|
||||
<q-list
|
||||
no-border
|
||||
>
|
||||
<q-expansion-item
|
||||
ref="languageCollapsible"
|
||||
v-model="expanded"
|
||||
:label="languageLabel"
|
||||
>
|
||||
<q-list
|
||||
no-border
|
||||
>
|
||||
<q-item
|
||||
v-for="(language, index) in languageLabels"
|
||||
:key="index"
|
||||
v-close-popup
|
||||
clickable
|
||||
@click="changeSessionLanguage(language[0])"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ language[1] }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-expansion-item>
|
||||
</q-list>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
mapActions
|
||||
} from 'vuex'
|
||||
export default {
|
||||
name: 'CscLanguageMenu',
|
||||
props: {
|
||||
languageLabel: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
languageLabels: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
expanded: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapActions('user', [
|
||||
'changeSessionLanguage'
|
||||
])
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,60 @@
|
||||
<template>
|
||||
<q-btn
|
||||
icon="language"
|
||||
:color="iconColor"
|
||||
round
|
||||
small
|
||||
flat
|
||||
>
|
||||
<q-menu>
|
||||
<q-item
|
||||
v-close-popup
|
||||
>
|
||||
<q-item-section
|
||||
class="text-weight-medium"
|
||||
>
|
||||
{{ languageLabel }}
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator />
|
||||
<q-item
|
||||
v-for="(language, index) in options"
|
||||
:key="index"
|
||||
v-close-popup
|
||||
clickable
|
||||
@click="changeLanguage(language.value)"
|
||||
>
|
||||
<q-item-section>{{ language.label }}</q-item-section>
|
||||
</q-item>
|
||||
</q-menu>
|
||||
</q-btn>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import _ from 'lodash'
|
||||
import { i18n } from 'boot/i18n'
|
||||
import { getLanguageLabels, setLanguage } from 'src/i18n'
|
||||
export default {
|
||||
name: 'CscSelectionLanguage',
|
||||
props: {
|
||||
iconColor: {
|
||||
type: String,
|
||||
default: 'primary'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
languageLabel () {
|
||||
const lang = _.first(this.options.filter(item => item.value === i18n.locale))
|
||||
return this.$t('Language') + ' (' + lang.label + ')'
|
||||
},
|
||||
options () {
|
||||
return getLanguageLabels()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeLanguage (lang) {
|
||||
setLanguage(lang)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<q-list
|
||||
no-border
|
||||
>
|
||||
<q-expansion-item
|
||||
ref="languageCollapsible"
|
||||
v-model="expanded"
|
||||
:label="languageLabel"
|
||||
>
|
||||
<q-list
|
||||
no-border
|
||||
>
|
||||
<q-item
|
||||
v-for="(language, index) in options"
|
||||
:key="index"
|
||||
v-close-popup
|
||||
clickable
|
||||
@click="changeLanguage(language.value)"
|
||||
>
|
||||
<q-item-section>
|
||||
<q-item-label>{{ language.label }}</q-item-label>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-expansion-item>
|
||||
</q-list>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import _ from 'lodash'
|
||||
import { i18n } from 'boot/i18n'
|
||||
import { getLanguageLabels, setLanguage } from 'src/i18n'
|
||||
|
||||
export default {
|
||||
// TODO: this component has some duplicated code with "CscSelectionLanguage" component. Please recheck do we still need to have a separate UI for Mobile users
|
||||
name: 'CscSelectionLanguageMobile',
|
||||
data () {
|
||||
return {
|
||||
expanded: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
languageLabel () {
|
||||
const lang = _.first(this.options.filter(item => item.value === i18n.locale))
|
||||
return this.$t('Language') + ' (' + lang.label + ')'
|
||||
},
|
||||
options () {
|
||||
return getLanguageLabels()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeLanguage (lang) {
|
||||
setLanguage(lang)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
Loading…
Reference in new issue