From acded872266e08a697d455aa4f49a786d2a38146 Mon Sep 17 00:00:00 2001 From: Annabel Dunstone Gray Date: Tue, 26 Sep 2023 11:58:32 -0600 Subject: [PATCH] Move notifications and todos to buttons at top of page Changelog: changed --- .../components/sticky_header.vue | 27 ++++++++++++++----- .../notes/components/discussion_counter.vue | 7 ++++- .../sidebar_subscriptions_widget.vue | 18 ++++++++++++- .../todo_toggle/sidebar_todo_widget.vue | 16 ++++++++++- .../components/mr_more_dropdown.vue | 12 +++++++-- .../projects/merge_requests_controller.rb | 1 + app/helpers/merge_requests_helper.rb | 4 +++ .../projects/merge_requests/_page.html.haml | 6 ++++- .../notifications_todos_buttons.yml | 8 ++++++ .../user_manages_subscription_spec.rb | 17 ++++++++++++ 10 files changed, 104 insertions(+), 12 deletions(-) create mode 100644 config/feature_flags/development/notifications_todos_buttons.yml diff --git a/app/assets/javascripts/merge_requests/components/sticky_header.vue b/app/assets/javascripts/merge_requests/components/sticky_header.vue index c1e88a901c4caf..24ac67a09643e3 100644 --- a/app/assets/javascripts/merge_requests/components/sticky_header.vue +++ b/app/assets/javascripts/merge_requests/components/sticky_header.vue @@ -11,6 +11,7 @@ import StatusBadge from '~/issuable/components/status_badge.vue'; import { TYPE_MERGE_REQUEST } from '~/issues/constants'; import DiscussionCounter from '~/notes/components/discussion_counter.vue'; import TodoWidget from '~/sidebar/components/todo_toggle/sidebar_todo_widget.vue'; +import SubscriptionsWidget from '~/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue'; import ClipboardButton from '~/vue_shared/components/clipboard_button.vue'; import titleSubscription from '../queries/title.subscription.graphql'; @@ -46,6 +47,7 @@ export default { DiscussionCounter, StatusBadge, TodoWidget, + SubscriptionsWidget, ClipboardButton, }, directives: { @@ -80,6 +82,9 @@ export default { isSignedIn() { return isLoggedIn(); }, + isNotificationsTodosButtons() { + return this.glFeatures.notificationsTodosButtons; + }, }, watch: { discussionTabCounter(val) { @@ -189,13 +194,23 @@ export default {
- + :class="{ 'gl-display-flex gl-gap-3': isNotificationsTodosButtons }" + > + + +
diff --git a/app/assets/javascripts/notes/components/discussion_counter.vue b/app/assets/javascripts/notes/components/discussion_counter.vue index d8883f90edac56..9404fd04bc914d 100644 --- a/app/assets/javascripts/notes/components/discussion_counter.vue +++ b/app/assets/javascripts/notes/components/discussion_counter.vue @@ -71,6 +71,9 @@ export default { return options; }, + isNotificationsTodosButtons() { + return this.glFeatures.notificationsTodosButtons; + }, }, methods: { ...mapActions(['setExpandDiscussions']), @@ -92,10 +95,12 @@ export default { class="gl-display-flex discussions-counter" >
diff --git a/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue b/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue index 568962cddc7fe1..54b9ad90b62419 100644 --- a/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue +++ b/app/assets/javascripts/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue @@ -1,5 +1,6 @@ - +