From 1805fc643eca432d5504556d24a071f8caaeea3d Mon Sep 17 00:00:00 2001 From: Ivymaster Date: Wed, 24 Jun 2026 17:59:55 +0200 Subject: [PATCH] add bug fixes and test issue fixes --- .../OperationalResourceToCalenderAPI.php | 4 ++-- .../factory/operationalResourceToCalender.js | 4 ++-- public/js/components/Tempus/Tempus.js | 19 ++++++++++--------- .../e2e/specs/ui/tempus/tempus.smoke.cy.js | 13 +++++++------ .../cypress/support/pages/tempus.po.js | 6 +++++- 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/application/controllers/api/frontend/v1/tempus/OperationalResourceToCalenderAPI.php b/application/controllers/api/frontend/v1/tempus/OperationalResourceToCalenderAPI.php index 15599ba34..376a0fedc 100644 --- a/application/controllers/api/frontend/v1/tempus/OperationalResourceToCalenderAPI.php +++ b/application/controllers/api/frontend/v1/tempus/OperationalResourceToCalenderAPI.php @@ -9,7 +9,7 @@ class OperationalResourceToCalenderAPI extends FHCAPI_Controller public function __construct() { parent::__construct([ - 'getAssignedResourcesByCalenderId' => ['admin:r', 'assistenz:r'], + 'getAssignedResourcesByCalender' => ['admin:r', 'assistenz:r'], 'storeResourcesToCalendarRelationship' => ['admin:w', 'assistenz:w'], 'getSchedulableResourcesByCalendar' => ['admin:r', 'assistenz:r'], ]); @@ -38,7 +38,7 @@ class OperationalResourceToCalenderAPI extends FHCAPI_Controller $this->terminateWithSuccess($this->getDataOrTerminateWithError($result)); } - public function getAssignedResourcesByCalenderId($calenderID) + public function getAssignedResourcesByCalender($calenderID) { if (!isset($calenderID)) $this->terminateWithError("Missing required parameter 'kalender_id'"); diff --git a/public/js/api/factory/operationalResourceToCalender.js b/public/js/api/factory/operationalResourceToCalender.js index 9d4df6388..618ab9e68 100644 --- a/public/js/api/factory/operationalResourceToCalender.js +++ b/public/js/api/factory/operationalResourceToCalender.js @@ -22,10 +22,10 @@ export default { url: "/api/frontend/v1/tempus/OperationalResourceToCalenderAPI/getSchedulableResourcesByCalendar/" + calendarID, }; }, - getAssignedResourcesByCalenderId(calenderID) { + getAssignedResourcesByCalender(calenderID) { return { method: "get", - url: "/api/frontend/v1/tempus/OperationalResourceToCalenderAPI/getAssignedResourcesByCalenderId/" + calenderID, + url: "/api/frontend/v1/tempus/OperationalResourceToCalenderAPI/getAssignedResourcesByCalender/" + calenderID, }; }, storeResourcesToCalendarRelationship(calenderID, assignedResources) { diff --git a/public/js/components/Tempus/Tempus.js b/public/js/components/Tempus/Tempus.js index ec68b4cca..029203d34 100644 --- a/public/js/components/Tempus/Tempus.js +++ b/public/js/components/Tempus/Tempus.js @@ -401,25 +401,26 @@ export default { if (hasLektoren) filter.uid = this.lecturers.map((l) => l.uid); let response = null; - if (this.previewRole === "lektor") + if (this.previewRole === "lektor") { response = [ this.$api.call( ApiKalender.getPlanLecturer(start.toISODate(), end.toISODate()), ), ]; - - if (this.previewRole === "student") + } else if (this.previewRole === "student") { response = [ this.$api.call( ApiKalender.getPlanStudent(start.toISODate(), end.toISODate()), ), ]; + } else { + response = [ + this.$api.call( + ApiKalender.getPlan(filter, start.toISODate(), end.toISODate()), + ), + ]; + } - response = [ - this.$api.call( - ApiKalender.getPlan(filter, start.toISODate(), end.toISODate()), - ), - ]; if (response) { response[0].then((result) => { @@ -781,7 +782,7 @@ export default { }, async fetchAssignedResourcesByCalender(calenderId) { let getAssignedResources = await this.$api.call( - ApiOperationalResourceToCalender.getAssignedResourcesByCalenderId( + ApiOperationalResourceToCalender.getAssignedResourcesByCalender( calenderId, ), ); diff --git a/tests/cypress/cypress/e2e/specs/ui/tempus/tempus.smoke.cy.js b/tests/cypress/cypress/e2e/specs/ui/tempus/tempus.smoke.cy.js index 59d34abe8..4da45a1d1 100644 --- a/tests/cypress/cypress/e2e/specs/ui/tempus/tempus.smoke.cy.js +++ b/tests/cypress/cypress/e2e/specs/ui/tempus/tempus.smoke.cy.js @@ -51,7 +51,7 @@ context("Tempus smoke tests", () => { .should("have.length.greaterThan", 0); tempusPage.getCalendarEventsWithLehreinheit().first().rightclick(); - tempusPage.getEventContextMenuOption("Raumauswahl").click(); + tempusPage.getEventContextMenuOption("Raumauswahl").click({ force: true }); waitForOk("@fetchRoomSuggestions"); tempusPage.getRaumauswahlModal().should("be.visible"); @@ -60,12 +60,13 @@ context("Tempus smoke tests", () => { it("shows resources modal when selecting Ressourcen zuordnen from event context menu", () => { tempusPage.waitForCalendarToFinishLoading(); tempusPage - .getCalendarEventsWithLehreinheit() + .getCalendarEventsByWeekdayAndStartTime("Sunday", "17:50:00") .should("have.length.greaterThan", 0); - tempusPage.getCalendarEventsWithLehreinheit().first().rightclick(); - tempusPage.getEventContextMenuOption("Ressourcen zuordnen").click(); - waitForOk("@fetchResourceSuggestions"); + tempusPage.getCalendarEventsByWeekdayAndStartTime("Sunday", "17:50:00").first().rightclick(); + tempusPage.getEventContextMenuOption("Ressourcen zuordnen").click({ force: true }); + waitForOk("@fetchResourcesSuggestions"); + waitForOk("@fetchAssignedResources"); tempusPage.getResourcesModal().should("be.visible"); }); @@ -75,7 +76,7 @@ context("Tempus smoke tests", () => { tempusPage.getCalendarEvents().should("have.length.greaterThan", 0); tempusPage.getCalendarEvents().first().rightclick(); - tempusPage.getEventContextMenuOption("History").click(); + tempusPage.getEventContextMenuOption("History").click({ force: true }); waitForOk("@fetchEventHistory"); tempusPage.getHistoryModal().should("be.visible"); diff --git a/tests/cypress/cypress/support/pages/tempus.po.js b/tests/cypress/cypress/support/pages/tempus.po.js index 37050f39a..bc01d0acd 100644 --- a/tests/cypress/cypress/support/pages/tempus.po.js +++ b/tests/cypress/cypress/support/pages/tempus.po.js @@ -66,8 +66,12 @@ class TempusPage { }).as("fetchRoomSuggestions"); cy.intercept({ method: "GET", - url: "**/betriebsmittel/OperationalResourceToCalenderAPI/getSchedulableResourcesByCalendar/32", + url: "**/tempus/OperationalResourceToCalenderAPI/getSchedulableResourcesByCalendar/**", }).as("fetchResourcesSuggestions"); + cy.intercept({ + method: "GET", + url: "**/tempus/OperationalResourceToCalenderAPI/getAssignedResourcesByCalender/**", + }).as("fetchAssignedResources"); cy.intercept({ method: "GET", url: "**/tempus/coursepicker/getByStg**",