diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonRequestsController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonRequestsController.java index ab2e72f..e3ba2bb 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonRequestsController.java +++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/LessonRequestsController.java @@ -108,6 +108,8 @@ public class LessonRequestsController { else{ lessonRequestServ.modifyDeleteRequest(lessonRequest, state); + lessonRequest.setState(state); + } lessonRequestServ.save(lessonRequest); return new ResponseEntity<>(HttpStatus.OK); diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/LessonChangesRequestRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/LessonChangesRequestRepository.java index 208591e..9e8f3a4 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Repositories/LessonChangesRequestRepository.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/LessonChangesRequestRepository.java @@ -7,8 +7,11 @@ import ovh.herisson.Clyde.Tables.User; public interface LessonChangesRequestRepository extends CrudRepository { LessonChangesRequest findById(long id); - + @Query("select lr from LessonChangesRequest lr where lr.user = ?1") Iterable findOwnRequests(User user); + + @Query("select lr from LessonChangesRequest lr where lr.lessonId = ?1") + Iterable findRequestByLessonId(long id); } diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/LessonRequestService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/LessonRequestService.java index 63802fb..8d16615 100644 --- a/backend/src/main/java/ovh/herisson/Clyde/Services/LessonRequestService.java +++ b/backend/src/main/java/ovh/herisson/Clyde/Services/LessonRequestService.java @@ -74,6 +74,17 @@ public class LessonRequestService { return true; } + public Iterable findRequestByLessonId(long id){ + return lessonChangesRepo.findRequestByLessonId(id); + } + + public void refuseAllByLessonId(long id){ + Iterable toRefuse = findRequestByLessonId(id); + for(LessonChangesRequest element : toRefuse) + element.setState(RequestState.Refused); + + } + public boolean modifyChangeRequestState(Map updates, long lessonId,RequestState state){ if(state == RequestState.Accepted){ @@ -87,7 +98,8 @@ public class LessonRequestService { public void modifyDeleteRequest(LessonChangesRequest lessonChangesRequest, RequestState state){ if(state == RequestState.Accepted){ lessonServ.delete(lessonServ.findById(lessonChangesRequest.getLessonId())); - lessonChangesRequest.setState(state);} + refuseAllByLessonId(lessonChangesRequest.getLessonId()); + } } public LessonChangesRequest createLessonRequest(Map lessonInfos) { diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 83f753b..62e1291 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -234,6 +234,7 @@ window.addEventListener('hashchange', () => { .text { right: 0%; width: 0%; + visibility: collapse; opacity: 0; color: white; font-size: 1.2em; @@ -242,7 +243,8 @@ window.addEventListener('hashchange', () => { } ul.vertical:hover .text { - opacity: 1; + opacity:1; + visibility:visible; width: 60%; transition-duration: .3s; padding-left: 15px; diff --git a/frontend/src/Apps/LessonRequests.vue b/frontend/src/Apps/LessonRequests.vue index 9540e89..867ad7f 100644 --- a/frontend/src/Apps/LessonRequests.vue +++ b/frontend/src/Apps/LessonRequests.vue @@ -4,6 +4,7 @@ import i18n from "@/i18n.js" import {ref} from 'vue' import {changeRequestState, getAllRequests} from "@/rest/LessonRequests.js"; import {getLesson} from "@/rest/lessonSchedule.js"; +import {getCourse} from "@/rest/courses.js" import {formatDate, getHoursMinutes} from "@/scheduleFunctions.js"; const requests = ref(await getAllRequests()); @@ -22,7 +23,8 @@ async function upPage(id,review){ async function AcceptSetup(id,type){ if(type !== 2 ){ - AcceptMod.value = !AcceptMod.value; + editElementID.value = id + AcceptMod.value = true; } else{ await upPage(id,{local: null,state:'Accepted'}); @@ -34,21 +36,26 @@ function editItem(item){ } async function setMoreInfos(item){ + + moreInfos.value = Object.assign({},{}) moreInfos.value["requestType"] = requestTypes[item.requestType] - moreInfos.value["day"] = formatDate(new Date(item.lessonStart)) - moreInfos.value["start"] = getHoursMinutes(new Date(item.lessonStart)); - moreInfos.value["end"] = getHoursMinutes(new Date(item.lessonEnd)); + if(item.requestType == 0 || item.requestType == 1){ + moreInfos.value["day"] = item.lessonStart == null ? null : formatDate(new Date(item.lessonStart)) + moreInfos.value["start"] = item.lessonStart == null ? null : getHoursMinutes(new Date(item.lessonStart)) + moreInfos.value["end"] = item.lessonEnd == null ? null : getHoursMinutes(new Date(item.lessonEnd)) moreInfos.value["lessonType"] = item.lessonType; - [item["course"] == null ? moreInfos.value["course"] = null: moreInfos.value["course"]=item.course.title] + moreInfos.value["course"] = item["course"] == null ? null:item.course.title} if (item.requestType==1 || item.requestType == 2){ - let temp = await getLesson(item.lessonId); - if(item.requestType == 1){ + let temp = await getLesson(item.lessonId); + if(item.requestType == 1 || item.requestType == 2){ moreInfos.value["course"] = temp.course.title; - moreInfos.value["old_day"] = formatDate(new Date(temp.lessonStart)); - moreInfos.value["old_start"] = getHoursMinutes(new Date(temp.lessonStart)); - moreInfos.value["old_end"] = getHoursMinutes(new Date(temp.lessonEnd)); - moreInfos.value["old_type"] = temp.lessonType; + moreInfos.value[item.requestType == 2 ? "day" : "old_day"] = formatDate(new Date(temp.lessonStart)); + moreInfos.value[item.requestType == 2 ? "start" : "old_start"] = getHoursMinutes(new Date(temp.lessonStart)); + moreInfos.value[item.requestType == 2 ? "end":"old_end"] = getHoursMinutes(new Date(temp.lessonEnd)); + moreInfos.value[item.requestType == 2 ? "lessonType":"old_type"] = temp.lessonType; }} + editElementID.value = item.id ; + moreInfosMod.value =true; } @@ -59,8 +66,7 @@ async function setMoreInfos(item){
- - +
{{requestTypes[item.requestType]}}
@@ -68,20 +74,20 @@ async function setMoreInfos(item){
{{item.user.lastName}}
-
-
+
-
+
Local: - +
-
diff --git a/frontend/src/Apps/ManageOwnLessons.vue b/frontend/src/Apps/ManageOwnLessons.vue index 2f52e86..47ec534 100644 --- a/frontend/src/Apps/ManageOwnLessons.vue +++ b/frontend/src/Apps/ManageOwnLessons.vue @@ -1,7 +1,7 @@