Module: Sunrise::ManagerHelper
- Defined in:
- app/helpers/sunrise/manager_helper.rb
Instance Method Summary collapse
- #manage_add_child_link(name, form, field, options = {}) ⇒ Object
- #manage_date_tag(datetime, options = {}) ⇒ Object
- #manage_form_for(object, *args, &block) ⇒ Object
- #manage_new_child_fields(form_builder, field, options = {}) ⇒ Object
- #manage_remove_child_link(name, form, options = {}) ⇒ Object
- #manage_render_field(field, record) ⇒ Object
Instance Method Details
#manage_add_child_link(name, form, field, options = {}) ⇒ Object
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, = {}) .symbolize_keys! method = field.name.to_sym = (.delete(:html) || {}) fields = manage_new_child_fields(form, field, ) [:class] ||= 'button' [:onclick] = h("sunrise.insert_fields(this, \"#{method}\", \"#{escape_javascript(fields)}\");") link_to(name, 'javascript:void(0);', ) 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, = {}) = { hide_time: datetime.is_a?(Date) }.merge() = [] << content_tag(:div, datetime.strftime('%d.%m.%Y'), class: 'date') << content_tag(:div, datetime.strftime('%H:%M'), class: 'time') unless [:hide_time] content_tag(:div, .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) = args. [:builder] ||= Sunrise::Views::FormBuilder [:url] ||= (object.new_record? ? new_path : edit_path(id: object.id)) simple_form_for(object, *(args << ), &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, = {}) method = field.name.to_sym [:object] ||= form_builder.object.class.reflect_on_association(method).klass.new [:partial] ||= method.to_s.singularize [:form_builder_local] ||= :form form_builder.fields_for(method, [:object], child_index: "new_#{method}") do |f| render(partial: [:partial], locals: { [:form_builder_local] => f, :field => field }) end end |
#manage_remove_child_link(name, form, options = {}) ⇒ Object
36 37 38 39 |
# File 'app/helpers/sunrise/manager_helper.rb', line 36 def manage_remove_child_link(name, form, = {}) [:onclick] = h('sunrise.remove_fields(this);') form.hidden_field(:_destroy) + link_to(name, 'javascript:void(0);', ) 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 |