respond_to :js, :html
def index
- @labels = @project.issues_labels.order('count DESC')
+ @labels = @project.issues_labels
end
def generate
- Gitlab::Labels.generate(@project)
+ Gitlab::IssuesLabels.generate(@project)
redirect_to project_labels_path(@project)
end
classes
end
- def issue_tags
- @project.issues.tag_counts_on(:labels).map(&:name)
- end
-
# Returns an OpenStruct object suitable for use by <tt>options_from_collection_for_select</tt>
# to allow filtering issues by an unassigned User or Milestone
def unassigned_filter
}
end
- def labels_autocomplete_source
- labels = @project.issues_labels.order('count DESC')
- labels = labels.map{ |l| { label: l.name, value: l.name } }
- labels.to_json
- end
-
def issues_active_milestones
@project.milestones.active.order("id desc").all
end
""
end
end
-
- def label_css_class(name)
- case name
- when *warning_labels
- 'label-warning'
- when *neutral_labels
- 'label-inverse'
- when *positive_labels
- 'label-success'
- when *important_labels
- 'label-important'
- else
- 'label-info'
- end
- end
end
--- /dev/null
+module LabelsHelper
+ def issue_tags
+ @project.issues.tag_counts_on(:labels).map(&:name)
+ end
+
+ def labels_autocomplete_source
+ labels = @project.issues_labels
+ labels = labels.map{ |l| { label: l.name, value: l.name } }
+ labels.to_json
+ end
+
+ def label_css_class(name)
+ klass = Gitlab::IssuesLabels
+
+ case name
+ when *klass.warning_labels
+ 'label-warning'
+ when *klass.neutral_labels
+ 'label-inverse'
+ when *klass.positive_labels
+ 'label-success'
+ when *klass.important_labels
+ 'label-important'
+ else
+ 'label-info'
+ end
+ end
+end
attr_accessible :namespace_id, :creator_id, as: :admin
- acts_as_taggable_on :labels
+ acts_as_taggable_on :labels, :issues_default_labels
attr_accessor :import_url
end
def issues_labels
- issues.tag_counts_on(:labels)
+ @issues_labels ||= (issues_default_labels + issues.tags_on(:labels)).uniq.sort_by(&:name)
end
def issue_exists?(issue_id)
.pull-right
- @issue.labels.each do |label|
- %span.label
+ %span{class: "label #{label_css_class(label.name)}"}
%i.icon-tag
= label.name
+- frequency = @project.issues.tagged_with(label.name).count
%li
%strong
- %i.icon-tag
- = label.name
+ %span{class: "label #{label_css_class(label.name)}"}
+ %i.icon-tag
+ - if frequency.zero?
+ %span.light= label.name
+ - else
+ = label.name
.pull-right
- = link_to project_issues_path(label_name: label.name) do
- %strong
- = pluralize(label.count, 'issue')
- = "»"
+ - unless frequency.zero?
+ = link_to project_issues_path(label_name: label.name) do
+ %strong
+ = pluralize(frequency, 'issue')
+ = "»"
Labels
%br
-.light-well
+- if @labels.present?
%ul.bordered-list.labels-table
- @labels.each do |label|
= render 'label', label: label
- - unless @labels.present?
- %li
- %h3.nothing_here_message Add first label to your issues or #{link_to 'generate', generate_project_labels_path(@project), method: :post} default set of labels
-
+- else
+ .light-well
+ %h3.nothing_here_message Add first label to your issues or #{link_to 'generate', generate_project_labels_path(@project), method: :post} default set of labels
module Gitlab
- class Labels
+ class IssuesLabels
class << self
def important_labels
%w(bug critical confirmed)
%w(feature enhancement)
end
- def self.generate(project)
+ def generate(project)
labels = important_labels + warning_labels + neutral_labels + positive_labels
- labels.each do |label_name|
- # create tag for project
- end
+ project.issues_default_label_list = labels
+ project.save
end
end
end