diff --git a/app/assets/javascripts/attention_requests/components/navigation_popover.vue b/app/assets/javascripts/attention_requests/components/navigation_popover.vue
deleted file mode 100644
index 804eda8f321..00000000000
--- a/app/assets/javascripts/attention_requests/components/navigation_popover.vue
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ content }}
-
-
-
-
-
- {{ __('Got it!') }}
-
- {{ __('Learn more') }}
-
-
-
-
-
diff --git a/app/assets/javascripts/attention_requests/index.js b/app/assets/javascripts/attention_requests/index.js
deleted file mode 100644
index 2a142ab46e5..00000000000
--- a/app/assets/javascripts/attention_requests/index.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import Vue from 'vue';
-import VueApollo from 'vue-apollo';
-import { __ } from '~/locale';
-import createDefaultClient from '~/lib/graphql';
-import NavigationPopover from './components/navigation_popover.vue';
-
-Vue.use(VueApollo);
-
-const apolloProvider = new VueApollo({
- defaultClient: createDefaultClient(),
-});
-
-export const initTopNavPopover = () => {
- const el = document.getElementById('js-need-attention-nav-onboarding');
-
- if (!el) return;
-
- // eslint-disable-next-line no-new
- new Vue({
- el,
- apolloProvider,
- provide: {
- observerElSelector: '.user-counter.dropdown',
- observerElToggledClass: 'show',
- message: [
- __(
- '%{strongStart}Need your attention%{strongEnd} are the merge requests that need your help to move forward, as an assignee or reviewer.',
- ),
- ],
- featureName: 'attention_requests_top_nav',
- popoverTarget: '#js-need-attention-nav',
- },
- render(h) {
- return h(NavigationPopover);
- },
- });
-};
-
-export const initSideNavPopover = () => {
- const el = document.getElementById('js-need-attention-sidebar-onboarding');
-
- if (!el) return;
-
- // eslint-disable-next-line no-new
- new Vue({
- el,
- apolloProvider,
- provide: {
- observerElSelector: '.js-right-sidebar',
- observerElToggledClass: 'right-sidebar-expanded',
- message: [
- __(
- 'To ask someone to look at a merge request, select %{strongStart}Request attention%{strongEnd}. Select again to remove the request.',
- ),
- __(
- 'Some actions remove attention requests, like a reviewer approving or anyone merging the merge request.',
- ),
- ],
- featureName: 'attention_requests_side_nav',
- popoverTarget: '.js-attention-request-toggle',
- showAttentionIcon: true,
- delay: 500,
- popoverCssClass: 'attention-request-sidebar-popover',
- },
- render(h) {
- return h(NavigationPopover);
- },
- });
-};
-
-export default () => {
- initTopNavPopover();
-};
diff --git a/app/assets/javascripts/commons/nav/user_merge_requests.js b/app/assets/javascripts/commons/nav/user_merge_requests.js
index 784e9cb2faa..b105273ece7 100644
--- a/app/assets/javascripts/commons/nav/user_merge_requests.js
+++ b/app/assets/javascripts/commons/nav/user_merge_requests.js
@@ -26,39 +26,20 @@ function updateMergeRequestCounts(newCount) {
mergeRequestsCountEl.classList.toggle('gl-display-none', Number(newCount) === 0);
}
-function updateAttentionRequestsCount(count) {
- const attentionCountEl = document.querySelector('.js-attention-count');
- attentionCountEl.textContent = count.toLocaleString();
-
- if (Number(count) === 0) {
- attentionCountEl.classList.replace('badge-warning', 'badge-neutral');
- } else {
- attentionCountEl.classList.replace('badge-neutral', 'badge-warning');
- }
-}
-
/**
* Refresh user counts (and broadcast if open)
*/
export function refreshUserMergeRequestCounts() {
return getUserCounts()
.then(({ data }) => {
- const attentionRequestsEnabled = window.gon?.features?.mrAttentionRequests;
const assignedMergeRequests = data.assigned_merge_requests;
const reviewerMergeRequests = data.review_requested_merge_requests;
- const attentionRequests = data.attention_requests;
- const fullCount = attentionRequestsEnabled
- ? attentionRequests
- : assignedMergeRequests + reviewerMergeRequests;
+ const fullCount = assignedMergeRequests + reviewerMergeRequests;
updateUserMergeRequestCounts(assignedMergeRequests);
updateReviewerMergeRequestCounts(reviewerMergeRequests);
updateMergeRequestCounts(fullCount);
broadcastCount(fullCount);
-
- if (attentionRequestsEnabled) {
- updateAttentionRequestsCount(attentionRequests);
- }
})
.catch((ex) => {
console.error(ex); // eslint-disable-line no-console
diff --git a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js
index 28a3c54cc8f..d00e6e59cf5 100644
--- a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js
+++ b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js
@@ -13,21 +13,6 @@ export default (IssuableTokenKeys, disableTargetBranchFilter = false) => {
IssuableTokenKeys.tokenKeys.splice(2, 0, reviewerToken);
IssuableTokenKeys.tokenKeysWithAlternative.splice(2, 0, reviewerToken);
- if (window.gon?.features?.mrAttentionRequests) {
- const attentionRequestedToken = {
- formattedKey: __('Attention'),
- key: 'attention',
- type: 'string',
- param: '',
- symbol: '@',
- icon: 'user',
- tag: '@attention',
- hideNotEqual: true,
- };
- IssuableTokenKeys.tokenKeys.splice(2, 0, attentionRequestedToken);
- IssuableTokenKeys.tokenKeysWithAlternative.splice(2, 0, attentionRequestedToken);
- }
-
const draftToken = {
token: {
formattedKey: __('Draft'),
diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js
index d4dafbdc94f..7aea3715971 100644
--- a/app/assets/javascripts/gfm_auto_complete.js
+++ b/app/assets/javascripts/gfm_auto_complete.js
@@ -276,8 +276,6 @@ class GfmAutoComplete {
UNASSIGN_REVIEWER: '/unassign_reviewer',
REASSIGN: '/reassign',
CC: '/cc',
- ATTENTION: '/attention',
- REMOVE_ATTENTION: '/remove_attention',
};
let assignees = [];
let reviewers = [];
@@ -356,23 +354,6 @@ class GfmAutoComplete {
} else if (command === MEMBER_COMMAND.UNASSIGN_REVIEWER) {
// Only include members which are not assigned as a reviewer to Issuable currently
return data.filter((member) => reviewers.includes(member.search));
- } else if (
- command === MEMBER_COMMAND.ATTENTION ||
- command === MEMBER_COMMAND.REMOVE_ATTENTION
- ) {
- const attentionUsers = [
- ...(SidebarMediator.singleton?.store?.assignees || []),
- ...(SidebarMediator.singleton?.store?.reviewers || []),
- ];
- const attentionRequested = command === MEMBER_COMMAND.REMOVE_ATTENTION;
-
- return data.filter((member) =>
- attentionUsers.find(
- (u) =>
- createMemberSearchString(u).includes(member.search) &&
- u.attention_requested === attentionRequested,
- ),
- );
}
return data;
diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js
index 349a28ace52..c16ed68096d 100644
--- a/app/assets/javascripts/main.js
+++ b/app/assets/javascripts/main.js
@@ -134,12 +134,6 @@ function deferredInitialisation() {
// Adding a helper class to activate animations only after all is rendered
setTimeout(() => $body.addClass('page-initialised'), 1000);
-
- if (window.gon?.features?.mrAttentionRequests) {
- import('~/attention_requests')
- .then((module) => module.default())
- .catch(() => {});
- }
}
// header search vue component bootstrap
diff --git a/app/assets/javascripts/sidebar/components/assignees/assignees.vue b/app/assets/javascripts/sidebar/components/assignees/assignees.vue
index 3602b5ec4f6..29ea390a81d 100644
--- a/app/assets/javascripts/sidebar/components/assignees/assignees.vue
+++ b/app/assets/javascripts/sidebar/components/assignees/assignees.vue
@@ -39,9 +39,6 @@ export default {
assignSelf() {
this.$emit('assign-self');
},
- toggleAttentionRequested(data) {
- this.$emit('toggle-attention-requested', data);
- },
},
};
@@ -66,12 +63,7 @@ export default {
-
+
diff --git a/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue b/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue
index 59a4eb54bbe..a94dd128a1a 100644
--- a/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue
+++ b/app/assets/javascripts/sidebar/components/assignees/issuable_assignees.vue
@@ -32,11 +32,6 @@ export default {
return this.users.length === 0;
},
},
- methods: {
- toggleAttentionRequested(data) {
- this.$emit('toggle-attention-requested', data);
- },
- },
};
@@ -66,7 +61,6 @@ export default {
:users="users"
:issuable-type="issuableType"
class="gl-text-gray-800 hide-collapsed"
- @toggle-attention-requested="toggleAttentionRequested"
/>
diff --git a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue
index e596d6292bf..18b26c7d8bd 100644
--- a/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue
+++ b/app/assets/javascripts/sidebar/components/assignees/sidebar_assignees.vue
@@ -125,9 +125,6 @@ export default {
availability: this.assigneeAvailabilityStatus[username] || '',
}));
},
- toggleAttentionRequested(data) {
- this.mediator.toggleAttentionRequested('assignee', data);
- },
},
};
@@ -155,7 +152,6 @@ export default {
:editable="store.editable"
:issuable-type="issuableType"
@assign-self="assignSelf"
- @toggle-attention-requested="toggleAttentionRequested"
/>
diff --git a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue
index b6260418837..0e4d4c74160 100644
--- a/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue
+++ b/app/assets/javascripts/sidebar/components/assignees/uncollapsed_assignee_list.vue
@@ -2,7 +2,6 @@
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { IssuableType } from '~/issues/constants';
import { __, sprintf } from '~/locale';
-import AttentionRequestedToggle from '../attention_requested_toggle.vue';
import AssigneeAvatarLink from './assignee_avatar_link.vue';
import UserNameWithStatus from './user_name_with_status.vue';
@@ -10,7 +9,6 @@ const DEFAULT_RENDER_COUNT = 5;
export default {
components: {
- AttentionRequestedToggle,
AssigneeAvatarLink,
UserNameWithStatus,
},
@@ -46,10 +44,6 @@ export default {
return this.users.length - DEFAULT_RENDER_COUNT;
},
uncollapsedUsers() {
- if (this.showVerticalList) {
- return this.users;
- }
-
const uncollapsedLength = this.showLess
? Math.min(this.users.length, DEFAULT_RENDER_COUNT)
: this.users.length;
@@ -58,9 +52,6 @@ export default {
username() {
return `@${this.firstUser.username}`;
},
- showVerticalList() {
- return this.glFeatures.mrAttentionRequests && this.isMergeRequest;
- },
isMergeRequest() {
return this.issuableType === IssuableType.MergeRequest;
},
@@ -75,9 +66,6 @@ export default {
}
return u?.status?.availability || '';
},
- toggleAttentionRequested(data) {
- this.$emit('toggle-attention-requested', data);
- },
},
};
@@ -96,7 +84,7 @@ export default {
@@ -107,14 +95,6 @@ export default {
-
diff --git a/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue b/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue
deleted file mode 100644
index 974ad189f32..00000000000
--- a/app/assets/javascripts/sidebar/components/attention_requested_toggle.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue b/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue
index b07fd944ff9..5729b958b5d 100644
--- a/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue
+++ b/app/assets/javascripts/sidebar/components/reviewers/reviewers.vue
@@ -49,9 +49,6 @@ export default {
requestReview(data) {
this.$emit('request-review', data);
},
- toggleAttentionRequested(data) {
- this.$emit('toggle-attention-requested', data);
- },
},
};
@@ -73,7 +70,6 @@ export default {
:root-path="rootPath"
:issuable-type="issuableType"
@request-review="requestReview"
- @toggle-attention-requested="toggleAttentionRequested"
/>
diff --git a/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue b/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue
index 2ea63219e92..e414aaf719b 100644
--- a/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue
+++ b/app/assets/javascripts/sidebar/components/reviewers/sidebar_reviewers.vue
@@ -88,9 +88,6 @@ export default {
requestReview(data) {
this.mediator.requestReview(data);
},
- toggleAttentionRequested(data) {
- this.mediator.toggleAttentionRequested('reviewer', data);
- },
},
};
@@ -109,7 +106,6 @@ export default {
:editable="store.editable"
:issuable-type="issuableType"
@request-review="requestReview"
- @toggle-attention-requested="toggleAttentionRequested"
/>
diff --git a/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue b/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue
index 2f58e11c00f..3aeb49eb422 100644
--- a/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue
+++ b/app/assets/javascripts/sidebar/components/reviewers/uncollapsed_reviewer_list.vue
@@ -1,8 +1,6 @@