Paglias Client Fixes (#9086)

* fix login background on bigger screens

* redirect to correct page after login / signup

* fix mountains in background
This commit is contained in:
Matteo Pagliazzi
2017-09-27 20:59:49 +02:00
committed by GitHub
parent e1ad19c216
commit d40543f4ca
5 changed files with 71 additions and 23 deletions

View File

@@ -83,7 +83,7 @@
:enabled="!resetPasswordSetNewOneData.hasError" :enabled="!resetPasswordSetNewOneData.hasError"
) {{$t('setNewPass')}} ) {{$t('setNewPass')}}
#bottom-wrap #bottom-wrap(:class="`bottom-wrap-${!registering ? 'login' : 'register'}`")
#bottom-background #bottom-background
.seamless_mountains_demo_repeat .seamless_mountains_demo_repeat
.midground_foreground_extended2 .midground_foreground_extended2
@@ -104,7 +104,16 @@
@import '~client/assets/scss/colors.scss'; @import '~client/assets/scss/colors.scss';
@media only screen and (min-height: 1080px) { @media only screen and (min-height: 1080px) {
#bottom-wrap { .bottom-wrap-register {
margin-top: 6em;
position: fixed !important;
width: 100%;
bottom: 0;
}
}
@media only screen and (min-height: 862px) {
.bottom-wrap-login {
margin-top: 6em; margin-top: 6em;
position: fixed !important; position: fixed !important;
width: 100%; width: 100%;
@@ -116,7 +125,7 @@
background-color: $purple-200; background-color: $purple-200;
background: $purple-200; /* For browsers that do not support gradients */ background: $purple-200; /* For browsers that do not support gradients */
background: linear-gradient(to bottom, #4f2a93, #6133b4); /* Standard syntax */ background: linear-gradient(to bottom, #4f2a93, #6133b4); /* Standard syntax */
min-height: 100%; min-height: 100vh;
} }
::-webkit-input-placeholder { /* Chrome/Opera/Safari */ ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
@@ -249,7 +258,7 @@
} }
.toggle-link { .toggle-link {
color: #fff !important; color: $white !important;
} }
.forgot-password { .forgot-password {
@@ -367,16 +376,19 @@ export default {
passwordConfirm: this.passwordConfirm, passwordConfirm: this.passwordConfirm,
}); });
if (this.$store.state.afterLoginRedirect) { let redirectTo;
window.location.href = this.$store.state.afterLoginRedirect;
return; if (this.$route.query.redirectTo) {
redirectTo = this.$route.query.redirectTo;
} else {
redirectTo = '/';
} }
// @TODO do not reload entire page // @TODO do not reload entire page
// problem is that app.vue created hook should be called again // problem is that app.vue created hook should be called again
// after user is logged in / just signed up // after user is logged in / just signed up
// ALSO it's the only way to make sure language data is reloaded and correct for the logged in user // ALSO it's the only way to make sure language data is reloaded and correct for the logged in user
window.location.href = '/'; window.location.href = redirectTo;
}, },
async login () { async login () {
if (!this.username) { if (!this.username) {
@@ -390,16 +402,19 @@ export default {
password: this.password, password: this.password,
}); });
if (this.$store.state.afterLoginRedirect) { let redirectTo;
window.location.href = this.$store.state.afterLoginRedirect;
return; if (this.$route.query.redirectTo) {
redirectTo = this.$route.query.redirectTo;
} else {
redirectTo = '/';
} }
// @TODO do not reload entire page // @TODO do not reload entire page
// problem is that app.vue created hook should be called again // problem is that app.vue created hook should be called again
// after user is logged in / just signed up // after user is logged in / just signed up
// ALSO it's the only way to make sure language data is reloaded and correct for the logged in user // ALSO it's the only way to make sure language data is reloaded and correct for the logged in user
window.location.href = '/'; window.location.href = redirectTo;
}, },
async socialAuth (network) { async socialAuth (network) {
const url = window.location.href; const url = window.location.href;
@@ -414,10 +429,19 @@ export default {
auth, auth,
}); });
let redirectTo;
if (this.$route.query.redirectTo) {
redirectTo = this.$route.query.redirectTo;
} else {
redirectTo = '/';
}
// @TODO do not reload entire page // @TODO do not reload entire page
// problem is that app.vue created hook should be called again // problem is that app.vue created hook should be called again
// after user is logged in / just signed up // after user is logged in / just signed up
window.location.href = '/'; // ALSO it's the only way to make sure language data is reloaded and correct for the logged in user
window.location.href = redirectTo;
}, },
handleSubmit () { handleSubmit () {
if (this.registering) { if (this.registering) {

View File

@@ -44,8 +44,12 @@
methods: { methods: {
goToNewGroupPage () { goToNewGroupPage () {
if (!this.$store.state.isUserLoggedIn) { if (!this.$store.state.isUserLoggedIn) {
this.$store.state.afterLoginRedirect = '/group-plans'; this.$router.push({
this.$router.push('/register'); name: 'register',
query: {
redirectTo: '/group-plans',
},
});
return; return;
} }

View File

@@ -620,6 +620,7 @@
let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; let re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email); return re.test(email);
}, },
// @TODO this is totally duplicate from the registerLogin component
async register () { async register () {
if (this.password !== this.passwordConfirm) { if (this.password !== this.passwordConfirm) {
alert('Passwords must match'); alert('Passwords must match');
@@ -633,12 +634,15 @@
passwordConfirm: this.passwordConfirm, passwordConfirm: this.passwordConfirm,
}); });
if (this.$store.state.afterLoginRedirect) { let redirectTo;
window.location.href = this.$store.state.afterLoginRedirect;
return; if (this.$route.query.redirectTo) {
redirectTo = this.$route.query.redirectTo;
} else {
redirectTo = '/';
} }
window.location.href = '/'; window.location.href = redirectTo;
}, },
playButtonClick () { playButtonClick () {
Analytics.track({ Analytics.track({

View File

@@ -275,9 +275,26 @@ router.beforeEach(function routerGuard (to, from, next) {
if (!isUserLoggedIn && routeRequiresLogin) { if (!isUserLoggedIn && routeRequiresLogin) {
// Redirect to the login page unless the user is trying to reach the // Redirect to the login page unless the user is trying to reach the
// root of the website, in which case show the home page. // root of the website, in which case show the home page.
// TODO when redirecting to login if user login then redirect back to initial page // Pass the requested page as a query parameter to redirect later.
// so if you tried to go to /party you'll be redirected to /party after login/signup
return next({name: to.path === '/' ? 'home' : 'login'}); const redirectTo = to.path === '/' ? 'home' : 'login';
return next({
name: redirectTo,
query: redirectTo === 'login' ? {
redirectTo: to.path,
} : null,
});
}
// Keep the redirectTo query param when going from login to register
// !to.query.redirectTo is to avoid entering a loop of infinite redirects
if (to.name === 'register' && !to.query.redirectTo && from.name === 'login' && from.query.redirectTo) {
return next({
name: 'register',
query: {
redirectTo: from.query.redirectTo,
},
});
} }
if (isUserLoggedIn && (to.name === 'login' || to.name === 'register')) { if (isUserLoggedIn && (to.name === 'login' || to.name === 'register')) {

View File

@@ -129,7 +129,6 @@ export default function () {
upgradingGroup: {}, upgradingGroup: {},
notificationStore: [], notificationStore: [],
modalStack: [], modalStack: [],
afterLoginRedirect: '',
userIdToMessage: '', userIdToMessage: '',
}, },
}); });