diff --git a/src/api/subscriber.js b/src/api/subscriber.js index 900a2a84..9db5c711 100644 --- a/src/api/subscriber.js +++ b/src/api/subscriber.js @@ -9,6 +9,7 @@ import { get, patchAdd, patchReplace, + patchRemove, patchReplaceFull, patchAddFull @@ -27,6 +28,11 @@ export function getPreferences (id) { }) } +export async function getPreferencesDefs (id) { + const result = await Vue.http.get('api/subscriberpreferencedefs/') + return getJsonBody(result.body) +} + export async function setPreference (id, field, value) { try { await replacePreference(id, field, value) @@ -43,6 +49,13 @@ export async function setPreference (id, field, value) { } } +export async function removePreference (id, field) { + return await patchRemove({ + path: 'api/subscriberpreferences/' + id, + fieldPath: field + }) +} + export function addPreference (id, field, value) { return new Promise((resolve, reject) => { patchAdd({ diff --git a/src/boot/constants.js b/src/boot/constants.js index 9abedb89..0fe0caac 100644 --- a/src/boot/constants.js +++ b/src/boot/constants.js @@ -6,5 +6,4 @@ export default ({ Vue, app }) => { { label: app.i18n.t('communication.quality.super'), value: 'super' } ] Vue.prototype.$faxQualityOptionsDefault = Vue.prototype.$faxQualityOptions[0] - Vue.prototype.$defaultVoicePromptLanguage = 'use domain default' } diff --git a/src/pages/CscPageCallSettings.vue b/src/pages/CscPageCallSettings.vue index aa8c8842..08617a41 100644 --- a/src/pages/CscPageCallSettings.vue +++ b/src/pages/CscPageCallSettings.vue @@ -30,7 +30,7 @@ lang.default_val).label + }, + async languages (state) { + const preferencesDefs = await getPreferencesDefs() + return preferencesDefs + .language + .enum_values + .map((lang) => { return { value: lang.value, label: lang.label, default_val: lang.default_val } }) } }, mutations: { @@ -43,6 +56,22 @@ export default { }, async setMusicOnHold (context, value) { await context.dispatch('fieldUpdateAction', { field: 'music_on_hold', value }) + }, + async setLanguage (context, value) { + const subscriberId = context.getters.subscriberId + if (value) { + await setPreference(subscriberId, 'language', value) + context.commit('subscriberPreferencesUpdate', { + field: 'language', + value: value + }) + } else { + await removePreference(subscriberId, 'language') + context.commit('subscriberPreferencesUpdate', { + field: 'language', + value: null + }) + } } } }