refactoring the rendering of content fields in a model
This commit is contained in:
parent
d2f6cc0c53
commit
34c5d12ebf
@ -4,71 +4,6 @@
|
||||
- form.object.custom_fields.each do |field|
|
||||
- required = highlighted_field_name == field._name || field.required
|
||||
|
||||
- if field.string?
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :required => required
|
||||
|
||||
- elsif field.text?
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :as => :text, :required => required, :input_html => { :class => field.text_formatting }
|
||||
|
||||
- elsif field.category?
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'toggle' do
|
||||
= form.select field._name.to_sym, field.ordered_category_items.collect { |item| [item.name, item.id] }
|
||||
%button.button.light.edit-categories-link{ :type => 'button', :'data-url' => edit_admin_custom_field_path(parent.class.model_name.underscore, parent.slug, field) }
|
||||
%span!= t('.edit_categories')
|
||||
|
||||
- elsif field.boolean?
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'toggle' do
|
||||
= form.check_box field._alias.to_sym
|
||||
|
||||
- elsif field.date?
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :input_html => { :class => 'date' }
|
||||
|
||||
- elsif field.file?
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'file' do
|
||||
= form.file_field field._name.to_sym
|
||||
- if form.object.send(:"#{field._name}?")
|
||||
%p.remove
|
||||
%strong
|
||||
= link_to File.basename(form.object.send(field._name).url), form.object.send(field._name).url
|
||||
%span
|
||||
/
|
||||
!= t('.delete_file')
|
||||
= form.check_box :"remove_#{field._name}"
|
||||
|
||||
- elsif field.has_one?
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :input_html => { :class => 'has_one' }, :as => :select, :collection => options_for_has_one(field), :selected => form.object.send(field._alias.to_sym).try(:_id)
|
||||
|
||||
- elsif field.has_many?
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'has-many' do
|
||||
|
||||
.has-many-selector
|
||||
|
||||
%p{ :style => form.object.send(field._alias.to_sym).empty? ? '' : 'display: none' }
|
||||
= t('.empty')
|
||||
|
||||
%ul
|
||||
|
||||
%script{ :type => 'text/x-mustache-template', :name => 'template', :'data-base-input-name' => "content[#{field._alias.to_sym}]" }
|
||||
%li{ :class => "item {{behaviour_flag}}" }
|
||||
%span.handle
|
||||
= image_tag 'admin/form/icons/drag.png'
|
||||
|
||||
{{^if_template}}
|
||||
%input{ :name => '{{base_name}}[]', :value => '{{{id}}}', :type => 'hidden', :'data-field' => 'id' }
|
||||
{{/if_template}}
|
||||
|
||||
%strong {{label}}
|
||||
|
||||
{{#if_template}}
|
||||
= select_tag 'label', ''
|
||||
{{/if_template}}
|
||||
|
||||
%span.actions
|
||||
= link_to image_tag('admin/form/icons/trash.png'), '#', :class => 'remove'
|
||||
%button{ :class => 'button light mini add', :type => 'button' }
|
||||
%span!= t('admin.buttons.new_item')
|
||||
|
||||
%script{ :type => 'text/javascript', :name => 'data' }
|
||||
!= collection_to_js(options_for_has_many(field), :taken_ids => form.object.send(field._alias.to_sym).ids)
|
||||
= render "/admin/custom_fields/types/#{field.kind}", :form => form, :parent => parent, :field => field, :required => required
|
||||
|
||||
= render '/admin/custom_fields/category_tmpl'
|
2
app/views/admin/custom_fields/types/_boolean.html.haml
Normal file
2
app/views/admin/custom_fields/types/_boolean.html.haml
Normal file
@ -0,0 +1,2 @@
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'toggle' do
|
||||
= form.check_box field._alias.to_sym
|
4
app/views/admin/custom_fields/types/_category.html.haml
Normal file
4
app/views/admin/custom_fields/types/_category.html.haml
Normal file
@ -0,0 +1,4 @@
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'toggle' do
|
||||
= form.select field._name.to_sym, field.ordered_category_items.collect { |item| [item.name, item.id] }
|
||||
%button.button.light.edit-categories-link{ :type => 'button', :'data-url' => edit_admin_custom_field_path(parent.class.model_name.underscore, parent.slug, field) }
|
||||
%span!= t('.edit_categories')
|
1
app/views/admin/custom_fields/types/_date.html.haml
Normal file
1
app/views/admin/custom_fields/types/_date.html.haml
Normal file
@ -0,0 +1 @@
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :input_html => { :class => 'date' }
|
10
app/views/admin/custom_fields/types/_file.html.haml
Normal file
10
app/views/admin/custom_fields/types/_file.html.haml
Normal file
@ -0,0 +1,10 @@
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'file' do
|
||||
= form.file_field field._name.to_sym
|
||||
- if form.object.send(:"#{field._name}?")
|
||||
%p.remove
|
||||
%strong
|
||||
= link_to File.basename(form.object.send(field._name).url), form.object.send(field._name).url
|
||||
%span
|
||||
/
|
||||
!= t('.delete_file')
|
||||
= form.check_box :"remove_#{field._name}"
|
31
app/views/admin/custom_fields/types/_has_many.html.haml
Normal file
31
app/views/admin/custom_fields/types/_has_many.html.haml
Normal file
@ -0,0 +1,31 @@
|
||||
= form.custom_input field._alias.to_sym, :label => field.label, :hint => field.hint, :css => 'has-many' do
|
||||
|
||||
.has-many-selector
|
||||
|
||||
%p{ :style => form.object.send(field._alias.to_sym).empty? ? '' : 'display: none' }
|
||||
= t('.empty')
|
||||
|
||||
%ul
|
||||
|
||||
%script{ :type => 'text/x-mustache-template', :name => 'template', :'data-base-input-name' => "content[#{field._alias.to_sym}]" }
|
||||
%li{ :class => "item {{behaviour_flag}}" }
|
||||
%span.handle
|
||||
= image_tag 'admin/form/icons/drag.png'
|
||||
|
||||
{{^if_template}}
|
||||
%input{ :name => '{{base_name}}[]', :value => '{{{id}}}', :type => 'hidden', :'data-field' => 'id' }
|
||||
{{/if_template}}
|
||||
|
||||
%strong {{label}}
|
||||
|
||||
{{#if_template}}
|
||||
= select_tag 'label', ''
|
||||
{{/if_template}}
|
||||
|
||||
%span.actions
|
||||
= link_to image_tag('admin/form/icons/trash.png'), '#', :class => 'remove'
|
||||
%button{ :class => 'button light mini add', :type => 'button' }
|
||||
%span!= t('admin.buttons.new_item')
|
||||
|
||||
%script{ :type => 'text/javascript', :name => 'data' }
|
||||
!= collection_to_js(options_for_has_many(field), :taken_ids => form.object.send(field._alias.to_sym).ids)
|
2
app/views/admin/custom_fields/types/_has_one.html.haml
Normal file
2
app/views/admin/custom_fields/types/_has_one.html.haml
Normal file
@ -0,0 +1,2 @@
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :input_html => { :class => 'has_one' }, :as => :select, :collection => options_for_has_one(field), :selected => form.object.send(field._alias.to_sym).try(:_id)
|
||||
|
1
app/views/admin/custom_fields/types/_string.html.haml
Normal file
1
app/views/admin/custom_fields/types/_string.html.haml
Normal file
@ -0,0 +1 @@
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :required => required
|
1
app/views/admin/custom_fields/types/_text.html.haml
Normal file
1
app/views/admin/custom_fields/types/_text.html.haml
Normal file
@ -0,0 +1 @@
|
||||
= form.input field._alias.to_sym, :label => field.label, :hint => field.hint, :as => :text, :required => required, :input_html => { :class => field.text_formatting }
|
Loading…
Reference in New Issue
Block a user