Merge branch 'master' into wal/frontend/Register
This commit is contained in:
commit
0ca5640564
@ -1,22 +1,27 @@
|
||||
<script setup>
|
||||
import { login , register} from './rest/Users.js'
|
||||
import { ref } from 'vue'
|
||||
import i18n from './i18n.js'
|
||||
const login= ref(true)
|
||||
const loginPage= ref(true)
|
||||
const page = ref(0)
|
||||
|
||||
const emailID=ref("")
|
||||
const passwordIN=ref("")
|
||||
|
||||
|
||||
const submitValue= ref(i18n("login.guest.submit"))
|
||||
const surname=ref("")
|
||||
const firstname=ref("")
|
||||
const passwordOUT=ref("")
|
||||
const passwordConfirm=ref("")
|
||||
const birthday=ref("")
|
||||
const emailOUT=ref("")
|
||||
const address=ref("")
|
||||
const country=ref("")
|
||||
const cursus=ref("")
|
||||
const loginInfos = [{_emailID:emailID},{_passwordIN:passwordIN}]
|
||||
const registerInfos= [{_surname:surname},{_firstname:firstname},{_passwordOUT:passwordOUT},{_passwordConfirm:passwordConfirm},{_emailOUT:emailOUT},{_address:address},{_country:country},{_cursus:cursus}]
|
||||
const registerInfos= [{_surname:surname},{_firstname:firstname},{_birthday:birthday},{_passwordOUT:passwordOUT},
|
||||
{_passwordConfirm:passwordConfirm},{_emailOUT:emailOUT},{_address:address},{_country:country},{_cursus:cursus}]
|
||||
|
||||
</script>
|
||||
|
||||
@ -30,32 +35,34 @@
|
||||
</div>
|
||||
<div class="logBoxCenterer">
|
||||
<div class='loginBox'>
|
||||
|
||||
<div v-if="login">
|
||||
<div class="form">
|
||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif;">{{i18n("login.guest.signin")}}</h1>
|
||||
<div class="inputBox">
|
||||
<p>ID / {{i18n("login.guest.email")}}</p>
|
||||
<input type="text" v-model="emailID">
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<p>{{i18n("login.guest.password")}}</p>
|
||||
<input type="password" v-model="passwordIN">
|
||||
</div>
|
||||
<div class="register">
|
||||
<a @click="login=!login">{{i18n("login.guest.register")}}</a>
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<button @click="console.log(inputs)">{{i18n("login.guest.submit")}}</button>
|
||||
|
||||
</div>
|
||||
<div v-if="loginPage">
|
||||
<form @submit.prevent="login(emailID, passwordIN)"class="form">
|
||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif;">
|
||||
{{i18n("login.guest.signin")}}
|
||||
</h1>
|
||||
<div class="inputBox">
|
||||
<p>ID / {{i18n("login.guest.email")}}</p>
|
||||
<input type="text" v-model="emailID">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else>
|
||||
<div class="form">
|
||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;">{{i18n("login.guest.welcome")}}</h1>
|
||||
<div class="inputBox">
|
||||
<p>{{i18n("login.guest.password")}}</p>
|
||||
<input type="password" v-model="passwordIN">
|
||||
</div>
|
||||
<div class="register">
|
||||
<a @click="loginPage=!loginPage">{{i18n("login.guest.register")}}</a>
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<input type="submit" v-model="submitValue">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div v-else>
|
||||
<form @submit.prevent="register(surname,firstname,emailOUT)" class="form">
|
||||
<h1 style="color:rgb(239,60,168); font-family: sans-serif; text-align:center;">
|
||||
{{i18n("login.guest.welcome")}}
|
||||
</h1>
|
||||
<div v-if="page === 0">
|
||||
<div class="inputBox">
|
||||
<p>{{i18n("login.guest.surname")}}</p>
|
||||
@ -65,6 +72,10 @@
|
||||
<p>{{i18n("login.guest.firstname")}}</p>
|
||||
<input type="text" v-model="firstname">
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<p>BIRTHDAY</p>
|
||||
<input type="date" v-model="birthday">
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<p>{{i18n("login.guest.password")}}</p>
|
||||
<input type="password" v-model="passwordOUT">
|
||||
@ -78,7 +89,7 @@
|
||||
<button @click="page++">{{i18n("login.guest.nextpage")}}</button>
|
||||
|
||||
</div>
|
||||
<div @click="(login=!login) && (page=0)" class="register">
|
||||
<div @click="(loginPage=!loginPage) && (page=0)" class="register">
|
||||
<a>{{i18n("login.guest.alregister")}}</a>
|
||||
</div>
|
||||
</div>
|
||||
@ -96,7 +107,7 @@
|
||||
<input type="text" v-model="country">
|
||||
</div>
|
||||
<div class="inputBox">
|
||||
<p>Cursus</p>
|
||||
<p>CURSUS</p>
|
||||
<select v-model="cursus">
|
||||
<option value="Chemistry">Chemistry</option>
|
||||
<option value="Psycho">Psychology</option>
|
||||
@ -109,14 +120,14 @@
|
||||
<div class="switchpage">
|
||||
<button @click="page--">{{i18n("login.guest.lastpage")}}</button>
|
||||
</div>
|
||||
<div @click="(login=!login) && (page=0)" class="register">
|
||||
<div @click="(loginPage=!loginPage) && (page=0)" class="register">
|
||||
<a>{{i18n("login.guest.alregister")}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
@ -214,7 +225,7 @@
|
||||
|
||||
}
|
||||
|
||||
button,select{
|
||||
input[type=submit],button,select{
|
||||
margin-bottom:20px;
|
||||
background-color: rgb(239,60,168);
|
||||
cursor: pointer;
|
||||
@ -231,4 +242,5 @@ button:active ,.switchpage:active{
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
|
@ -9,7 +9,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
import { getCookie } from './utils.js';
|
||||
import { getCookie, setCookie } from './utils.js';
|
||||
|
||||
const default_lang = "EN";
|
||||
let langs;
|
||||
@ -34,10 +34,6 @@ export default function i18n(key, options) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
//
|
||||
// Those functions are utility functions use by previous exported functions.
|
||||
//
|
||||
|
||||
/**
|
||||
* Function that load the file with translation from the specified lang and return a dictionnary
|
||||
* @param select the language to load. could be null to fetch the cookies for an answer
|
||||
@ -61,3 +57,8 @@ export async function loadLangs(lang){
|
||||
langs = filteredLines;
|
||||
}
|
||||
await loadLangs();
|
||||
|
||||
export async function setLang(lang){
|
||||
setCookie("lang", lang);
|
||||
await loadLangs();
|
||||
}
|
||||
|
28
frontend/src/rest/Users.js
Normal file
28
frontend/src/rest/Users.js
Normal file
@ -0,0 +1,28 @@
|
||||
import { restGet, restPost } from './restConsumer.js'
|
||||
|
||||
export async function login(user, pass, exp){
|
||||
return restPost("/login", {login: user, password: pass, expiration: exp});
|
||||
}
|
||||
|
||||
export async function register(user, pass, mail){
|
||||
return restPost("/user", {name: user, password: pass, mail: mail});
|
||||
restPost("/login", {login: user, password: pass, expiration: exp})
|
||||
}
|
||||
|
||||
/**
|
||||
* get informations on a specific user.
|
||||
* Leaving the id empty will return the user's value based on his token
|
||||
* if the user is not authenticated. then an empty array should be returned
|
||||
*/
|
||||
export async function getUser(id){
|
||||
const endpoint = "/user" + id != null ? "/" + id : "";
|
||||
return restGet(endpoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reserved for secretary roles. Allow to list all user on the plateform
|
||||
*/
|
||||
export async function getAllUsers(){
|
||||
return restGet("/users");
|
||||
}
|
||||
|
52
frontend/src/rest/courses.js
Normal file
52
frontend/src/rest/courses.js
Normal file
@ -0,0 +1,52 @@
|
||||
/**
|
||||
* Courses API
|
||||
*/
|
||||
|
||||
import { restGet, restPost, restDelete, restPatch } from './restConsumer.js'
|
||||
|
||||
/**
|
||||
* Create a new course
|
||||
*/
|
||||
export async function createCourse(name, credits, faculty, teacher, assistants){
|
||||
return restPost("/courses", {name: name, credits: credits, faculty: faculty, teacher: teacher, assistants: assistants} )
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the specified course
|
||||
*/
|
||||
export async function deleteCourse(id){
|
||||
return restDelete("/course/" + id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get informations on a particular course
|
||||
*
|
||||
* @param id identification of the course
|
||||
*
|
||||
* @return all atribute of the specified course
|
||||
* - name
|
||||
* - credits
|
||||
* - faculty
|
||||
* - teacher
|
||||
* - assistants : list
|
||||
*/
|
||||
export async function getCourse(id){
|
||||
return restGet("/course/" + id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the options of a course
|
||||
*
|
||||
* @param id the id of the course
|
||||
* @param changes Object with value to changes
|
||||
*
|
||||
* The changes object can contain:
|
||||
* - name
|
||||
* - credits
|
||||
* - faculty
|
||||
* - teacher
|
||||
* - assistants: should be a list and will replace all assistants
|
||||
*/
|
||||
export async function alterCourse(id, changes){
|
||||
return restPatch("/course/" + id, changes);
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
* Return the content of a cookie with specified key
|
||||
* @param key cookie name
|
||||
*/
|
||||
function getCookie(key){
|
||||
export function getCookie(key){
|
||||
key = key + "="
|
||||
let cookies = decodeURIComponent(document.cookie).split(";");
|
||||
for (let el of cookies) {
|
||||
@ -14,4 +14,12 @@ function getCookie(key){
|
||||
return "";
|
||||
}
|
||||
|
||||
export {getCookie};
|
||||
/**
|
||||
* Return the content of a cookie with specified key
|
||||
* @param key cookie name
|
||||
*/
|
||||
export function setCookie(key, value){
|
||||
cookie = key + "=" + value + ";";
|
||||
document.cookie = cookie;
|
||||
// Here we can apreciate the stupidity of Javascript :/
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user