diff --git a/frontend/src/layouts/auth/AuthLayout.vue b/frontend/src/layouts/auth/AuthLayout.vue new file mode 100644 index 00000000..e16e6b92 --- /dev/null +++ b/frontend/src/layouts/auth/AuthLayout.vue @@ -0,0 +1,21 @@ + + + + + + + + + + Powered by Libredesk + + + + + + diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index c26502f7..2c1718ed 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -1,16 +1,17 @@ import { createRouter, createWebHistory } from 'vue-router' -import App from '../App.vue' -import OuterApp from '../OuterApp.vue' -import DashboardView from '../views/reports/DashboardView.vue' -import InboxLayout from '../layouts/inbox/InboxLayout.vue' -import SearchView from '../views/search/SearchView.vue' -import UserLoginView from '../views/login/UserLoginView.vue' +import App from '@/App.vue' +import OuterApp from '@/OuterApp.vue' +import DashboardView from '@/views/reports/DashboardView.vue' +import InboxLayout from '@/layouts/inbox/InboxLayout.vue' +import SearchView from '@/views/search/SearchView.vue' import AccountLayout from '@/layouts/account/AccountLayout.vue' import AdminLayout from '@/layouts/admin/AdminLayout.vue' -import ResetPasswordView from '@/views/outerapp/ResetPasswordView.vue' -import SetPasswordView from '@/views/outerapp/SetPasswordView.vue' +import UserLoginView from '@/views/auth/UserLoginView.vue' +import ResetPasswordView from '@/views/auth/ResetPasswordView.vue' +import SetPasswordView from '@/views/auth/SetPasswordView.vue' import InboxView from '@/views/inbox/InboxView.vue' import ConversationDetailView from '@/views/conversation/ConversationDetailView.vue' +import { useAppSettingsStore } from '@/stores/appSettings' const routes = [ { @@ -465,7 +466,11 @@ const router = createRouter({ }) router.beforeEach((to, from, next) => { - document.title = to.meta.title + ' - Libredesk' + // Make page title with the route name and site name + const appSettingsStore = useAppSettingsStore() + const siteName = appSettingsStore.settings?.['app.site_name'] || 'Libredesk' + const pageTitle = to.meta?.title || '' + document.title = `${pageTitle} - ${siteName}` next() }) diff --git a/frontend/src/views/auth/ResetPasswordView.vue b/frontend/src/views/auth/ResetPasswordView.vue new file mode 100644 index 00000000..b97ea5cf --- /dev/null +++ b/frontend/src/views/auth/ResetPasswordView.vue @@ -0,0 +1,143 @@ + + + + + + {{ + t('auth.resetPassword') + }} + {{ t('auth.enterEmailForReset') }} + + + + + {{ + t('globals.terms.email') + }} + + + + + + + + + + {{ t('auth.sending') }} + + {{ t('auth.sendResetLink') }} + + + + + + + + {{ t('auth.backToLogin') }} + + + + + + + + diff --git a/frontend/src/views/auth/SetPasswordView.vue b/frontend/src/views/auth/SetPasswordView.vue new file mode 100644 index 00000000..15c477e2 --- /dev/null +++ b/frontend/src/views/auth/SetPasswordView.vue @@ -0,0 +1,176 @@ + + + + + + {{ + t('auth.setNewPassword') + }} + {{ t('auth.enterNewPasswordTwice') }} + + + + + + {{ + t('globals.messages.new', { + name: t('globals.terms.password').toLowerCase() + }) + }} + + + + + + {{ + t('auth.confirmPassword') + }} + + + + + + + + + + {{ t('auth.settingPassword') }} + + {{ t('auth.setNewPassword') }} + + + + + + + + + + diff --git a/frontend/src/views/auth/UserLoginView.vue b/frontend/src/views/auth/UserLoginView.vue new file mode 100644 index 00000000..1cad0875 --- /dev/null +++ b/frontend/src/views/auth/UserLoginView.vue @@ -0,0 +1,249 @@ + + + + + + + {{ appSettingsStore.settings?.['app.site_name'] || 'Libredesk' }} + + {{ t('auth.signIn') }} + + + + + + {{ oidcProvider.name }} + + + + + + + + {{ t('auth.orContinueWith') }} + + + + + + + {{ + t('globals.terms.email') + }} + + + + + {{ + t('auth.password') + }} + + + + + + {{ t('auth.forgotPassword') }} + + + + + + + + + + {{ t('auth.loggingIn') }} + + {{ t('auth.signInButton') }} + + + + + + + + + + diff --git a/frontend/src/views/login/UserLoginView.vue b/frontend/src/views/login/UserLoginView.vue deleted file mode 100644 index 39e954e0..00000000 --- a/frontend/src/views/login/UserLoginView.vue +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - - {{ - t('globals.app.name') - }} - {{ t('auth.signIn') }} - - - - - - {{ oidcProvider.name }} - - - - - - - - {{ - t('auth.orContinueWith') - }} - - - - - - - {{ - t('globals.terms.email') - }} - - - - - {{ - t('auth.password') - }} - - - - - - {{ t('auth.forgotPassword') }} - - - - - - - - - - {{ t('auth.loggingIn') }} - - {{ t('auth.signInButton') }} - - - - - - - - - - - - diff --git a/frontend/src/views/outerapp/ResetPasswordView.vue b/frontend/src/views/outerapp/ResetPasswordView.vue deleted file mode 100644 index 96e0934b..00000000 --- a/frontend/src/views/outerapp/ResetPasswordView.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - {{ - t('auth.resetPassword') - }} - {{ t('auth.enterEmailForReset') }} - - - - - {{ - t('globals.terms.email') - }} - - - - - - - - - - {{ t('auth.sending') }} - - {{ t('auth.sendResetLink') }} - - - - - - - - {{ t('auth.backToLogin') }} - - - - - - - - - - diff --git a/frontend/src/views/outerapp/SetPasswordView.vue b/frontend/src/views/outerapp/SetPasswordView.vue deleted file mode 100644 index 30d41a48..00000000 --- a/frontend/src/views/outerapp/SetPasswordView.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - {{ - t('auth.setNewPassword') - }} - {{ t('auth.enterNewPasswordTwice') }} - - - - - - {{ - t('globals.messages.new', { - name: t('globals.terms.password') - }) - }} - - - - - - {{ - t('auth.confirmPassword') - }} - - - - - - - - - - {{ t('auth.settingPassword') }} - - {{ t('auth.setNewPassword') }} - - - - - - - - - - - - diff --git a/i18n/en.json b/i18n/en.json index 4c6ab7b2..4f1c605d 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1,7 +1,6 @@ { "_.code": "en", "_.name": "English (en)", - "globals.app.name": "Libredesk", "globals.terms.user": "User | Users", "globals.terms.contact": "Contact | Contacts", "globals.terms.agent": "Agent | Agents", @@ -190,21 +189,21 @@ "auth.forgotPassword": "Forgot password?", "auth.loggingIn": "Logging in...", "auth.signInButton": "Sign in", - "auth.resetPassword": "Reset Password", + "auth.resetPassword": "Reset password", "auth.enterEmailForReset": "Enter your email to receive a password reset link.", "auth.sending": "Sending...", "auth.sendResetLink": "Send Reset Link", "auth.invalidEmail": "Invalid email address.", "auth.resetLinkSent": "Reset link sent", - "auth.checkEmailForReset": "Please check your email for the reset link.", + "auth.checkEmailForReset": "Check your email for the password reset link.", "auth.backToLogin": "Back to login", "auth.setNewPassword": "Set new password", - "auth.enterNewPasswordTwice": "Please enter your new password twice to confirm.", + "auth.enterNewPasswordTwice": "Enter your new password twice to confirm.", "auth.enterNewPassword": "Enter new password", "auth.confirmPassword": "Confirm password", "auth.confirmNewPassword": "Confirm new password", "auth.settingPassword": "Setting password...", - "auth.invalidResetLink": "Invalid reset link. Please request a new password reset link.", + "auth.invalidResetLink": "Invalid reset link. Request a new password reset link.", "auth.passwordRequired": "Password is required.", "auth.passwordsDoNotMatch": "Passwords do not match.", "auth.passwordSetSuccess": "You can now login with your new password.", diff --git a/i18n/mr.json b/i18n/mr.json index 19a49ce2..dbf1be78 100644 --- a/i18n/mr.json +++ b/i18n/mr.json @@ -1,7 +1,6 @@ { "_.code": "mr", "_.name": "मराठी (mr)", - "globals.app.name": "लिब्रेडेस्क", "globals.terms.user": "वापरकर्ता | वापरकर्ते", "globals.terms.contact": "संपर्क | संपर्क", "globals.terms.agent": "एजंट | एजंट्स",
{{ t('auth.enterEmailForReset') }}
{{ t('auth.enterNewPasswordTwice') }}
{{ t('auth.signIn') }}