Class: RedmineExtensions::QueryOutput

Inherits:
Object
  • Object
show all
Defined in:
lib/redmine_extensions/query_output.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query_presenter) ⇒ QueryOutput

Returns a new instance of QueryOutput.



39
40
41
# File 'lib/redmine_extensions/query_output.rb', line 39

def initialize(query_presenter)
  @query = query_presenter
end

Instance Attribute Details

#queryObject

Returns the value of attribute query.



4
5
6
# File 'lib/redmine_extensions/query_output.rb', line 4

def query
  @query
end

Class Method Details

.available_for?(query) ⇒ Boolean

Take query and decide if it is possible to render it by this output

Returns:

  • (Boolean)


35
36
37
# File 'lib/redmine_extensions/query_output.rb', line 35

def self.available_for?(query)
  true
end

.available_output_klasses_for(query) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/redmine_extensions/query_output.rb', line 21

def self.available_output_klasses_for(query)
  result = []
  registered_outputs.each do |name, output|
    result << output if output.available_for?(query)
  end
  result
end

.available_outputs_for(query) ⇒ Object



15
16
17
18
19
# File 'lib/redmine_extensions/query_output.rb', line 15

def self.available_outputs_for(query)
  registered_outputs.select do |name, output|
    output.available_for?(query)
  end.keys
end

.output_klass_for(output) ⇒ Object



29
30
31
# File 'lib/redmine_extensions/query_output.rb', line 29

def self.output_klass_for(output)
  registered_outputs[output.to_sym]
end

.register_output(name, klass, options = {}) ⇒ Object



7
8
9
# File 'lib/redmine_extensions/query_output.rb', line 7

def self.register_output(name, klass, options={})
  registered_outputs[name] = klass
end

.registered_outputsObject



11
12
13
# File 'lib/redmine_extensions/query_output.rb', line 11

def self.registered_outputs
  @registered_outputs ||= {}
end

Instance Method Details

#edit_formObject



87
88
89
# File 'lib/redmine_extensions/query_output.rb', line 87

def edit_form
  'easy_queries/form_'+key+'_settings'
end

#enabled?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/redmine_extensions/query_output.rb', line 55

def enabled?
  query.outputs.output_enabled?(key)
end

#hObject



91
92
93
# File 'lib/redmine_extensions/query_output.rb', line 91

def h
  @query.h
end

#headerObject



63
64
65
66
# File 'lib/redmine_extensions/query_output.rb', line 63

def header
  content = options["#{key}_header".to_sym]
  h.(:h3, content.html_safe) unless content.blank?
end

#keyObject



47
48
49
# File 'lib/redmine_extensions/query_output.rb', line 47

def key
  self.class.name.split('::').last.sub(/Output$/, '').underscore
end

#labelObject



51
52
53
# File 'lib/redmine_extensions/query_output.rb', line 51

def label
  h.l('label_easy_query_output.'+key)
end

#render_dataObject

Raises:

  • (NotImplemented)


43
44
45
# File 'lib/redmine_extensions/query_output.rb', line 43

def render_data;
  raise NotImplemented
end

#render_editObject



80
81
82
83
84
85
# File 'lib/redmine_extensions/query_output.rb', line 80

def render_edit
  h.(:fieldset, class: "easy-query-filters-field #{key}_settings", style: ('display: none;' unless enabled? )) do
    h.(:legend, label) +
    h.render(self.edit_form, query: query, modul_uniq_id: query.modul_uniq_id, action: 'edit')
  end
end

#render_edit_box(style = :check_box, options = {}) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/redmine_extensions/query_output.rb', line 68

def render_edit_box(style=:check_box, options={})
  raise 'Style of edit box is not allowed' unless [:check_box, :radio_button].include?(style)

  box_id = "#{options[:modul_uniq_id]}_output_#{key}"

  options[:class] ||= "#{options[:modul_uniq_id]}content_switch"
  r = ''
  r << h.send("#{style}_tag" , "#{options[:block_name]}[output]", key, enabled?, id: box_id, class: options[:class])
  r << h.label_tag(box_id, h.l('label_easy_query_output.' + key), :class => 'inline')
  r
end

#variablesObject



59
60
61
# File 'lib/redmine_extensions/query_output.rb', line 59

def variables
  options.merge(easy_query: @query, output: self)
end