Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-09-23 21:12:59 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-09-23 21:12:59 +0300
commit3acaaf7231d0779a6ceb37fca693cd81e698ef90 (patch)
tree22a068ab03faa19008997f5bc10298282ad077ab /app/assets/javascripts/users_select
parent2cba761741967eb6baf797af2ee0a702c2ffbdfe (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/users_select')
-rw-r--r--app/assets/javascripts/users_select/index.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/app/assets/javascripts/users_select/index.js b/app/assets/javascripts/users_select/index.js
index 94b4ee77e7e..2fface2729f 100644
--- a/app/assets/javascripts/users_select/index.js
+++ b/app/assets/javascripts/users_select/index.js
@@ -50,6 +50,7 @@ function UsersSelect(currentUser, els, options = {}) {
options.iid = $dropdown.data('iid');
options.issuableType = $dropdown.data('issuableType');
options.targetBranch = $dropdown.data('targetBranch');
+ options.showSuggested = $dropdown.data('showSuggested');
const showNullUser = $dropdown.data('nullUser');
const defaultNullUser = $dropdown.data('nullUserDefault');
const showMenuAbove = $dropdown.data('showMenuAbove');
@@ -340,6 +341,16 @@ function UsersSelect(currentUser, els, options = {}) {
if ($dropdown.hasClass('js-multiselect')) {
const selected = getSelected().filter((i) => i !== 0);
+ if ($dropdown.data('showSuggested')) {
+ const suggested = this.suggestedUsers(users);
+ if (suggested.length) {
+ users = users.filter(
+ (u) => !u.suggested || (u.suggested && selected.indexOf(u.id) !== -1),
+ );
+ users.splice(showDivider + 1, 0, ...suggested);
+ }
+ }
+
if (selected.length > 0) {
if ($dropdown.data('dropdownHeader')) {
showDivider += 1;
@@ -370,6 +381,21 @@ function UsersSelect(currentUser, els, options = {}) {
$dropdown.data('deprecatedJQueryDropdown').positionMenuAbove();
}
},
+ suggestedUsers(users) {
+ const selected = getSelected().filter((i) => i !== 0);
+ const suggestedUsers = users
+ .filter((u) => u.suggested && selected.indexOf(u.id) === -1)
+ .sort((a, b) => a.name > b.name);
+
+ if (!suggestedUsers.length) return [];
+
+ const items = [
+ { type: 'header', content: $dropdown.data('suggestedReviewersHeader') },
+ ...suggestedUsers,
+ { type: 'header', content: $dropdown.data('allMembersHeader') },
+ ];
+ return items;
+ },
filterable: true,
filterRemote: true,
search: {
@@ -760,6 +786,10 @@ UsersSelect.prototype.users = function (query, options, callback) {
params.approval_rules = true;
}
+ if (isMergeRequest && options.showSuggested) {
+ params.show_suggested = true;
+ }
+
if (isNewMergeRequest) {
params.target_branch = options.targetBranch || null;
}