Merge branch '18031-sidebar-labels-queries' into 'master'
See merge request !4436
This commit is contained in:
commit
74849f9783
|
@ -30,6 +30,7 @@ v 8.9.0 (unreleased)
|
|||
- Add Application Setting to configure Container Registry token expire delay (default 5min)
|
||||
- Cache assigned issue and merge request counts in sidebar nav
|
||||
- Cache project build count in sidebar nav
|
||||
- Reduce number of queries needed to render issue labels in the sidebar
|
||||
|
||||
v 8.8.3
|
||||
- Fix 404 page when viewing TODOs that contain milestones or labels in different projects. !4312
|
||||
|
|
|
@ -213,6 +213,10 @@ module Issuable
|
|||
hook_data
|
||||
end
|
||||
|
||||
def labels_array
|
||||
labels.to_a
|
||||
end
|
||||
|
||||
def label_names
|
||||
labels.order('title ASC').pluck(:title)
|
||||
end
|
||||
|
|
|
@ -114,20 +114,20 @@
|
|||
.sidebar-collapsed-icon
|
||||
= icon('tags')
|
||||
%span
|
||||
= issuable.labels.count
|
||||
= issuable.labels_array.size
|
||||
.title.hide-collapsed
|
||||
Labels
|
||||
= icon('spinner spin', class: 'block-loading')
|
||||
- if can_edit_issuable
|
||||
= link_to 'Edit', '#', class: 'edit-link pull-right'
|
||||
.value.bold.issuable-show-labels.hide-collapsed{ class: ("has-labels" if issuable.labels.any?) }
|
||||
- if issuable.labels.any?
|
||||
- issuable.labels.each do |label|
|
||||
.value.bold.issuable-show-labels.hide-collapsed{ class: ("has-labels" if issuable.labels_array.any?) }
|
||||
- if issuable.labels_array.any?
|
||||
- issuable.labels_array.each do |label|
|
||||
= link_to_label(label, type: issuable.to_ability_name)
|
||||
- else
|
||||
.light None
|
||||
.selectbox.hide-collapsed
|
||||
- issuable.labels.each do |label|
|
||||
- issuable.labels_array.each do |label|
|
||||
= hidden_field_tag "#{issuable.to_ability_name}[label_names][]", label.id, id: nil
|
||||
.dropdown
|
||||
%button.dropdown-menu-toggle.js-label-select.js-multiselect{type: "button", data: {toggle: "dropdown", field_name: "#{issuable.to_ability_name}[label_names][]", ability_name: issuable.to_ability_name, show_no: "true", show_any: "true", project_id: (@project.id if @project), issue_update: issuable_json_path(issuable), labels: (namespace_project_labels_path(@project.namespace, @project, :json) if @project)}}
|
||||
|
|
|
@ -227,6 +227,20 @@ describe Issue, "Issuable" do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#labels_array' do
|
||||
let(:project) { create(:project) }
|
||||
let(:bug) { create(:label, project: project, title: 'bug') }
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
|
||||
before(:each) do
|
||||
issue.labels << bug
|
||||
end
|
||||
|
||||
it 'loads the association and returns it as an array' do
|
||||
expect(issue.reload.labels_array).to eq([bug])
|
||||
end
|
||||
end
|
||||
|
||||
describe "votes" do
|
||||
let(:project) { issue.project }
|
||||
|
||||
|
|
Loading…
Reference in New Issue