Profil part.2/?
All checks were successful
Build and test backend / Build-backend (pull_request) Successful in 2m4s
Build and test backend / Test-backend (pull_request) Successful in 2m4s
Build and test FrontEnd / Build-frontend (pull_request) Successful in 25s

This commit is contained in:
Wawilski 2024-03-16 17:01:26 +01:00
parent 36ce5a553b
commit 36fc33c3e9
3 changed files with 106 additions and 53 deletions

View File

@ -1,53 +1,39 @@
<script setup> <script setup>
import {reactive, ref } from 'vue' import {reactive, ref } from 'vue'
import {getSelf} from '../rest/Users.js' import {getSelf,alterSelf} from '../rest/Users.js'
import i18n from "@/i18n.js" import i18n from "@/i18n.js"
import { uploadProfilePicture } from '@/rest/uploads.js' import { uploadProfilePicture } from '@/rest/uploads.js'
const user = await getSelf(); const user = await getSelf();
console.log(user) console.log(user);
console.log(user.role)
console.log("test")
/*
Teacher user
const user =reactive({
profilPicture:"../assets/clyde.png",
lastName:"Ghost",
firstName:"Clyde",
role:"teacher",
address: "Radiator Springs",
email:"ClydeGhost@gmail.com",
coursesOwned:[
{
"id": 12,
"name": "Math pour l'info",
"faculty": "science",
"teacher": 42,
"Assistants": []},
{
"id": 42,
"name": "Fonctionnement des ordinateurs",
"credits": 11,
"faculty": "science",
"teacher": 42,
"Assistants": []},
],
faculty:"Science",
})*/
const modif = ref(false);
const curric = ref(false);
const unreg = ref(false);
const reg = ref(false);
const toModify = Object.assign({}, user);
function getPP(){ const modif = ref(false);
return user.profilePicture const curric = ref(false);
} const unreg = ref(false);
const reg = ref(false);
const toModify = {
profilPictureUrl:null,
email:null,
adress:null,
password:null,
};
function ChangeInfos(){
for (const [key, value] in Object.entries(toModify)){
if(value !== null){
alterSelf({key:value})
}
}
}
function getPP(){
return user.profilePictureUrl
}
</script> </script>
<template> <template>
<div class="body"> <div class="body">
<div class="container"> <div class="container">
@ -56,7 +42,7 @@ function getPP(){
</div> </div>
<div class="globalInfos"> <div class="globalInfos">
<div v-if="modif==false" class="infosContainer" > <div v-if="modif==false && curric==false && unreg==false && reg==false " class="infosContainer" >
<div> <div>
{{user.firstName}} {{user.lastName}} {{user.firstName}} {{user.lastName}}
</div> </div>
@ -75,12 +61,12 @@ function getPP(){
<div v-if="(user.role==='Student')"> <div v-if="(user.role==='Student')">
<button @click="reg=!reg">{{i18n("profile.reRegister")}}</button> <button @click="reg=!reg">{{i18n("profile.reRegister")}}</button>
<button @click="unreg=!unreg" style="float:right;background-color:rgb(150,0,0);">{{i18n("profile.unRegister")}}</button> <button @click="unreg=!unreg" style="float:right;background-color:rgb(150,0,0);">{{i18n("profile.unRegister")}}</button>
</div>
<div v-if="(user.role==='Student')">
<button @click="curric=!curric">{{i18n("profile.change.curriculum")}}</button> <button @click="curric=!curric">{{i18n("profile.change.curriculum")}}</button>
</div> </div>
</div> </div>
<div v-else class="infosContainer"> <div v-else-if="modif" class="infosContainer">
<div> <div>
{{i18n("profile.picture")}}: {{i18n("profile.picture")}}:
<input type="file" @change="user.profilPicture = uploadProfilePicture($event.target.files);" accept="image/*"> <input type="file" @change="user.profilPicture = uploadProfilePicture($event.target.files);" accept="image/*">
@ -102,17 +88,87 @@ function getPP(){
<input type="password" id="confirm"> <input type="password" id="confirm">
</div> </div>
<div> <div>
<button @click=" modif=!modif">{{i18n("courses.confirm")}}</button> <button @click=" modif=!modif; ChangeInfos();">{{i18n("courses.confirm")}}</button>
</div> </div>
</div> </div>
<div v-else-if="curric" class="infosContainer">
<div>
{{i18n("curriculum")}}:
<select v-model="curriculum">
<option v-for="item in currcula">{{item}}</option>
</select>
</div>
<div>
E-mail:
<input type="mail" v-model="mail">
</div>
<div>
{{i18n("login.password")}}:
<input type="password" v-model="assword">
</div>
<div>
{{i18n("login.cPassword")}}:
<input type="password" id="confirm">
</div>
<div>
<button @click=" curric=!curric;">{{i18n("courses.confirm")}}</button>
</div>
</div>
<div v-else-if="reg" class="infosContainer">
<div>
E-mail:
<input type="mail" v-model="toModify.email" />
</div>
<div>
{{i18n("profile.address")}}:
<input type="text" v-model="toModify.address">
</div>
<div>
{{i18n("login.password")}}:
<input type="password" v-model="toModify.password">
</div>
<div>
{{i18n("login.cPassword")}}:
<input type="password" id="confirm">
</div>
<div>
<button @click=" reg=!reg;">{{i18n("courses.confirm")}}</button>
</div>
</div>
<div v-else-if="unreg" class="infosContainer">
<div>
E-mail:
<input type="mail" v-model="toModify.email" />
</div>
<div>
{{i18n("profile.address")}}:
<input type="text" v-model="toModify.address">
</div>
<div>
{{i18n("login.password")}}:
<input type="password" v-model="toModify.password">
</div>
<div>
{{i18n("login.cPassword")}}:
<input type="password" id="confirm">
</div>
<div>
<button @click=" unreg=!unreg;">{{i18n("courses.confirm")}}</button>
</div>
</div>
</div> </div>
<div v-if="modif==false"class="moreInfos">
<div v-if="modif==false && curric==false && unreg==false && reg==false "class="moreInfos">
<div v-if="(user.role==='Student')"> <div v-if="(user.role==='Student')">
<div class="listTitle"> <div class="listTitle">
{{i18n("profile.course.list")}} {{i18n("profile.course.list")}}
</div> </div>
<div class="listElement " <div class="listElement "
v-for="item in user.curriculum"> v-for="item in user.curriculum">
<div class=" containerElement"> <div class=" containerElement">
<div class="name"> {{item.name}} </div> <div class="name"> {{item.name}} </div>
@ -133,10 +189,6 @@ function getPP(){
{{item.name}} {{item.name}}
</div> </div>
</div> </div>
<div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -4,7 +4,8 @@
import { reactive } from 'vue' import { reactive } from 'vue'
import { getAllUsers } from '../rest/Users.js' import { getAllUsers } from '../rest/Users.js'
const users = getAllUsers(); const users = await getAllUsers();
</script> </script>
<template> <template>
<div v-for="item in users"> <div v-for="item in users">

View File

@ -1,4 +1,4 @@
import { restGet, restPost } from './restConsumer.js' import { restGet, restPost, restPatch} from './restConsumer.js'
import { getCookie, setCookie } from '@/utils.js' import { getCookie, setCookie } from '@/utils.js'
export async function login(user, pass, exp){ export async function login(user, pass, exp){