From 7e7ec6b389414efec2d6ec954b8e19be3e14783a Mon Sep 17 00:00:00 2001 From: Henry Page <h.page@student.tudelft.nl> Date: Thu, 1 Sep 2022 15:25:01 +0200 Subject: [PATCH] Update student request view Some more updates to the student request view to support hybrid labs Signed-off-by: Henry Page <h.page@student.tudelft.nl> --- .../dto/view/requests/LabRequestViewDTO.java | 8 ++++++++ .../messages/RequestCreatedMessage.java | 18 ++++++++++++++---- .../view/components/lab-request-info.html | 10 +++++++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/nl/tudelft/queue/dto/view/requests/LabRequestViewDTO.java b/src/main/java/nl/tudelft/queue/dto/view/requests/LabRequestViewDTO.java index 29a18aff7..87a90f937 100644 --- a/src/main/java/nl/tudelft/queue/dto/view/requests/LabRequestViewDTO.java +++ b/src/main/java/nl/tudelft/queue/dto/view/requests/LabRequestViewDTO.java @@ -32,6 +32,7 @@ import nl.tudelft.queue.dto.view.RequestViewDTO; import nl.tudelft.queue.model.Feedback; import nl.tudelft.queue.model.LabRequest; import nl.tudelft.queue.model.TimeSlot; +import nl.tudelft.queue.model.enums.OnlineMode; import nl.tudelft.queue.model.enums.RequestType; import org.apache.commons.lang3.ArrayUtils; @@ -48,6 +49,7 @@ public class LabRequestViewDTO extends RequestViewDTO<LabRequest> { private String jitsiRoom; private TimeSlot timeSlot; + private OnlineMode onlineMode; private RequestType requestType; @@ -59,6 +61,10 @@ public class LabRequestViewDTO extends RequestViewDTO<LabRequest> { public void postApply() { super.postApply(); + if (onlineMode != null) { + setRoom(null); + } + assignment = getBean(AssignmentCacheManager.class).getOrThrow(data.getAssignment()); timeSlot = data.getTimeSlot(); } @@ -85,6 +91,7 @@ public class LabRequestViewDTO extends RequestViewDTO<LabRequest> { "Comment", "Question", "Time Slot", + "Online Mode", "Request Type", "Assignment"); } @@ -95,6 +102,7 @@ public class LabRequestViewDTO extends RequestViewDTO<LabRequest> { (comment != null) ? comment : "", (question != null) ? question : "", (timeSlot != null) ? timeSlot.toString() : "", + (onlineMode != null) ? onlineMode.getDisplayName() : "", requestType.displayName(), assignment.getName()); } diff --git a/src/main/java/nl/tudelft/queue/realtime/messages/RequestCreatedMessage.java b/src/main/java/nl/tudelft/queue/realtime/messages/RequestCreatedMessage.java index d5528af37..b59ee137e 100644 --- a/src/main/java/nl/tudelft/queue/realtime/messages/RequestCreatedMessage.java +++ b/src/main/java/nl/tudelft/queue/realtime/messages/RequestCreatedMessage.java @@ -21,6 +21,7 @@ import lombok.*; import nl.tudelft.librador.dto.view.View; import nl.tudelft.queue.dto.view.requests.LabRequestViewDTO; import nl.tudelft.queue.model.LabRequest; +import nl.tudelft.queue.model.enums.OnlineMode; import nl.tudelft.queue.model.enums.RequestStatus; import nl.tudelft.queue.model.enums.RequestType; @@ -46,6 +47,10 @@ public class RequestCreatedMessage extends View<LabRequest> implements Message { private Long buildingId; private String buildingName; + private OnlineMode onlineMode; + + private String onlineModeDisplayName; + private Long assignmentId; private String assignmentName; private Long moduleId; @@ -74,10 +79,15 @@ public class RequestCreatedMessage extends View<LabRequest> implements Message { requestedBy = view.requesterEntityName(); - roomId = view.getRoom().getId(); - roomName = view.getRoom().getName(); - buildingId = view.getRoom().getBuilding().getId(); - buildingName = view.getRoom().getBuilding().getName(); + if (view.getRoom() != null) { + roomId = view.getRoom().getId(); + roomName = view.getRoom().getName(); + buildingId = view.getRoom().getBuilding().getId(); + buildingName = view.getRoom().getBuilding().getName(); + } else if (view.getOnlineMode() != null) { + onlineMode = view.getOnlineMode(); + onlineModeDisplayName = view.getOnlineMode().getDisplayName(); + } assignmentId = view.getAssignment().getId(); assignmentName = view.getAssignment().getName(); diff --git a/src/main/resources/templates/request/view/components/lab-request-info.html b/src/main/resources/templates/request/view/components/lab-request-info.html index d9ceeb261..359a0a7d1 100644 --- a/src/main/resources/templates/request/view/components/lab-request-info.html +++ b/src/main/resources/templates/request/view/components/lab-request-info.html @@ -49,8 +49,11 @@ <dt>Assignment</dt> <dd th:text="${request.assignment.name}"></dd> - <dt>Room</dt> - <dd th:text="|${request.room.building.name} - ${request.room.name}|"></dd> + <th:block th:if="${request.room != null}"> + <dt>Room</dt> + <dd th:text="|${request.room.building.name} - ${request.room.name}|"></dd> + </th:block> + <dt>Type</dt> <dd th:text="${request.requestType.displayName()}"></dd> @@ -65,7 +68,8 @@ <dd th:text="${request.comment}"></dd> </th:block> - <th:block th:if="${request.getJitsiRoom() != null && @permissionService.canViewRequestJitsiRoom(request.id)}"> + <!--TODO This block needs to be changed to support other online modes --> + <th:block th:if="${request.getOnlineMode() == T(nl.tudelft.queue.model.enums.OnlineMode).JITSI && OnlineMode.request.getJitsiRoom() != null && @permissionService.canViewRequestJitsiRoom(request.id)}"> <dt>Link to Jitsi Room</dt> <dd> <a th:href="@{${@jitsiService.getJitsiRoomUrl(request.data)}}" th:target="_blank" -- GitLab