From 187a84c1c3e317a7e635b89f57d1f65cb7dc9d11 Mon Sep 17 00:00:00 2001 From: Farbod Zamani Date: Tue, 21 Feb 2023 10:29:11 +0000 Subject: CW-Canvas Block view button Closes #1877 Merge request studip/studip!1258 --- .../Courseware/UserDataFieldOfBlocksShow.php | 6 +- .../courseware/CoursewareCanvasBlock.vue | 126 +++++++++++++++++---- resources/vue/courseware-index-app.js | 3 +- .../vue/store/courseware/courseware.module.js | 10 ++ 4 files changed, 123 insertions(+), 22 deletions(-) diff --git a/lib/classes/JsonApi/Routes/Courseware/UserDataFieldOfBlocksShow.php b/lib/classes/JsonApi/Routes/Courseware/UserDataFieldOfBlocksShow.php index b4e41db..51b60c1 100644 --- a/lib/classes/JsonApi/Routes/Courseware/UserDataFieldOfBlocksShow.php +++ b/lib/classes/JsonApi/Routes/Courseware/UserDataFieldOfBlocksShow.php @@ -26,12 +26,16 @@ class UserDataFieldOfBlocksShow extends JsonApiController throw new RecordNotFoundException(); } // this is automatically scoped to the requesting user + // so we don't need to worry about the accessing the user data fields. $resource = UserDataField::getUserDataField($user = $this->getUser($request), $block); if (!Authority::canShowUserDataField($user, $resource)) { throw new AuthorizationFailedException(); } - return $this->getContentResponse($resource); + // however, as it is intended to list all user data fields of the block, we get it here and return it back. + $resources = UserDataField::findBySql('block_id = ?', [$block->id]); + + return $this->getContentResponse($resources); } } diff --git a/resources/vue/components/courseware/CoursewareCanvasBlock.vue b/resources/vue/components/courseware/CoursewareCanvasBlock.vue index 31c9258..3b4e72d 100644 --- a/resources/vue/components/courseware/CoursewareCanvasBlock.vue +++ b/resources/vue/components/courseware/CoursewareCanvasBlock.vue @@ -18,6 +18,7 @@ +