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