Module: Sunrise::ManagerHelper

Defined in:
app/helpers/sunrise/manager_helper.rb

Instance Method Summary collapse

Instance Method Details



41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/helpers/sunrise/manager_helper.rb', line 41

def manage_add_child_link(name, form, field, options = {})
  options.symbolize_keys!

  method = field.name.to_sym
  html_options = (options.delete(:html) || {})
  fields = manage_new_child_fields(form, field, options)

  html_options[:class] ||= 'button'
  html_options[:onclick] = h("sunrise.insert_fields(this, \"#{method}\", \"#{escape_javascript(fields)}\");")

  link_to(name, 'javascript:void(0);', html_options)
end

#manage_date_tag(datetime, options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'app/helpers/sunrise/manager_helper.rb', line 14

def manage_date_tag(datetime, options = {})
  options = { hide_time: datetime.is_a?(Date) }.merge(options)
  tags = []

  tags << (:div, datetime.strftime('%d.%m.%Y'), class: 'date')
  tags << (:div, datetime.strftime('%H:%M'), class: 'time') unless options[:hide_time]

  (:div, tags.join.html_safe, class: 'date-time')
end

#manage_form_for(object, *args, &block) ⇒ Object



5
6
7
8
9
10
11
12
# File 'app/helpers/sunrise/manager_helper.rb', line 5

def manage_form_for(object, *args, &block)
  options = args.extract_options!

  options[:builder] ||= Sunrise::Views::FormBuilder
  options[:url] ||= (object.new_record? ? new_path : edit_path(id: object.id))

  simple_form_for(object, *(args << options), &block)
end

#manage_new_child_fields(form_builder, field, options = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
# File 'app/helpers/sunrise/manager_helper.rb', line 54

def manage_new_child_fields(form_builder, field, options = {})
  method = field.name.to_sym

  options[:object] ||= form_builder.object.class.reflect_on_association(method).klass.new
  options[:partial] ||= method.to_s.singularize
  options[:form_builder_local] ||= :form

  form_builder.fields_for(method, options[:object], child_index: "new_#{method}") do |f|
    render(partial: options[:partial], locals: { options[:form_builder_local] => f, :field => field })
  end
end


36
37
38
39
# File 'app/helpers/sunrise/manager_helper.rb', line 36

def manage_remove_child_link(name, form, options = {})
  options[:onclick] = h('sunrise.remove_fields(this);')
  form.hidden_field(:_destroy) + link_to(name, 'javascript:void(0);', options)
end

#manage_render_field(field, record) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'app/helpers/sunrise/manager_helper.rb', line 24

def manage_render_field(field, record)
  item = record.send(field.name)

  if [Date, DateTime, Time].detect { |klass| item.is_a?(klass) }
    manage_date_tag(item)
  elsif item.is_a?(String)
    item =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i ? mail_to(item) : item
  else
    item.to_s
  end
end