Commit 0a3cafb2 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '22680-unlabel-limit-autocomplete-to-selected-items' into 'master'

Limit autocomplete to currently selected items

When using the /unlabel command the autocomplete list of labels is now
limited to the list of labels currently assigned to the issue.

Closes #22680

See merge request !6796
parents b33791d8 d54b8826
......@@ -51,6 +51,11 @@
if (!GitLab.GfmAutoComplete.dataLoaded) {
return this.at;
} else {
if (value.indexOf("unlabel") !== -1) {
GitLab.GfmAutoComplete.input.atwho('load', '~', GitLab.GfmAutoComplete.cachedData.unlabels);
} else {
GitLab.GfmAutoComplete.input.atwho('load', '~', GitLab.GfmAutoComplete.cachedData.labels);
}
return value;
}
}
......@@ -358,3 +363,4 @@
};
}).call(this);
......@@ -144,13 +144,15 @@ class ProjectsController < Projects::ApplicationController
autocomplete = ::Projects::AutocompleteService.new(@project, current_user)
participants = ::Projects::ParticipantsService.new(@project, current_user).execute(noteable)
unlabels = autocomplete.unlabels(noteable)
@suggestions = {
emojis: Gitlab::AwardEmoji.urls,
issues: autocomplete.issues,
milestones: autocomplete.milestones,
mergerequests: autocomplete.merge_requests,
labels: autocomplete.labels,
labels: autocomplete.labels - unlabels,
unlabels: unlabels,
members: participants,
commands: autocomplete.commands(noteable, params[:type])
}
......
......@@ -13,7 +13,14 @@ module Projects
end
def labels
LabelsFinder.new(current_user, project_id: project.id).execute.select([:title, :color])
LabelsFinder.new(current_user, project_id: project.id).execute.
pluck(:title, :color).map { |l| { title: l.first, color: l.second } }
end
def unlabels(noteable)
return [] unless noteable && noteable.respond_to?(:labels)
noteable.labels.pluck(:title, :color).map { |l| { title: l.first, color: l.second } }
end
def commands(noteable, type)
......
---
title: Limit autocomplete to currently selected items for unlabel slash command
merge_request: 22680
author: Akram Fares
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment