Module: Surveyor::Helpers::SurveyorHelperMethods

Includes:
AssetPipeline
Included in:
SurveyorHelper
Defined in:
lib/surveyor/helpers/surveyor_helper_methods.rb

Instance Method Summary collapse

Methods included from AssetPipeline

#asset_pipeline_enabled?

Instance Method Details

#a_text(obj, pos = nil, context = nil) ⇒ Object

Answers



68
69
70
71
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 68

def a_text(obj, pos=nil, context = nil)
  return image_tag(obj.text) if obj.is_a?(Answer) and obj.display_type == "image"
  obj.split_or_hidden_text(pos, context)
end

#dependency_explanation_helper(question, response_set) ⇒ Object

Section: dependencies, menu, previous and next



21
22
23
24
25
26
27
28
29
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 21

def dependency_explanation_helper(question,response_set)
  # Attempts to explain why this dependent question needs to be answered by referenced the dependent question and users response
  trigger_responses = []
  dependent_questions = Question.find_all_by_id(question.dependency.dependency_conditions.map(&:question_id)).uniq
  response_set.responses.find_all_by_question_id(dependent_questions.map(&:id)).uniq.each do |resp|
    trigger_responses << resp.to_s
  end
  "&nbsp;&nbsp;You answered &quot;#{trigger_responses.join("&quot; and &quot;")}&quot; to the question &quot;#{dependent_questions.map(&:text).join("&quot;,&quot;")}&quot;"
end

#flash_messages(types) ⇒ Object

Helper for displaying warning/notice/error flash messages



17
18
19
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 17

def flash_messages(types)
  types.map{|type| (:div, "#{flash[type]}".html_safe, :class => type.to_s)}.join.html_safe
end

#generate_pick_none_input_html(value, default_value, css_class, response_class, disabled) ⇒ Object



87
88
89
90
91
92
93
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 87

def generate_pick_none_input_html(value, default_value, css_class, response_class, disabled)
  html = {}
  html[:class] = [response_class,css_class].reject{ |c| c.blank? }
  html[:value] = default_value if value.blank?
  html[:disabled] = disabled unless disabled.blank?
  html
end


30
31
32
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 30

def menu_button_for(section)
  submit_tag(section.title, :name => "section[#{section.id}]")
end

#next_question_number(question) ⇒ Object



50
51
52
53
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 50

def next_question_number(question)
  @n ||= 0
  "<span class='qnum'>#{@n += 1}) </span>"
end

#next_sectionObject



37
38
39
40
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 37

def next_section
  # use copy in memory instead of making extra db calls
  @sections.last == @section ? submit_tag(t('surveyor.click_here_to_finish').html_safe, :name => "finish") : submit_tag(t('surveyor.next_section').html_safe, :name => "section[#{@sections[@sections.index(@section)+1].id}]")
end

#previous_sectionObject



33
34
35
36
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 33

def previous_section
  # use copy in memory instead of making extra db calls
  submit_tag(t('surveyor.previous_section').html_safe, :name => "section[#{@sections[@sections.index(@section)-1].id}]") unless @sections.first == @section
end

#q_text(obj, context = nil) ⇒ Object

Questions



43
44
45
46
47
48
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 43

def q_text(obj, context=nil)

  return image_tag(obj.text) if obj.is_a?(Question) and obj.display_type == "image"
  return obj.render_question_text(context) if obj.is_a?(Question) and (obj.dependent? or obj.display_type == "label" or obj.part_of_group?)
  "#{next_question_number(obj)}#{obj.render_question_text(context)}"
end

#rc_to_as(type_sym) ⇒ Object



80
81
82
83
84
85
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 80

def rc_to_as(type_sym)
  case type_sym.to_s
  when /(integer|float|date|time|datetime)/ then :string
  else type_sym
  end
end

#rc_to_attr(type_sym) ⇒ Object



73
74
75
76
77
78
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 73

def rc_to_attr(type_sym)
  case type_sym.to_s
  when /^answer$/ then :answer_id
  else "#{type_sym.to_s}_value".to_sym
  end
end

#render_help_text(obj, context = nil) ⇒ Object

Help_text



63
64
65
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 63

def render_help_text(obj, context=nil)
  obj.render_help_text(context)
end

#response_for(response_set, question, answer = nil, response_group = nil) ⇒ Object

Responses



96
97
98
99
100
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 96

def response_for(response_set, question, answer = nil, response_group = nil)
  return nil unless response_set && question && question.id
  result = response_set.responses.detect{|r| (r.question_id == question.id) && (answer.blank? ? true : r.answer_id == answer.id) && (r.response_group.blank? ? true : r.response_group.to_i == response_group.to_i)}
  result.blank? ? response_set.responses.build(:question_id => question.id, :response_group => response_group) : result
end

#response_idx(increment = true) ⇒ Object



101
102
103
104
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 101

def response_idx(increment = true)
  @rc ||= 0
  (increment ? @rc += 1 : @rc).to_s
end

#surveyor_includesObject

Layout: stylsheets and javascripts



9
10
11
12
13
14
15
# File 'lib/surveyor/helpers/surveyor_helper_methods.rb', line 9

def surveyor_includes
  if asset_pipeline_enabled?
    stylesheet_link_tag('surveyor_all') + javascript_include_tag('surveyor_all')
  else
    stylesheet_link_tag('surveyor/reset', 'surveyor/dateinput', 'surveyor/jquery-ui.custom', 'surveyor/jquery-ui-timepicker-addon', 'surveyor', 'custom') + javascript_include_tag('surveyor/jquery.tools.min', 'surveyor/jquery-ui', 'surveyor/jquery-ui-timepicker-addon', 'surveyor/jquery.surveyor')
  end
end