manage Course finished
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| Before Width: | Height: | Size: 29 KiB | 
| @ -57,7 +57,6 @@ public class InscriptionController { | |||||||
|                                                                  @RequestHeader("Authorization") String token, |                                                                  @RequestHeader("Authorization") String token, | ||||||
|                                                                  @RequestBody RequestState state) |                                                                  @RequestBody RequestState state) | ||||||
|     { |     { | ||||||
|         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); | ||||||
|  |  | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ | |||||||
|  |  | ||||||
| <template>  | <template>  | ||||||
|   <div  v-for="item of requests_example"> |   <div  v-for="item of requests_example"> | ||||||
|   <div class="bodu"> |   <div class="bodu" v-if="item.state === 'Pending'"> | ||||||
|   <div class="container"> |   <div class="container"> | ||||||
|   |   | ||||||
|     <div class="id"><a>{{item.id}}</a></div> |     <div class="id"><a>{{item.id}}</a></div> | ||||||
| @ -18,7 +18,7 @@ | |||||||
|     <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(item.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(item.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> | ||||||
|  | |||||||
| @ -47,6 +47,9 @@ | |||||||
|     if (!isnull){ |     if (!isnull){ | ||||||
|        createCourse(toAdd.title,toAdd.credits,toAdd.owner); |        createCourse(toAdd.title,toAdd.credits,toAdd.owner); | ||||||
|        toAdd= Object.assign({},pattern); |        toAdd= Object.assign({},pattern); | ||||||
|  |        setTimeout(() => { | ||||||
|  |       window.location.reload(); | ||||||
|  |       }, "250"); | ||||||
|       }   |       }   | ||||||
|     } |     } | ||||||
|    |    | ||||||
| @ -64,22 +67,26 @@ | |||||||
|  |  | ||||||
|   function patchCourse(course){ |   function patchCourse(course){ | ||||||
|     for (let element in toModify){ |     for (let element in toModify){ | ||||||
|         console.log(course.credits) |         console.log(toModify,1) | ||||||
|  |         console.log(toModify[element],2) | ||||||
|        |        | ||||||
|         if (element =="owner" && (toModify[element] != course.owner.regNo)){ |         if (element =="owner" && (toModify[element].regNo != course.owner.regNo)){ | ||||||
|            alterCourse(course.courseId,{owner:toModify[element].regNo}); |            alterCourse(course.courseId,{owner:toModify[element].regNo}); | ||||||
|         } |         } | ||||||
|         else if(element == "title" && (toModify[element] != course.title)){ |         else if(element == "title" && (toModify[element] != course.title)){ | ||||||
|         alterCourse(course.courseId,{title:toModify[element]}); |         alterCourse(course.courseId,{title:toModify[element]}); | ||||||
|         } |         } | ||||||
|         else if(element == "credits" && (toModify[element] != course.credits)){ |         else if(element == "credits" && (parseInt(toModify[element]) != course.credits)){ | ||||||
|           alterCourse(course.courseId,{credits:toModify[element]}); |           alterCourse(course.courseId,{credits:parseInt(toModify[element])}); | ||||||
|         } |         } | ||||||
|         console.log(toModify[element]) |  | ||||||
|           |           | ||||||
|        |        | ||||||
|      |      | ||||||
|     }toModify = Object.assign({},pattern); |     }toModify = Object.assign({},pattern); | ||||||
|  |  | ||||||
|  |     setTimeout(() => { | ||||||
|  |       window.location.reload(); | ||||||
|  |       }, "500"); | ||||||
|   } |   } | ||||||
|   //Juste pour montrer le Delete Mode |   //Juste pour montrer le Delete Mode | ||||||
|   let toRemove; |   let toRemove; | ||||||
| @ -92,7 +99,7 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="body"> |   <div class="body"> | ||||||
|     <div v-if="!deleteMod && !createMod && (self.role !== 'Teacher')" class="listTitle buttonGrid"> |     <div v-if="!deleteMod && !createMod && (self.role !== 'Teacher')" class="listTitle buttonGrid"> | ||||||
|       <button class="create" @click="createMod = true"> |       <button class="create" @click="editElementID= '';createMod = true;"> | ||||||
|         {{i18n("courses.createCourse")}} |         {{i18n("courses.createCourse")}} | ||||||
|       </button> |       </button> | ||||||
|       <button class="delete" @click="deleteMod=true" > |       <button class="delete" @click="deleteMod=true" > | ||||||
| @ -108,7 +115,7 @@ | |||||||
|         <div style="margin-bottom:20px;"> |         <div style="margin-bottom:20px;"> | ||||||
|           {{i18n("Teacher")}} :  |           {{i18n("Teacher")}} :  | ||||||
|          <select style="max-width:200px;" class="teacher" v-model="toAdd.owner"> |          <select style="max-width:200px;" class="teacher" v-model="toAdd.owner"> | ||||||
|            <option v-for="item in profList">{{item}}</option> |            <option v-for="item in profList" :value="item">{{item.lastName}}</option> | ||||||
|         </select> |         </select> | ||||||
|         </div> |         </div> | ||||||
|         <div style="margin-bottom:20px;"> |         <div style="margin-bottom:20px;"> | ||||||
| @ -161,7 +168,7 @@ | |||||||
|       <div class="containerElement"v-else> |       <div class="containerElement"v-else> | ||||||
|         <input style="max-width:200px;" class="name" v-model="toModify.title"> |         <input style="max-width:200px;" class="name" v-model="toModify.title"> | ||||||
|         <select v-if="self.role === 'Secretary'" style="max-width:200px;" class="teacher" v-model="toModify.owner"> |         <select v-if="self.role === 'Secretary'" style="max-width:200px;" class="teacher" v-model="toModify.owner"> | ||||||
|           <option v-for="item in profList">{{item.lastName}}</option> |           <option v-for="(item,index) in profList" :value='item'>{{item.lastName}}</option> | ||||||
|         </select> |         </select> | ||||||
|         <div v-else class="teacher">{{item.owner.lastName}}</div>  |         <div v-else class="teacher">{{item.owner.lastName}}</div>  | ||||||
|         <input v-if="self.role==='Secretary'"style="max-width:100px;"class="credits" v-model="toModify.credits">   |         <input v-if="self.role==='Secretary'"style="max-width:100px;"class="credits" v-model="toModify.credits">   | ||||||
|  | |||||||
| @ -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,restPatchInfo} from './restConsumer.js' | import {restGet, restPatch} 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 | ||||||
|  | |||||||
| @ -7,8 +7,10 @@ import { restGet, restPost, restDelete, restPatch } from './restConsumer.js' | |||||||
| /** | /** | ||||||
|  * Create a new course |  * Create a new course | ||||||
|  */ |  */ | ||||||
| export async function createCourse(name, credits, teacher){ | export async function createCourse(name, credits, owner){ | ||||||
| 	return restPost("/course", {title: name, credits: credits, owner: teacher} ) |   console.log(owner); | ||||||
|  |    | ||||||
|  | 	return restPost("/course", {title: name, credits: credits, owner} ) | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  | |||||||
| @ -11,7 +11,6 @@ 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 }); | ||||||
| @ -25,10 +24,6 @@ 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 | ||||||
|  * |  * | ||||||
|  | |||||||