diff --git a/app/assets/stylesheets/issue_tracker_icons.css.erb b/app/assets/stylesheets/issue_tracker_icons.css.erb index 19aee92..ca86f8e 100644 --- a/app/assets/stylesheets/issue_tracker_icons.css.erb +++ b/app/assets/stylesheets/issue_tracker_icons.css.erb @@ -1,5 +1,5 @@ /* Issue Tracker inactive, select, create and goto icons */ -<% trackers = IssueTracker.subclasses.map{|t| t::Label } << 'none' %> +<% trackers = IssueTracker.subclasses.map{|t| t.label } << 'none' %> <% trackers.each do |tracker| %> div.issue_tracker.nested label.<%= tracker %> { background: url(/assets/<%= tracker %>_inactive.png) no-repeat; diff --git a/app/models/issue_tracker.rb b/app/models/issue_tracker.rb index f61c6b7..ba4c3ad 100644 --- a/app/models/issue_tracker.rb +++ b/app/models/issue_tracker.rb @@ -30,9 +30,9 @@ class IssueTracker def url; nil; end + # Retrieve tracker label from either class or instance. Label = '' - def self.label - self::Label - end + def self.label; self::Label; end + def label; self.class.label; end end diff --git a/app/models/problem.rb b/app/models/problem.rb index f18e37e..9248a9e 100644 --- a/app/models/problem.rb +++ b/app/models/problem.rb @@ -149,7 +149,7 @@ class Problem def issue_type # Return issue_type if configured, but fall back to detecting app's issue tracker attributes['issue_type'] ||= - (app.issue_tracker_configured? && app.issue_tracker.class::Label) || nil + (app.issue_tracker_configured? && app.issue_tracker.label) || nil end private diff --git a/app/views/apps/_issue_tracker_fields.html.haml b/app/views/apps/_issue_tracker_fields.html.haml index ec9006d..b1b70c5 100644 --- a/app/views/apps/_issue_tracker_fields.html.haml +++ b/app/views/apps/_issue_tracker_fields.html.haml @@ -7,14 +7,14 @@ = w.radio_button :type, "IssueTracker", 'data-section' => 'none' (None) - IssueTracker.subclasses.each do |tracker| - = label_tag "type_#{tracker::Label}:", :for => label_for_attr(w, "type_#{tracker.name.downcase.gsub(':','')}"), :class => "label_radio #{tracker::Label}" do - = w.radio_button :type, tracker.name, 'data-section' => tracker::Label + = label_tag "type_#{tracker.label}:", :for => label_for_attr(w, "type_#{tracker.name.downcase.gsub(':','')}"), :class => "label_radio #{tracker.label}" do + = w.radio_button :type, tracker.name, 'data-section' => tracker.label = tracker.name[/::(.*)Tracker/,1].titleize %div.tracker_params.none{:class => (w.object && !(w.object.class < IssueTracker)) ? 'chosen' : nil} %p When no issue tracker has been configured, you will be able to leave comments on errors. - IssueTracker.subclasses.each do |tracker| - %div.tracker_params{:class => (w.object.is_a?(tracker) ? 'chosen ' : '') << tracker::Label} + %div.tracker_params{:class => (w.object.is_a?(tracker) ? 'chosen ' : '') << tracker.label} - if defined?(tracker::Note) %p= tracker::Note.html_safe - tracker::Fields.each do |field, field_info| @@ -23,7 +23,7 @@ = w.send field_type, field, :placeholder => field_info[:placeholder], :value => w.object.send(field) .image_preloader - - (IssueTracker.subclasses.map{|t| t::Label } << 'none').each do |tracker| + - (IssueTracker.subclasses.map{|t| t.label } << 'none').each do |tracker| = image_tag "#{tracker}_inactive.png" = image_tag "#{tracker}_create.png" diff --git a/app/views/apps/index.html.haml b/app/views/apps/index.html.haml index f3e05b6..fb7ab76 100644 --- a/app/views/apps/index.html.haml +++ b/app/views/apps/index.html.haml @@ -24,7 +24,7 @@ - if any_issue_trackers? %td.issue_tracker - if app.issue_tracker_configured? - - tracker_img = image_tag("#{app.issue_tracker.class::Label}_goto.png") + - tracker_img = image_tag("#{app.issue_tracker.label}_goto.png") - if app.issue_tracker.url = link_to( tracker_img, app.issue_tracker.url ) - else diff --git a/app/views/errs/_issue_tracker_links.html.haml b/app/views/errs/_issue_tracker_links.html.haml index d192f7e..9ca6d92 100644 --- a/app/views/errs/_issue_tracker_links.html.haml +++ b/app/views/errs/_issue_tracker_links.html.haml @@ -9,4 +9,4 @@ - if current_user.github_account? && @app.github_repo? %span= link_to 'create issue', create_issue_app_err_path(@app, @problem, :tracker => 'user_github'), :method => :post, :class => "github_create create-issue" - if @app.issue_tracker_configured? && !@app.issue_tracker.is_a?(GithubIssuesTracker) - %span= link_to 'create issue', create_issue_app_err_path(@app, @problem), :method => :post, :class => "#{@app.issue_tracker.class::Label}_create create-issue" + %span= link_to 'create issue', create_issue_app_err_path(@app, @problem), :method => :post, :class => "#{@app.issue_tracker.label}_create create-issue" diff --git a/db/migrate/20120605091105_set_issue_type_on_problems.rb b/db/migrate/20120605091105_set_issue_type_on_problems.rb index 4bd3f37..0d206c2 100644 --- a/db/migrate/20120605091105_set_issue_type_on_problems.rb +++ b/db/migrate/20120605091105_set_issue_type_on_problems.rb @@ -2,7 +2,7 @@ class SetIssueTypeOnProblems < Mongoid::Migration def self.up Problem.all.each do |p| if p.issue_link.present? && p.app.issue_tracker_configured? - p.update_attribute :issue_type, p.app.issue_tracker.class::Label + p.update_attribute :issue_type, p.app.issue_tracker.label end end end -- libgit2 0.21.2