From 5b066f14bb45d1c5d4b10c7d8dc102f6488f4e2d Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Mon, 22 Jun 2026 10:40:03 +0200 Subject: [PATCH 1/2] fix(assignments): Fix link to assignment results in notifications Signed-off-by: Marcel Klehr --- lib/Notification/Notifier.php | 6 +++--- src/components/AssistantTextProcessingForm.vue | 6 +++++- src/components/ChattyLLM/ChattyLLMInputForm.vue | 11 +++++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/Notification/Notifier.php b/lib/Notification/Notifier.php index e5116ffa..592bb825 100644 --- a/lib/Notification/Notifier.php +++ b/lib/Notification/Notifier.php @@ -350,7 +350,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId']])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment'); @@ -375,7 +375,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId']])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment result'); @@ -400,7 +400,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId']])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment result'); diff --git a/src/components/AssistantTextProcessingForm.vue b/src/components/AssistantTextProcessingForm.vue index 18ae18a8..c3006e8b 100644 --- a/src/components/AssistantTextProcessingForm.vue +++ b/src/components/AssistantTextProcessingForm.vue @@ -331,11 +331,15 @@ export default { 'background-notify', ], data() { + const urlIsAssignment = new URLSearchParams(window.location.search).get('isAssignment') + const urlSelectedTaskTypeId = urlIsAssignment != null && urlIsAssignment !== '0' && urlIsAssignment !== 'false' + ? 'assignments' + : null return { myInputs: this.inputs, myOutputs: this.outputs, taskTypes: [], - mySelectedTaskTypeId: this.selectedTaskTypeId || CHAT_TASK_TYPE_ID, + mySelectedTaskTypeId: urlSelectedTaskTypeId || this.selectedTaskTypeId || CHAT_TASK_TYPE_ID, loadingTaskTypes: false, historyLoading: false, showAdvanced: false, diff --git a/src/components/ChattyLLM/ChattyLLMInputForm.vue b/src/components/ChattyLLM/ChattyLLMInputForm.vue index d407e703..074fe849 100644 --- a/src/components/ChattyLLM/ChattyLLMInputForm.vue +++ b/src/components/ChattyLLM/ChattyLLMInputForm.vue @@ -481,8 +481,15 @@ export default { } }, - mounted() { - this.fetchSessions() + async mounted() { + await this.fetchSessions() + const urlSessionId = parseInt(new URLSearchParams(window.location.search).get('sessionId'), 10) + if (Number.isFinite(urlSessionId)) { + const session = this.sessions?.find(s => s.id === urlSessionId) + if (session) { + this.onSessionSelect(session) + } + } }, methods: { From 2e535c97149e05dba7de2cfe01c633f86ebccc25 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Tue, 23 Jun 2026 11:02:45 +0200 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Julien Veyssier Signed-off-by: Marcel Klehr --- lib/Notification/Notifier.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Notification/Notifier.php b/lib/Notification/Notifier.php index 592bb825..c9fa8635 100644 --- a/lib/Notification/Notifier.php +++ b/lib/Notification/Notifier.php @@ -350,7 +350,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignment' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment'); @@ -375,7 +375,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignment' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment result'); @@ -400,7 +400,7 @@ public function prepare(INotification $notification, string $languageCode): INot ->setParsedSubject($subject) ->setParsedMessage($message) // TODO: link directly to assignment - ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignmnet' => 'true'])) + ->setLink($this->url->linkToRouteAbsolute(Application::APP_ID . '.assistant.getAssistantStandalonePage', ['sessionId' => $params['sessionId'], 'isAssignment' => 'true'])) ->setIcon($iconUrl); $actionLabel = $l->t('View assignment result');