user module + translations
This commit is contained in:
@@ -1,16 +1,20 @@
|
||||
<template>
|
||||
<v-app-bar color="blue" scroll-behavior="elevate" scroll-threshold="20">
|
||||
<!-- <v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon> -->
|
||||
<v-app-bar-title>ProNature Playground</v-app-bar-title>
|
||||
<v-btn to="/manage" icon="mdi-wrench-cog-outline" v-if="roles.editor"></v-btn>
|
||||
<v-dialog max-width="400">
|
||||
<v-app-bar-title>{{ l.playground }}</v-app-bar-title>
|
||||
<v-btn to="/manage" icon="mdi-wrench-cog-outline" v-if="roles.editor" v-tooltip="l.workshop"></v-btn>
|
||||
<v-dialog max-width="480">
|
||||
<template v-slot:activator="{ props }">
|
||||
<v-btn icon="mdi-account" variant="text" v-bind="props"></v-btn>
|
||||
</template>
|
||||
<v-card class="pa-3" :title="user? 'Profile' : 'Sign in' ">
|
||||
<Auth v-if="!user"></Auth>
|
||||
<Profile v-else></Profile>
|
||||
</v-card>
|
||||
<template v-slot:default="{ isActive }">
|
||||
<v-card class="pa-3" :title="user? l.profile : l.signin ">
|
||||
<v-card-text>
|
||||
<Profile v-if="user"></Profile>
|
||||
<Auth v-show="!user" @login-success="isActive.value = false"></Auth>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</template>
|
||||
</v-dialog >
|
||||
</v-app-bar>
|
||||
</template>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<v-app-bar color="primary" scroll-behavior="elevate" scroll-threshold="20">
|
||||
<!-- <v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon> -->
|
||||
<v-app-bar-title>ProNature Games Workshop</v-app-bar-title>
|
||||
<v-btn to="/" icon="mdi-seesaw" v-tooltip="'To playground'"></v-btn>
|
||||
<v-app-bar-title>{{ l.workshop }}</v-app-bar-title>
|
||||
<v-btn to="/" icon="mdi-seesaw" v-tooltip="l.playground"></v-btn>
|
||||
<v-menu>
|
||||
<template v-slot:activator="{ props }">
|
||||
<v-btn icon="mdi-plus" variant="text" v-bind="props"></v-btn>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<v-form>
|
||||
<v-text-field label="Email" v-model="form.email" type="email" required></v-text-field>
|
||||
<v-text-field label="Password" v-model="form.password" type="password" required></v-text-field>
|
||||
<v-text-field :label="l.email" v-model="form.email" type="email" required></v-text-field>
|
||||
<v-text-field :label="l.password" v-model="form.password" type="password" required></v-text-field>
|
||||
<template v-if="mode==='register'">
|
||||
<v-text-field label="Confirm Password" v-model="form.passConfirm" type="password" required></v-text-field>
|
||||
<v-text-field :label="l.passwordRetype" v-model="form.passConfirm" type="password" required></v-text-field>
|
||||
<v-img :src="`/api/user/captcha?${captchaIter}`" class="my-2" height="100px"></v-img>
|
||||
<v-text-field label="Enter Captcha" v-model="form.captcha" required></v-text-field>
|
||||
<v-text-field :label="l.confirmCaptcha" v-model="form.captcha" required></v-text-field>
|
||||
</template>
|
||||
<v-btn @click="login" :color="mode==='login' ? 'green' : 'grey'">Sign in</v-btn>
|
||||
<v-btn @click="register" :color="mode==='register' ? 'green' : 'grey'" class="float-right">Sign up</v-btn>
|
||||
<v-btn @click="login" :color="mode==='login' ? 'green' : 'grey'">{{l.signin}}</v-btn>
|
||||
<v-btn @click="register" :color="mode==='register' ? 'green' : 'grey'" class="float-right">{{l.signup}}</v-btn>
|
||||
</v-form>
|
||||
</template>
|
||||
|
||||
@@ -30,8 +30,13 @@ export default {
|
||||
// Implement login logic here
|
||||
if (this.mode == 'login') {
|
||||
// Perform login
|
||||
await this.$api.user.signin(this.form);
|
||||
await this.loadUser();
|
||||
let response = await this.$api.user.signin(this.form);
|
||||
if(response.data?.status === 'OK') {
|
||||
await this.loadUser();
|
||||
this.$emit('login-success');
|
||||
} else {
|
||||
this.toast(this.getErrorText(response.data), 'red');
|
||||
}
|
||||
} else {
|
||||
this.mode = 'login';
|
||||
}
|
||||
@@ -39,8 +44,13 @@ export default {
|
||||
async register() {
|
||||
if (this.mode == 'register') {
|
||||
// Implement registration logic here
|
||||
await this.$api.user.signup(this.form);
|
||||
await this.loadUser();
|
||||
let response = await this.$api.user.signup(this.form);
|
||||
if(response.data?.status === 'OK') {
|
||||
this.toast(this.l.signupSuccess, 'green');
|
||||
await this.loadUser();
|
||||
} else {
|
||||
this.toast(this.getErrorText(response.data), 'red');
|
||||
}
|
||||
} else {
|
||||
this.mode = 'register';
|
||||
}
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<template>
|
||||
<v-form>
|
||||
<v-text-field label="Email" disabled v-model="user.email" type="email" required></v-text-field>
|
||||
<v-text-field label="Change Password" v-model="form.password" type="password" required></v-text-field>
|
||||
<v-text-field label="Confirm Password" v-model="form.passConfirm" type="password" required></v-text-field>
|
||||
<v-btn @click="update" color="green">Update Profile</v-btn>
|
||||
<v-btn @click="signout" color="grey" class="float-right">Sign out</v-btn>
|
||||
<v-text-field :label="l.email" disabled v-model="user.email" type="email" required></v-text-field>
|
||||
<v-text-field :label="l.passwordChange" v-model="form.password" type="password" required></v-text-field>
|
||||
<v-text-field :label="l.passwordRetype" v-model="form.passConfirm" type="password" required></v-text-field>
|
||||
<v-btn @click="update" color="green">{{ l.update }}</v-btn>
|
||||
<v-btn @click="signout" color="grey" class="float-right">{{ l.signout }}</v-btn>
|
||||
</v-form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -24,7 +25,12 @@ export default {
|
||||
await this.loadUser();
|
||||
},
|
||||
async update() {
|
||||
await this.$api.user.update({...this.form, _id: this.user._id});
|
||||
let response = await this.$api.user.update({...this.form, _id: this.user._id});
|
||||
if(response.data.status === 'OK') {
|
||||
this.toast('Profile updated successfully', 'green');
|
||||
} else {
|
||||
this.toast(this.getErrorText(response.data), 'red');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user