diff --git a/src/mobile-main.js b/src/mobile-main.js index 11477f47..794721ab 100644 --- a/src/mobile-main.js +++ b/src/mobile-main.js @@ -31,7 +31,35 @@ Vue.prototype.$setLanguage = function (locale) { axios.defaults.headers.common['Accept-Language'] = locale; document.querySelector('html').setAttribute('lang', locale); return locale; -} +}; +Vue.prototype.$alert = function (message, confirmCallback) { + this.$f7.dialog.create({ + title: i18n.t('global.app.title'), + text: i18n.t(message), + buttons: [ + { + text: i18n.t('OK'), + onClick: confirmCallback + } + ] + }).open(); +}; +Vue.prototype.$confirm = function (message, confirmCallback, cancelCallback) { + this.$f7.dialog.create({ + title: i18n.t('global.app.title'), + text: i18n.t(message), + buttons: [ + { + text: i18n.t('Cancel'), + onClick: cancelCallback + }, + { + text: i18n.t('OK'), + onClick: confirmCallback + } + ] + }).open(); +}; Vue.prototype.$services = services; Vue.prototype.$user = userstate; diff --git a/src/views/mobile/Login.vue b/src/views/mobile/Login.vue index e7c2b5ef..36f85a93 100644 --- a/src/views/mobile/Login.vue +++ b/src/views/mobile/Login.vue @@ -110,12 +110,12 @@ export default { const router = self.$f7router; if (!this.username) { - app.dialog.alert(self.$i18n.t('Please input username')); + self.$alert('Please input username'); return; } if (!this.password) { - app.dialog.alert(self.$i18n.t('Please input password')); + self.$alert('Please input password'); return; } @@ -141,7 +141,7 @@ export default { const data = response.data; if (!data || !data.success || !data.result || !data.result.token) { - app.dialog.alert(self.$i18n.t('Unable to login')); + self.$alert('Unable to login'); return; } @@ -158,9 +158,9 @@ export default { self.$f7.preloader.hide(); if (error.response && error.response.data && error.response.data.errorMessage) { - app.dialog.alert(self.$i18n.t(`error.${error.response.data.errorMessage}`)); + self.$alert(`error.${error.response.data.errorMessage}`); } else { - app.dialog.alert(self.$i18n.t('Unable to login')); + self.$alert('Unable to login'); } }) }, @@ -170,7 +170,7 @@ export default { const router = self.$f7router; if (!this.passcode) { - app.dialog.alert(self.$i18n.t('Please input passcode')); + self.$alert('Please input passcode'); return; } @@ -180,11 +180,11 @@ export default { passcode: self.passcode, token: self.tempToken }).then(response => { - self.$f7.preloader.hide(); + app.preloader.hide(); const data = response.data; if (!data || !data.success || !data.result || !data.result.token) { - app.dialog.alert(self.$i18n.t('Unable to verify')); + self.$alert('Unable to verify'); return; } @@ -192,12 +192,12 @@ export default { app.sheet.close('#2fa-auth-sheet'); router.navigate('/'); }).catch(error => { - self.$f7.preloader.hide(); + app.preloader.hide(); if (error.response && error.response.data && error.response.data.errorMessage) { - app.dialog.alert(self.$i18n.t(`error.${error.response.data.errorMessage}`)); + self.$alert(`error.${error.response.data.errorMessage}`); } else { - app.dialog.alert(self.$i18n.t('Unable to verify')); + self.$alert('Unable to verify'); } }) }, diff --git a/src/views/mobile/Settings.vue b/src/views/mobile/Settings.vue index e10d2654..30d9a3e0 100644 --- a/src/views/mobile/Settings.vue +++ b/src/views/mobile/Settings.vue @@ -38,25 +38,12 @@ export default { methods: { logout() { const self = this; - const app = self.$f7; const router = self.$f7router; - app.dialog.create({ - title: self.$i18n.t('global.app.title'), - text: self.$i18n.t('Are you sure you want to log out?'), - buttons: [ - { - text: self.$i18n.t('Cancel'), - }, - { - text: self.$i18n.t('OK'), - onClick: () => { - this.$user.clearToken(); - router.navigate('/'); - } - } - ] - }).open(); + self.$confirm('Are you sure you want to log out?', () => { + self.$user.clearToken(); + router.navigate('/'); + }); } } };