Module: Sunrise::ManagerHelper

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

Instance Method Summary collapse

Instance Method Details



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

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



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

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



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

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



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

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


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

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



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

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