Link back and front all get #115

Merged
tonitch merged 40 commits from wal/front/listingUsers into master 2024-03-18 20:20:37 +01:00
13 changed files with 42 additions and 33 deletions
Showing only changes of commit 753af3874e - Show all commits

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -63,7 +63,7 @@ public class InscriptionController {
@RequestHeader("Authorization") String token, @RequestHeader("Authorization") String token,
@RequestBody RequestState requestState) @RequestBody RequestState requestState)
{ {
System.out.println(requestState);
if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token)) if (authServ.isNotIn(new Role[]{Role.InscriptionService,Role.Admin},token))
return new UnauthorizedResponse<>(null); return new UnauthorizedResponse<>(null);

View File

@ -1,6 +1,5 @@
<script setup> <script setup>
import i18n from "@/i18n.js" import i18n from "@/i18n.js"
import Req from "./Request.vue"
import {validateRegister, getAllRegisters } from '@/rest/ServiceInscription.js' import {validateRegister, getAllRegisters } from '@/rest/ServiceInscription.js'
const requests_example = await getAllRegisters(); const requests_example = await getAllRegisters();
@ -18,8 +17,8 @@
<div class="surname"><a>{{item.lastName}}</a></div> <div class="surname"><a>{{item.lastName}}</a></div>
<div class="firstname"><a>{{item.firstName}}</a></div> <div class="firstname"><a>{{item.firstName}}</a></div>
<div class="infos"><button style="background-color:rgb(105,05,105);" >{{i18n("request.moreInfos")}}</button></div> <div class="infos"><button style="background-color:rgb(105,05,105);" >{{i18n("request.moreInfos")}}</button></div>
<div class="accept"><button @click="validateRegister(id,Accepted)" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div> <div class="accept"><button @click="validateRegister(item.id,'Accepted')" style="background-color:rgb(0,105,50);">{{i18n("request.accept")}}</button></div>
<div class="refuse"><button @click="validateRegister(id,Refused)" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div> <div class="refuse"><button @click="validateRegister(item.id,Refused)" style="background-color:rgb(105,0,0);">{{i18n("request.refuse")}}</button></div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,5 +1,5 @@
<script setup> <script setup>
import { ref } from 'vue' import {reactive, ref } from 'vue'
import i18n from '@/i18n.js' import i18n from '@/i18n.js'
import { login , register , disconnect, isLogged} from '@/rest/Users.js' import { login , register , disconnect, isLogged} from '@/rest/Users.js'
import { getAllCurriculums } from '@/rest/curriculum.js' import { getAllCurriculums } from '@/rest/curriculum.js'
@ -10,17 +10,20 @@
const loginPage= ref(true) const loginPage= ref(true)
const page = ref(0) const page = ref(0)
const outputs = reactive({
surname:null,
firstname:null,
password:null,
birthday:null,
email:null,
address:null,
country:null,
curriculum:null,
})
const submitValue= ref(i18n("login.guest.submit")) const submitValue= ref(i18n("login.guest.submit"))
const surname=ref("")
const firstname=ref("")
const password=ref("")
const passwordConfirm=ref("") const passwordConfirm=ref("")
const birthday=ref("")
const email=ref("")
const address=ref("")
const country=ref("")
let curriculum;
const imageSaved = ref(false) const imageSaved = ref(false)
const ppData = ref(false) const ppData = ref(false)
@ -32,8 +35,9 @@
window.location.href="#/home"; window.location.href="#/home";
}, "500"); }, "500");
} }
function verifyInputs(){ function verifyInputs(pass){
if(password.value==passwordConfirm.value){ console.log(pass)
if(pass==passwordConfirm.value){
page.value++; page.value++;
return toast('Password and Confirm Password are correct.', { return toast('Password and Confirm Password are correct.', {
@ -56,17 +60,17 @@
<div class='loginBox'> <div class='loginBox'>
<div v-if="loginPage"> <div v-if="loginPage">
<form @submit.prevent=" login(email,password);goBackHome();"class="form"> <form @submit.prevent=" login(outputs.email,outputs.password);goBackHome();"class="form">
<h1 style="color:rgb(239,60,168); font-family: sans-serif;"> <h1 style="color:rgb(239,60,168); font-family: sans-serif;">
{{i18n("login.guest.signin")}} {{i18n("login.guest.signin")}}
</h1> </h1>
<div class="inputBox"> <div class="inputBox">
<p>ID / {{i18n("login.guest.email")}}</p> <p>ID / {{i18n("login.guest.email")}}</p>
<input type="text" v-model="email"> <input type="text" v-model="outputs.email">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.password")}}</p> <p>{{i18n("login.guest.password")}}</p>
<input type="password" v-model="password"> <input type="password" v-model="outputs.password">
</div> </div>
<div class="register"> <div class="register">
<a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a> <a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a>
@ -85,19 +89,19 @@
<div v-if="page === 0"> <div v-if="page === 0">
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.surname")}}</p> <p>{{i18n("login.guest.surname")}}</p>
<input type="text" v-model="surname"> <input type="text" v-model="outputs.surname">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.firstname")}}</p> <p>{{i18n("login.guest.firstname")}}</p>
<input type="text" v-model="firstname"> <input type="text" v-model="outputs.firstname">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.birthday")}}</p> <p>{{i18n("login.guest.birthday")}}</p>
<input type="date" v-model="birthday"> <input type="date" v-model="outputs.birthday">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.password")}}</p> <p>{{i18n("login.guest.password")}}</p>
<input type="password" v-model="password"> <input type="password" v-model="outputs.password">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.confirm")}} {{i18n("login.guest.password")}}</p> <p>{{i18n("login.guest.confirm")}} {{i18n("login.guest.password")}}</p>
@ -105,7 +109,7 @@
</div> </div>
<div class="switchpage"> <div class="switchpage">
<button @click="verifyInputs();">{{i18n("login.guest.nextpage")}}</button> <button @click="verifyInputs(outputs.password);">{{i18n("login.guest.nextpage")}}</button>
</div> </div>
<div @click="(loginPage=!loginPage) && (page=0)" class="register"> <div @click="(loginPage=!loginPage) && (page=0)" class="register">
@ -115,15 +119,15 @@
<div v-else> <div v-else>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.email")}}</p> <p>{{i18n("login.guest.email")}}</p>
<input type="mail" v-model="email"> <input type="mail" v-model="outputs.email">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.address")}}</p> <p>{{i18n("login.guest.address")}}</p>
<input type="text" v-model="address"> <input type="text" v-model="outputs.address">
</div> </div>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("login.guest.country")}}</p> <p>{{i18n("login.guest.country")}}</p>
<input type="text" v-model="country"> <input type="text" v-model="outputs.country">
</div> </div>
<form novalidate enctype="multipart/form-data" class="inputBox"> <form novalidate enctype="multipart/form-data" class="inputBox">
<p>{{i18n("profile.picture").toUpperCase()}}</p> <p>{{i18n("profile.picture").toUpperCase()}}</p>
@ -131,13 +135,13 @@
</form> </form>
<div class="inputBox"> <div class="inputBox">
<p>{{i18n("Curriculum").toUpperCase()}}</p> <p>{{i18n("Curriculum").toUpperCase()}}</p>
<select v-model="curriculum"> <select v-model="outputs.curriculum">
<option v-for="item in curricula">{{item.curriculumId}}</option> <option v-for="item in curricula">{{item.curriculumId}}</option>
</select> </select>
</div> </div>
<div style="align-self:center;" class="inputBox"> <div style="align-self:center;" class="inputBox">
<button style="margin-top:25px;" @click="console.log(curriculum);register(firstname, surname, birthday, password, mail, address, country, curriculum);"> <button style="margin-top:25px;" @click="console.log(outputs);register(outputs.firstname, outputs.surname, outputs.birthday, outputs.password, outputs.email, outputs.address, outputs.country, outputs.curriculum, ppData);">
{{i18n("login.guest.submit")}} {{i18n("login.guest.submit")}}
</button> </button>
</div> </div>

View File

@ -3,7 +3,7 @@
* *
* TODO: On time of writing, the backend doesn't support these endpoints so it could be modified in the future. * TODO: On time of writing, the backend doesn't support these endpoints so it could be modified in the future.
*/ */
import {restGet, restPatch} from './restConsumer.js' import {restGet, restPatch,restPatchInfo} from './restConsumer.js'
/** /**
* create a new register requests that can be recovered by the registering service * create a new register requests that can be recovered by the registering service
@ -41,5 +41,5 @@ export async function getAllRegisters(){
* Change the state of a requests. * Change the state of a requests.
*/ */
export async function validateRegister(id, state){ export async function validateRegister(id, state){
return restPatch("/request/register/" + id, {state: state}); return restPatch("/request/register/" + id, state);
} }

View File

@ -28,14 +28,15 @@ export function disconnect(){
*/ */
export async function register(firstname, lastname, birthDate, password, email, address, country, curriculumId, imageId){ export async function register(firstname, lastname, birthDate, password, email, address, country, curriculumId, imageId){
return restPost("/register", { return restPost("/register", {
firstname: firstname, firstName: firstname,
lastname: lastname, lastName: lastname,
birthDate: birthDate, birthDate: birthDate,
password: password, password: password,
email: email, email: email,
address: address, address: address,
country: country, country: country,
curriculumId: curriculumId curriculumId: curriculumId,
profilePictureUrl: imageId,
}); });
} }

View File

@ -11,6 +11,7 @@ export async function restPost(endPoint, data) {
return await _rest(endPoint, {method: "POST", credentials: 'include', body: JSON.stringify(data)}); return await _rest(endPoint, {method: "POST", credentials: 'include', body: JSON.stringify(data)});
} }
export async function restPostFile(endPoint, file){ export async function restPostFile(endPoint, file){
let headers = new Headers(); let headers = new Headers();
return await _rest(endPoint, {method: "POST", credentials: 'include', body: file, headers: headers }); return await _rest(endPoint, {method: "POST", credentials: 'include', body: file, headers: headers });
@ -24,6 +25,10 @@ export async function restPatch(endPoint, data) {
return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: JSON.stringify(data)}); return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: JSON.stringify(data)});
} }
export async function restPatchInfo(endPoint, data){
return await _rest(endPoint, {method: "PATCH", credentials: 'include', body: data});
}
/** /**
* backbone for the request made by the frontend * backbone for the request made by the frontend
* *