Skip to content

Commit 1ddadf7

Browse files
committed
Restore Language Component
1 parent b29c8d1 commit 1ddadf7

File tree

3 files changed

+32
-105
lines changed

3 files changed

+32
-105
lines changed

src/api/ADempiere/common/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,17 @@ export function requestLanguagesList({
136136
page_size: pageSize
137137
}
138138
})
139+
.then(languagesListResponse => {
140+
const { convertLanguage } = require('@/utils/ADempiere/apiConverts/core.js')
141+
142+
return {
143+
nextPageToken: languagesListResponse.next_page_token,
144+
recordCount: languagesListResponse.record_count,
145+
languagesList: languagesListResponse.languages.map(language => {
146+
return convertLanguage(language)
147+
})
148+
}
149+
})
139150
}
140151

141152
/**

src/components/LangSelect/index.vue

Lines changed: 20 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,20 @@
11
<template>
2-
<el-dropdown
3-
trigger="click"
4-
>
5-
<span class="el-dropdown-link">
2+
<el-dropdown trigger="click" class="international" @command="handleSetLanguage">
3+
<div style="margin-right: 5px;margin-left: 4px;">
64
<svg-icon class-name="international-icon" icon-class="language" />
7-
</span>
5+
</div>
86
<el-dropdown-menu slot="dropdown">
9-
<el-dropdown-item
10-
v-for="(language, key) in list"
11-
:key="key"
12-
>
13-
<el-dropdown
14-
@command="handleSetLanguage"
15-
>
16-
<span class="el-dropdown-link">
17-
{{ language.language_name }}
18-
<i
19-
class="el-icon-arrow-down el-icon--right"
20-
/>
21-
</span>
22-
<el-dropdown-menu slot="dropdown">
23-
<el-dropdown-item
24-
v-for="(languageChild, index) in language.childs"
25-
:key="index"
26-
:command="languageChild"
27-
:disabled="languageChild.language === currentLanguage"
28-
>
29-
{{ languageChild.language_name }}
30-
</el-dropdown-item>
31-
</el-dropdown-menu>
32-
</el-dropdown>
7+
<el-dropdown-item :disabled="language==='zh'" command="zh">
8+
中文
9+
</el-dropdown-item>
10+
<el-dropdown-item :disabled="language==='en'" command="en">
11+
English
12+
</el-dropdown-item>
13+
<el-dropdown-item :disabled="language==='es'" command="es">
14+
Español
15+
</el-dropdown-item>
16+
<el-dropdown-item :disabled="language==='ja'" command="ja">
17+
日本語
3318
</el-dropdown-item>
3419
</el-dropdown-menu>
3520
</el-dropdown>
@@ -40,14 +25,9 @@ import { defineComponent, computed } from '@vue/composition-api'
4025
4126
import store from '@/store'
4227
import router from '@/router'
43-
// Constants
44-
import {
45-
DEFAULT_LANGUAGE_LIST
46-
} from '@/utils/ADempiere/dictionary/language.ts'
4728
4829
// Utils and Helper Methods
4930
import { showMessage } from '@/utils/ADempiere/notification'
50-
import { isEmptyValue } from '@/utils/ADempiere'
5131
5232
export default defineComponent({
5333
name: 'SearchCriteria',
@@ -61,38 +41,17 @@ export default defineComponent({
6141
* Computed
6242
*/
6343
64-
const currentLanguage = computed(() => {
65-
return store.getters.getCurrentLanguage
66-
})
67-
68-
const languageAll = computed(() => {
69-
return store.getters.getLanguages
70-
})
71-
72-
const list = computed(() => {
73-
const groupedLanguages = languageAll.value.reduce((acc, lang) => {
74-
const languageCode = lang.language_iso
75-
if (!acc[languageCode]) {
76-
acc[languageCode] = []
77-
}
78-
acc[languageCode].push(lang)
79-
return acc
80-
}, {})
81-
82-
const result = Object.entries(groupedLanguages).map(([languageCode, languages]) => ({
83-
...displayLanguage(languageCode),
84-
childs: languages
85-
}))
86-
return result
44+
const language = computed(() => {
45+
return store.getters.language
8746
})
8847
8948
/**
9049
* Methods
9150
*/
9251
function handleSetLanguage(lang) {
93-
this.$i18n.locale = lang.language_iso
94-
store.dispatch('app/setLanguage', lang.language)
95-
.then(() => {
52+
this.$i18n.locale = lang
53+
store.dispatch('app/setLanguage', lang)
54+
.then(response => {
9655
const { path } = currentRoute
9756
if (path !== '/login') {
9857
location.reload()
@@ -110,32 +69,10 @@ export default defineComponent({
11069
})
11170
}
11271
113-
function load() {
114-
store.dispatch('requestLanguagesLoaded')
115-
}
116-
117-
function displayLanguage(lang) {
118-
if (isEmptyValue(lang) && isEmptyValue(DEFAULT_LANGUAGE_LIST)) return lang
119-
const langs = DEFAULT_LANGUAGE_LIST.find(item => {
120-
if (item.language_iso === lang) {
121-
return item
122-
}
123-
})
124-
return langs || {
125-
language_iso: lang,
126-
label: lang
127-
}
128-
}
129-
130-
load()
131-
13272
return {
13373
// Computed
134-
list,
135-
languageAll,
136-
currentLanguage,
74+
language,
13775
// Methods
138-
load,
13976
handleSetLanguage
14077
}
14178
}

src/store/modules/ADempiere/system.js

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ import { convertDateFormat } from '@/utils/ADempiere/formatValue/dateFormat.js'
3232
const system = {
3333
state: {
3434
systemDefinition: {},
35-
languagesList: [],
36-
languages: []
35+
languagesList: []
3736
},
3837

3938
mutations: {
@@ -50,9 +49,6 @@ const system = {
5049
})
5150

5251
state.languagesList = Object.freeze(languagesList)
53-
},
54-
setLanguages(state, list) {
55-
state.languages = list
5652
}
5753
},
5854

@@ -89,20 +85,6 @@ const system = {
8985
.then(() => {
9086
location.reload(true)
9187
})
92-
},
93-
requestLanguagesLoaded({ commit }) {
94-
return new Promise((resolve, reject) => {
95-
requestLanguagesList({})
96-
.then(response => {
97-
const { languages } = response
98-
commit('setLanguages', languages)
99-
resolve(languages)
100-
})
101-
.catch(error => {
102-
console.warn(`Error getting Languages List: ${error.message}. Code: ${error.code}.`)
103-
reject(error)
104-
})
105-
})
10688
}
10789

10890
},
@@ -147,9 +129,6 @@ const system = {
147129
return state.languagesList.find(definition => {
148130
return definition.language === language
149131
})
150-
},
151-
getLanguages: (state) => {
152-
return state.languages
153132
}
154133
}
155134
}

0 commit comments

Comments
 (0)