Skip to content
Snippets Groups Projects
Commit 2d90ad6a authored by Gilgard's avatar Gilgard
Browse files

Merge branch 'main' into user-profile-view

parents 88e40928 77863299
No related branches found
No related tags found
1 merge request!13User profile view
Pipeline #175358 passed
<!--suppress HtmlDeprecatedAttribute -->
<template> <template>
<div> <div>
<v-col align="center" justify="space-around"> <v-col align="center" justify="space-around" class="mt-16">
<v-img <v-img
max-width="45%" max-width="45%"
:src="require('../assets/logo3.svg')" :src="require('../assets/logo3.svg')"
...@@ -12,8 +13,8 @@ ...@@ -12,8 +13,8 @@
<v-col> <v-col>
<v-text-field <v-text-field
v-model="user.email" v-model="user.email"
:rules="emailRules" :rules="[rules.email]"
label="E-mail" label="Epost"
required required
></v-text-field> ></v-text-field>
</v-col> </v-col>
...@@ -25,7 +26,7 @@ ...@@ -25,7 +26,7 @@
:rules="[rules.required, rules.min]" :rules="[rules.required, rules.min]"
:type="showPassword ? 'text' : 'password'" :type="showPassword ? 'text' : 'password'"
name="input-10-1" name="input-10-1"
label="Password" label="Passord"
counter counter
@click:append="showPassword = !showPassword" @click:append="showPassword = !showPassword"
></v-text-field> ></v-text-field>
...@@ -75,19 +76,17 @@ export default { ...@@ -75,19 +76,17 @@ export default {
showPassword: false, showPassword: false,
valid: true, valid: true,
emailRules: [
(v) => !!v || "E-mail is required",
(v) => /.+@.+\..+/.test(v) || "E-mail must be valid",
],
rules: { rules: {
required: (value) => !!value || "Required.", required: (value) => !!value || "Feltet er påkrevd",
min: (v) => v.length >= 8 || "Min 8 characters", min: (v) => v.length >= 8 || "Minimum 8 tegn",
email: (v) => /.+@.+\..+/.test(v) || "Epost adressen må være gyldig",
}, },
}; };
}, },
methods: { methods: {
async loginClicked() { async loginClicked() {
console.log(this.user.email + " " + this.user.password);
const loginRequest = { const loginRequest = {
email: this.user.email, email: this.user.email,
password: this.user.password, password: this.user.password,
...@@ -95,7 +94,7 @@ export default { ...@@ -95,7 +94,7 @@ export default {
const loginResponse = await doLogin(loginRequest); const loginResponse = await doLogin(loginRequest);
if (loginResponse === "Failed login") { if (loginResponse === "Failed login") {
this.message = "kunne ikke logge inn"; this.message = "Feil brukernavn/passord";
this.$store.commit("logout"); this.$store.commit("logout");
return; return;
} }
......
<template>
<div>
<v-col align="center" justify="space-around" class="mt-16">
<v-img
max-width="45%"
:src="require('../assets/logo3.svg')"
align="center"
/>
</v-col>
<v-form ref="form" v-model="valid" lazy-validation class="mt-8">
<v-text-field
v-model="user.password"
:rules="[rules.required, rules.min]"
:type="'password'"
name="input-10-1"
label="Passord"
counter
></v-text-field>
<v-text-field
v-model="user.rePassword"
:rules="[rules.required, rules.min, rules.passwordConfirmation]"
:type="'password'"
name="input-10-1"
label="Confirm Password"
counter
></v-text-field>
<v-col justify="space-around" align="center">
<v-btn
:disabled="!valid"
color="success"
class="mb-4 mt-4"
width="50%"
height="40px"
@click="setNewPassword"
>
Endre passord
</v-btn>
</v-col>
</v-form>
</div>
</template>
<script>
export default {
name: "NewPasswordForm.vue",
data() {
return {
user: {
password: "",
rePassword: "",
},
valid: true,
rules: {
required: (value) => !!value || "Feltet er påkrevd",
min: (v) => v.length >= 8 || "Minimum 8 tegn",
passwordConfirmation: (v) =>
v === this.user.password || "Passordene må være like",
},
};
},
methods: {
async setNewPassword() {},
validate() {
this.$refs.form.validate();
},
},
};
</script>
...@@ -3,8 +3,5 @@ import App from "./App.vue"; ...@@ -3,8 +3,5 @@ import App from "./App.vue";
import router from "./router"; import router from "./router";
import store from "./store"; import store from "./store";
import "./index.css"; import "./index.css";
//import { loadFonts } from "webfontloader";
//loadFonts();
createApp(App).use(router).use(store).mount("#app"); createApp(App).use(router).use(store).mount("#app");
...@@ -2,6 +2,7 @@ import store from "@/store"; ...@@ -2,6 +2,7 @@ import store from "@/store";
import { createRouter, createWebHistory } from "vue-router"; import { createRouter, createWebHistory } from "vue-router";
import HomeView from "../views/HomeView.vue"; import HomeView from "../views/HomeView.vue";
import LoginView from "../views/LoginView.vue"; import LoginView from "../views/LoginView.vue";
import NewPasswordView from "../views/NewPasswordView";
const routes = [ const routes = [
{ {
...@@ -36,6 +37,11 @@ const routes = [ ...@@ -36,6 +37,11 @@ const routes = [
name: "login", name: "login",
component: LoginView, component: LoginView,
}, },
{
path: "/newPassword",
name: "newPassword",
component: NewPasswordView,
},
]; ];
const router = createRouter({ const router = createRouter({
......
<template>
<div class="newPasswordPage">
<NewPasswordForm></NewPasswordForm>
</div>
</template>
<script>
import NewPasswordForm from "@/components/NewPasswordForm";
export default {
name: "NewPasswordView.vue",
components: {
NewPasswordForm,
},
};
</script>
<style scoped>
.newPasswordPage {
background-color: white;
height: 100%;
overflow: auto;
}
</style>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment