diff --git a/app/Http/Controllers/BuildController.php b/app/Http/Controllers/BuildController.php index 2f847826c9..a7befb8825 100644 --- a/app/Http/Controllers/BuildController.php +++ b/app/Http/Controllers/BuildController.php @@ -127,6 +127,16 @@ public function summary(int $build_id): View ]); } + public function comments(int $build_id): View + { + $this->setBuildById($build_id); + + return $this->vue('build-comments-page', 'Comments', [ + 'build-id' => $this->build->Id, + 'user-id' => Auth::id() ?? 0, + ]); + } + public function update(int $build_id): View { $this->setBuildById($build_id); diff --git a/app/cdash/tests/CMakeLists.txt b/app/cdash/tests/CMakeLists.txt index b4616aab97..98fee9613e 100644 --- a/app/cdash/tests/CMakeLists.txt +++ b/app/cdash/tests/CMakeLists.txt @@ -429,6 +429,8 @@ add_browser_test(/Browser/Pages/BuildDynamicAnalysisIdPageTest) add_browser_test(/Browser/Pages/BuildSummaryPageTest) +add_browser_test(/Browser/Pages/BuildCommentsPageTest) + add_browser_test(/Browser/Pages/BuildSidebarComponentTest) add_browser_test(/Browser/Pages/ProjectSettingsPageTest) diff --git a/resources/js/angular/views/partials/build.html b/resources/js/angular/views/partials/build.html index 619119553d..ed5b8dc1a9 100644 --- a/resources/js/angular/views/partials/build.html +++ b/resources/js/angular/views/partials/build.html @@ -91,7 +91,7 @@ + ng-href="builds/{{::build.id}}/comments"> diff --git a/resources/js/vue/app.js b/resources/js/vue/app.js index ef1038f4f9..83b9fe011c 100755 --- a/resources/js/vue/app.js +++ b/resources/js/vue/app.js @@ -29,6 +29,7 @@ const app = Vue.createApp({ BuildFilesPage: Vue.defineAsyncComponent(() => import('./components/BuildFilesPage.vue')), BuildTargetsPage: Vue.defineAsyncComponent(() => import('./components/BuildTargetsPage.vue')), BuildInstrumentationPage: Vue.defineAsyncComponent(() => import('./components/BuildInstrumentationPage.vue')), + BuildCommentsPage: Vue.defineAsyncComponent(() => import('./components/BuildCommentsPage.vue')), BuildBuildPage: Vue.defineAsyncComponent(() => import('./components/BuildBuildPage.vue')), CoverageFilePage: Vue.defineAsyncComponent(() => import('./components/CoverageFilePage.vue')), BuildCoveragePage: Vue.defineAsyncComponent(() => import('./components/BuildCoveragePage.vue')), diff --git a/resources/js/vue/components/BuildCommentsPage.vue b/resources/js/vue/components/BuildCommentsPage.vue new file mode 100644 index 0000000000..3e0d8d402c --- /dev/null +++ b/resources/js/vue/components/BuildCommentsPage.vue @@ -0,0 +1,213 @@ +