Module: Card::Set::All::FormElements::HtmlFormat

Extended by:
Card::Set::AbstractFormat
Defined in:
tmpsets/set/mod023-edit/all/form_elements.rb

Constant Summary collapse

FIELD_HELPERS =
%w[
  hidden_field color_field date_field datetime_field datetime_local_field
  email_field month_field number_field password_field phone_field
  range_field search_field telephone_field text_area text_field time_field
  url_field week_field file_field label check_box radio_button
].freeze

Instance Method Summary collapse

Instance Method Details

#cancel_button(args = {}) ⇒ Object

redirect to *previous if no :href is given



60
61
62
63
64
65
66
67
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 60

def cancel_button args={}
  text = args.delete(:text) || "Cancel"
  add_class args, "btn btn-#{args.delete(:situation) || 'secondary'}"
  add_class args, cancel_strategy(args[:redirect], args[:href])
  args[:href] ||= path_to_previous
  args["data-remote"] = true
  link_to text, args
end

#cancel_strategy(redirect, href) ⇒ Object



69
70
71
72
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 69

def cancel_strategy redirect, href
  redirect = href.blank? if redirect.nil?
  redirect ? "redirecter" : "slotter"
end

#hidden_tags(hash, base = nil) ⇒ Object

convert hash into a collection of hidden tags



16
17
18
19
20
21
22
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 16

def hidden_tags hash, base=nil
  hash ||= {}
  hash.inject("") do |result, (key, val)|
    new_base = base ? "#{base}[#{key}]" : key
    result + process_hidden_value(val, new_base)
  end
end

#path_to_previousObject



74
75
76
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 74

def path_to_previous
  path mark: "*previous"
end

#process_hidden_value(val, base) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 24

def process_hidden_value val, base
  case val
  when Hash
    hidden_tags val, base
  when Array
    base += "[]"
    val.map do |v|
      hidden_field_tag base, v
    end.join
  else
    hidden_field_tag base, val
  end
end

#submit_button(args = {}) ⇒ Object



52
53
54
55
56
57
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 52

def submit_button args={}
  text = args.delete(:text) || "Submit"
  args.reverse_merge! situation: "primary", data: {}
  args[:data][:disable_with] ||= args.delete(:disable_with) || "Submitting"
  button_tag text, args
end

#success_tags(opts) ⇒ Object



9
10
11
12
13
# File 'tmpsets/set/mod023-edit/all/form_elements.rb', line 9

def success_tags opts
  return "" unless opts.present?

  hidden_tags success: opts
end