Add subject to group and projects labels which return group/project
This commit is contained in:
parent
d3b76e832f
commit
8379fbcd47
|
@ -14,7 +14,7 @@ module LabelsHelper
|
|||
#
|
||||
# Examples:
|
||||
#
|
||||
# # Allow the generated link to use the label's own project
|
||||
# # Allow the generated link to use the label's own subject
|
||||
# link_to_label(label)
|
||||
#
|
||||
# # Force the generated link to use a provided group
|
||||
|
@ -31,13 +31,7 @@ module LabelsHelper
|
|||
#
|
||||
# Returns a String
|
||||
def link_to_label(label, subject: nil, type: :issue, tooltip: true, css_class: nil, &block)
|
||||
subject ||=
|
||||
case label
|
||||
when GroupLabel then label.group
|
||||
when ProjectLabel then label.project
|
||||
end
|
||||
|
||||
link = label_filter_path(subject, label, type: type)
|
||||
link = label_filter_path(subject || label.subject, label, type: type)
|
||||
|
||||
if block_given?
|
||||
link_to link, class: css_class, &block
|
||||
|
|
|
@ -3,6 +3,8 @@ class GroupLabel < Label
|
|||
|
||||
validates :group, presence: true
|
||||
|
||||
alias_attribute :subject, :group
|
||||
|
||||
def to_reference(source_project = nil, target_project = nil, format: :id)
|
||||
super(source_project, target_project, format: format)
|
||||
end
|
||||
|
|
|
@ -10,6 +10,8 @@ class ProjectLabel < Label
|
|||
|
||||
delegate :group, to: :project, allow_nil: true
|
||||
|
||||
alias_attribute :subject, :project
|
||||
|
||||
def to_reference(target_project = nil, format: :id)
|
||||
super(project, target_project, format: format)
|
||||
end
|
||||
|
|
|
@ -9,6 +9,14 @@ describe GroupLabel, models: true do
|
|||
it { is_expected.to validate_presence_of(:group) }
|
||||
end
|
||||
|
||||
describe '#subject' do
|
||||
it 'aliases group to subject' do
|
||||
subject = described_class.new(group: build(:group))
|
||||
|
||||
expect(subject.subject).to be(subject.group)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#to_reference' do
|
||||
let(:label) { create(:group_label) }
|
||||
|
||||
|
|
|
@ -64,6 +64,14 @@ describe ProjectLabel, models: true do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#subject' do
|
||||
it 'aliases project to subject' do
|
||||
subject = described_class.new(project: build(:empty_project))
|
||||
|
||||
expect(subject.subject).to be(subject.project)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#to_reference' do
|
||||
let(:label) { create(:label) }
|
||||
|
||||
|
|
Loading…
Reference in New Issue