trop de truc
This commit is contained in:
@ -2,11 +2,17 @@
|
||||
import i18n from "@/i18n.js"
|
||||
import {ref} from 'vue'
|
||||
import { getCourses,deleteCourse,alterCourse,createCourse } from "@/rest/courses.js"
|
||||
import { getTeachers } from "@/rest/Users.js"
|
||||
import {getSelf, getTeachers } from "@/rest/Users.js"
|
||||
|
||||
|
||||
const self = await getSelf();
|
||||
|
||||
const curriculum = await getCourses()
|
||||
let curriculum = await getCourses(self.role);
|
||||
|
||||
const profList = getTeachers()
|
||||
const profList = await getTeachers();
|
||||
|
||||
console.log(curriculum)
|
||||
console.log(profList)
|
||||
|
||||
const createMod = ref(false)
|
||||
const deleteMod = ref(false)
|
||||
@ -18,30 +24,63 @@
|
||||
}
|
||||
|
||||
//Juste pour montrer le Create Mode
|
||||
|
||||
const pattern = {
|
||||
"name": null,
|
||||
"credits": null,
|
||||
"faculty": null,
|
||||
"teacher": null,
|
||||
"Assistants": []}
|
||||
|
||||
"title":null,
|
||||
"credits":null,
|
||||
"owner":null,
|
||||
}
|
||||
|
||||
let toModify = Object.assign({},pattern);
|
||||
let toAdd = Object.assign({}, pattern);
|
||||
|
||||
function addToCourse(){
|
||||
if (curriculum.length>0){
|
||||
let isnull= false;
|
||||
for(const [key, value] of Object.entries(toAdd)){
|
||||
if(value === null){
|
||||
isnull=true;
|
||||
}
|
||||
let isnull= false;
|
||||
|
||||
for(const [key, value] of Object.entries(toAdd)){
|
||||
console.log(toAdd.owner);
|
||||
if(value === null){
|
||||
isnull=true;
|
||||
}
|
||||
if (!isnull){
|
||||
createCourse(toAdd.name,toAdd.credits,toAdd.faculty,toAdd.teacher,toAdd.Assistants);
|
||||
}
|
||||
toAdd= Object.assign({},pattern);
|
||||
|
||||
}
|
||||
if (!isnull){
|
||||
createCourse(toAdd.title,toAdd.credits,toAdd.owner);
|
||||
toAdd= Object.assign({},pattern);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setModify(item){
|
||||
for(const el in profList){
|
||||
|
||||
if(profList[el].regNo === item.owner.regNo){
|
||||
toModify.owner= profList[el];
|
||||
}
|
||||
}
|
||||
toModify.credits= item.credits;
|
||||
toModify.title= item.title;
|
||||
}
|
||||
|
||||
|
||||
function patchCourse(course){
|
||||
for (let element in toModify){
|
||||
console.log(course.credits)
|
||||
|
||||
if (element =="owner" && (toModify[element] != course.owner.regNo)){
|
||||
alterCourse(course.courseId,{owner:toModify[element].regNo});
|
||||
}
|
||||
else if(element == "title" && (toModify[element] != course.title)){
|
||||
alterCourse(course.courseId,{title:toModify[element]});
|
||||
}
|
||||
else if(element == "credits" && (toModify[element] != course.credits)){
|
||||
alterCourse(course.courseId,{credits:toModify[element]});
|
||||
}
|
||||
console.log(toModify[element])
|
||||
|
||||
|
||||
|
||||
}toModify = Object.assign({},pattern);
|
||||
}
|
||||
//Juste pour montrer le Delete Mode
|
||||
let toRemove;
|
||||
|
||||
@ -52,7 +91,7 @@
|
||||
</script>
|
||||
<template>
|
||||
<div class="body">
|
||||
<div v-if="!deleteMod && !createMod" class="listTitle buttonGrid">
|
||||
<div v-if="!deleteMod && !createMod && (self.role !== 'Teacher')" class="listTitle buttonGrid">
|
||||
<button class="create" @click="createMod = true">
|
||||
{{i18n("courses.createCourse")}}
|
||||
</button>
|
||||
@ -64,22 +103,18 @@
|
||||
<form class="listElement">
|
||||
<div style="margin-bottom:20px;">
|
||||
{{i18n("name")}} :
|
||||
<input v-model="toAdd.name">
|
||||
<input v-model="toAdd.title">
|
||||
</div>
|
||||
<div style="margin-bottom:20px;">
|
||||
{{i18n("teacher")}} :
|
||||
<select style="max-width:200px;" class="teacher" v-model="toAdd.teacher">
|
||||
<option v-for="item in profList">{{item}}</option>
|
||||
{{i18n("Teacher")}} :
|
||||
<select style="max-width:200px;" class="teacher" v-model="toAdd.owner">
|
||||
<option v-for="item in profList">{{item.regNo}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="margin-bottom:20px;">
|
||||
{{i18n("credits")}} :
|
||||
{{i18n("Credits")}} :
|
||||
<input v-model="toAdd.credits">
|
||||
</div>
|
||||
<div style="margin-bottom:20px;">
|
||||
{{i18n("faculty")}} :
|
||||
<input v-model="toAdd.faculty">
|
||||
</div>
|
||||
<button class="create" @click="createMod=!createMod; addToCourse();"> {{i18n("courses.confirm")}} </button>
|
||||
<button style="float:right;" @click="createMod=!createMod">{{i18n("courses.back")}}</button>
|
||||
</form>
|
||||
@ -89,7 +124,7 @@
|
||||
<div style="margin-bottom:20px;">
|
||||
{{i18n("courses.toDelete")}} :
|
||||
<select style="max-width:200px;" class="teacher" v-model="toRemove">
|
||||
<option v-for="item in curriculum">{{item.name}}</option>
|
||||
<option v-for="item in curriculum">{{item.title}}</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
@ -106,26 +141,31 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div v-if="!createMod && !deleteMod" v-for="item in curriculum" :key="item.name">
|
||||
<div style ="padding:15px 15px 15px 15px;">
|
||||
<button v-if="editElementID !== item.name" @click="editElementID = item.name">
|
||||
<div v-if="!createMod && !deleteMod" v-for="item in curriculum" :key="item.title">
|
||||
<div v-if="editElementID !== item.title" style ="padding:15px 15px 15px 15px;">
|
||||
<button @click="editElementID = item.title; setModify(item); ">
|
||||
{{i18n("courses.modify")}}
|
||||
</button>
|
||||
<button v-else @click="editElementID= ''"> {{i18n("courses.confirm")}} </button>
|
||||
</button>
|
||||
</div>
|
||||
<div v-else>
|
||||
<button @click="editElementID= '';patchCourse(item)"> {{i18n("courses.confirm")}} </button>
|
||||
<button @click="editElementID= '';"> {{i18n("courses.back")}} </button>
|
||||
</div>
|
||||
<div class="listElement" >
|
||||
<div class="containerElement" v-if="editElementID !== item.name" >
|
||||
<div class="containerElement" v-if="editElementID !== item.title" >
|
||||
|
||||
<div class="name"> {{item.name}} </div>
|
||||
<div class="teacher">{{item.teacher}}</div>
|
||||
<div class="credits">{{i18n("credits")}}:{{item.credits}}</div>
|
||||
<div class="name"> {{item.title}} </div>
|
||||
<div class="teacher">{{item.owner.lastName}}</div>
|
||||
<div class="credits">{{i18n("Credits")}}:{{item.credits}}</div>
|
||||
</div>
|
||||
<div class="containerElement"v-else>
|
||||
<input style="max-width:200px;" class="name" v-model="item.name">
|
||||
<select style="max-width:200px;" class="teacher" v-model="item.teacher">
|
||||
<option v-for="item in profList">{{item}}</option>
|
||||
<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">
|
||||
<option v-for="item in profList">{{item.lastName}}</option>
|
||||
</select>
|
||||
<input style="max-width:100px;"class="credits" v-model="item.credits">
|
||||
<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">
|
||||
<div v-else class="credits">{{i18n("Credits")}}:{{item.credits}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,8 +7,8 @@ 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} )
|
||||
export async function createCourse(name, credits, teacher){
|
||||
return restPost("/course", {name: name, credits: credits, owner: teacher} )
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,10 +45,14 @@ export async function getCourse(id){
|
||||
* - teacher
|
||||
* - Assistants
|
||||
*/
|
||||
export async function getCourses(){
|
||||
return restGet("/course")
|
||||
export async function getCourses(role){
|
||||
if(role==="Teacher"){
|
||||
return restGet("/courses/owned")
|
||||
}
|
||||
return restGet("/courses")
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Change the options of a course
|
||||
*
|
||||
|
Reference in New Issue
Block a user