class RedmineExtensions::EasyQueryHelpers::Outputs

—– OUTPUTS HELPER CLASS —-

Public Class Methods

new(presenter, view_context = nil) click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 7
def initialize(presenter, view_context = nil)
  if presenter.is_a?(RedmineExtensions::BasePresenter)
    @presenter = presenter
    @query = @presenter.model
  else
    @presenter = @query = presenter
  end
  @view_context = view_context
end

Public Instance Methods

available_output_names() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 44
def available_output_names
  @available_output_names ||= RedmineExtensions::QueryOutput.available_outputs_for( @query )
end
available_outputs() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 48
def available_outputs
  @available_outputs ||= RedmineExtensions::QueryOutput.available_output_klasses_for( @query ).map{|klass| klass.new(@presenter, self) }
end
each(style = :enabled, &block) click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 25
def each(style = :enabled, &block)
  if style == :enabled
    outputs.each(&block)
  else
    available_outputs.each(&block)
  end
end
enabled_outputs() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 33
def enabled_outputs
  available = available_output_names.map(&:to_s)
  res = if available.one?
    available
  else
    Array(@query.outputs).map(&:to_s) & available
  end
  res << 'list' if res.empty?
  res
end
h() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 83
def h
  view_context
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 87
def method_missing(name, *args)
  if name.to_s.ends_with?('?')
    output_enabled?(name.to_s[0..-2])
  else
    super
  end
end
output_enabled?(output) click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 52
def output_enabled?(output)
  enabled_outputs.include?(output.to_s)
end
outputs() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 21
def outputs
  @outputs ||= enabled_outputs.map{|o| RedmineExtensions::QueryOutput.output_klass_for(o, @query).new(@presenter, self) }.sort_by{|a| a.order}
end
render_data() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 75
def render_data
  if outputs.any?
    outputs.map{ |output| output.render_data }.join.html_safe
  else
    view_context.l(:label_no_output)
  end
end
render_edit() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 71
def render_edit
  outputs.map{ |output| output.render_edit }.join.html_safe
end
render_edit_selects(style=:check_box, options={}) click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 56
def render_edit_selects(style=:check_box, options={})
  options.delete(:enabled)
  if available_outputs.count == 1
    available_outputs.first.render_edit_box(:hidden_field, options)
  else
    h.content_tag(:p) do
      s = h.content_tag(:label, h.l(:label_easy_query_outputs))
      available_outputs.each do |o|
        s << o.render_edit_box(style, options.dup)
      end
      s
    end
  end
end
view_context() click to toggle source
# File lib/redmine_extensions/easy_query_helpers/outputs.rb, line 17
def view_context
  @view_context || @presenter.h
end