@@ -5,7 +5,8 @@ export const systemService = { | |||||
loadSystemConfigs, | loadSystemConfigs, | ||||
loadMessages, | loadMessages, | ||||
loadTimezones, | loadTimezones, | ||||
detectTimezone | |||||
detectTimezone, | |||||
detectLocale | |||||
}; | }; | ||||
function loadSystemConfigs() { | function loadSystemConfigs() { | ||||
@@ -31,7 +32,15 @@ function loadTimezones() { | |||||
} | } | ||||
function detectTimezone() { | function detectTimezone() { | ||||
return fetch(`${config.apiUrl}/me/detect/timezone`, getWithAuth()) | |||||
const requestOptions = userLoggedIn() ? getWithAuth() : { method: 'GET' }; | |||||
return fetch(`${config.apiUrl}/auth/detect/timezone`, requestOptions) | |||||
.then(handleBasicResponse) | .then(handleBasicResponse) | ||||
.then(timezone => { return timezone; }); | .then(timezone => { return timezone; }); | ||||
} | } | ||||
function detectLocale () { | |||||
const requestOptions = userLoggedIn() ? getWithAuth() : { method: 'GET' }; | |||||
return fetch(`${config.apiUrl}/auth/detect/locale`, requestOptions) | |||||
.then(handleBasicResponse) | |||||
.then(locales => { return locales; }); | |||||
} |
@@ -10,6 +10,7 @@ const state = { | |||||
locales: [], | locales: [], | ||||
timezones: [], | timezones: [], | ||||
detectedTimezone: null, | detectedTimezone: null, | ||||
detectedLocale: null, | |||||
menu: [], | menu: [], | ||||
error: null | error: null | ||||
}; | }; | ||||
@@ -44,6 +45,13 @@ const actions = { | |||||
timezones => commit('detectTimezoneSuccess', timezones), | timezones => commit('detectTimezoneSuccess', timezones), | ||||
error => commit('detectTimezoneFailure', error) | error => commit('detectTimezoneFailure', error) | ||||
) | ) | ||||
}, | |||||
detectLocale({ commit }) { | |||||
commit('detectLocaleRequest'); | |||||
systemService.detectLocale().then( | |||||
locales => commit('detectLocaleSuccess', locales), | |||||
error => commit('detectLocaleFailure', error) | |||||
) | |||||
} | } | ||||
}; | }; | ||||
@@ -118,6 +126,13 @@ const mutations = { | |||||
}, | }, | ||||
detectTimezoneFailure(state, error) { | detectTimezoneFailure(state, error) { | ||||
state.error = error; | state.error = error; | ||||
}, | |||||
detectLocaleRequest(state) {}, | |||||
detectLocaleSuccess(state, detectedLocales) { | |||||
state.detectedLocale = detectedLocales.length > 0 ? detectedLocales[0] : null; | |||||
}, | |||||
detectLocaleFailure(state, error) { | |||||
state.error = error; | |||||
} | } | ||||
}; | }; | ||||
@@ -26,7 +26,7 @@ export default { | |||||
}, | }, | ||||
methods: { | methods: { | ||||
...mapActions({ clearAlert: 'alert/clear' }), | ...mapActions({ clearAlert: 'alert/clear' }), | ||||
...mapActions('system', ['loadSystemConfigs', 'loadMessages', 'loadTimezones', 'detectTimezone']) | |||||
...mapActions('system', ['loadSystemConfigs', 'loadMessages', 'loadTimezones', 'detectTimezone', 'detectLocale']) | |||||
}, | }, | ||||
watch: { | watch: { | ||||
$route (to, from){ | $route (to, from){ | ||||
@@ -35,14 +35,16 @@ export default { | |||||
} | } | ||||
}, | }, | ||||
created() { | created() { | ||||
this.loadSystemConfigs(); // determine if we can show the registration link | |||||
// todo: allow user to choose locale | // todo: allow user to choose locale | ||||
const locale = 'detect'; | const locale = 'detect'; | ||||
this.loadTimezones(); | |||||
this.loadMessages('pre_auth', locale); | this.loadMessages('pre_auth', locale); | ||||
this.loadMessages('countries', locale); | this.loadMessages('countries', locale); | ||||
this.loadMessages('timezones', locale); | this.loadMessages('timezones', locale); | ||||
this.detectLocale(); | |||||
this.loadTimezones(); | |||||
this.detectTimezone(); | this.detectTimezone(); | ||||
this.loadSystemConfigs(); // determine if we can show the registration link | |||||
} | } | ||||
}; | }; | ||||
</script> | </script> |