diff --git a/website/client/assets/scss/modal.scss b/website/client/assets/scss/modal.scss
index e61bfccb30..64d9820818 100644
--- a/website/client/assets/scss/modal.scss
+++ b/website/client/assets/scss/modal.scss
@@ -11,6 +11,10 @@
}
}
+.modal {
+ z-index: 1350;
+}
+
.modal-dialog {
width: auto;
@@ -117,4 +121,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/website/client/components/auth/authForm.vue b/website/client/components/auth/authForm.vue
index 5c55c800cb..5f4854d78e 100644
--- a/website/client/components/auth/authForm.vue
+++ b/website/client/components/auth/authForm.vue
@@ -156,6 +156,10 @@ export default {
}
});
}, 500),
+ validateEmail (email) {
+ 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);
+ },
// @TODO: Abstract hello in to action or lib
async socialAuth (network) {
try {
diff --git a/website/client/components/auth/registerLoginReset.vue b/website/client/components/auth/registerLoginReset.vue
index ffaa3b6c93..88ea5b249d 100644
--- a/website/client/components/auth/registerLoginReset.vue
+++ b/website/client/components/auth/registerLoginReset.vue
@@ -415,6 +415,10 @@ export default {
}
});
}, 500),
+ validateEmail (email) {
+ 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);
+ },
async register () {
// @TODO do not use alert
if (!this.email) {
diff --git a/website/client/components/settings/verifyUsername.vue b/website/client/components/settings/verifyUsername.vue
index f15f322779..da3babcf85 100644
--- a/website/client/components/settings/verifyUsername.vue
+++ b/website/client/components/settings/verifyUsername.vue
@@ -206,6 +206,7 @@
await this.$store.dispatch('user:fetch', {forceLoad: true});
this.$root.$emit('habitica::resync-completed');
this.$root.$emit('bv::hide::modal', 'verify-username');
+ this.$router.go(0);
},
restoreEmptyDisplayName () {
if (this.temporaryDisplayName.length < 1) {
diff --git a/website/client/components/snackbars/notifications.vue b/website/client/components/snackbars/notifications.vue
index 22b0d78030..af44e65a39 100644
--- a/website/client/components/snackbars/notifications.vue
+++ b/website/client/components/snackbars/notifications.vue
@@ -9,7 +9,7 @@
position: fixed;
right: 10px;
width: 350px;
- z-index: 1070; // 1070 is above modal backgrounds
+ z-index: 1400; // 1400 is above modal backgrounds
&-top-pos {
&-normal {
diff --git a/website/client/components/yesterdailyModal.vue b/website/client/components/yesterdailyModal.vue
index 698b98c1ec..cff077257c 100644
--- a/website/client/components/yesterdailyModal.vue
+++ b/website/client/components/yesterdailyModal.vue
@@ -22,6 +22,17 @@
button.btn.btn-primary(@click='close()') {{ $t('yesterDailiesCallToAction') }}
+
+