Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- form = ActiveForm::Definition.new :form do |f|
- f.text_element :elem_a
- f.text_element :elem_b
- f.group_element :group, :class => 'specialgroup' do |g|
- g.text_element :elem_a, :style => 'color: red' do |e|
- e.define_internalize_filter { |value| value.join(', ') }
- e.define_externalize_filter { |value| value.split(/,\s+/) }
- end
- g.text_element :elem_b, :class => 'specialelem'
- g.group_element :group do |g|
- g.text_element :elem_a, :disabled => true
- g.text_element :elem_b, :readonly => true
- end
- end
- end
- form.define_form :one do |f|
- f.text_element :sub_a
- f.text_element :sub_b
- end
- form.define_form :two do |f|
- f.text_element :sub_a
- f.text_element :sub_b
- end
- ActiveForm::Definition.define_container_wrapper do |builder, elem, render|
- builder.form(elem.element_attributes) {
- builder.table(:border => 1) {
- builder.thead { builder.tr { builder.th(elem.label, :colspan => 2) } }
- builder.tbody { elem.render_elements(builder) }
- }
- }
- end
- ActiveForm::Element::Base.define_element_wrapper do |builder, elem, render|
- builder.tr(:class => 'label') { builder.td(:colspan => 2) { elem.render_label(builder) } }
- builder.tr(:id => "elem_#{elem.identifier}", :class => elem.css, :style => elem.style) { builder.td(:class => 'elem', :colspan => 2, &render) }
- end
- ActiveForm::Element::Group.define_element_wrapper do |builder, elem, render|
- builder.tr { builder.td { builder.table(:border => 1, :style => 'background: orange; margin: 20px', &render) } }
- end
- ActiveForm::Definition.define_element_wrapper do |builder, elem, render|
- style = StyleAttribute.new
- style << 'margin: 20px'
- style << 'display: none' if elem.hidden?
- builder.tr { builder.td { builder.table(:border => 1, :style => style, &render) } }
- end
- form.update_values({ :elem_a => 'test', :elem_b => 'tester', :group => { :elem_a => ['one', 'two', 'three'] } })
- puts form
- <form action="#form" class="active_form" id="form" method="post">
- <table border="1">
- <thead>
- <tr>
- <th colspan="2">Form</th>
- </tr>
- </thead>
- <tbody>
- <tr class="label">
- <td colspan="2">
- <label for="form_elem_a">Elem A</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_elem_a">
- <td class="elem" colspan="2">
- <input id="form_elem_a" name="form[elem_a]" type="text" value="test"/>
- </td>
- </tr>
- <tr class="label">
- <td colspan="2">
- <label for="form_elem_b">Elem B</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_elem_b">
- <td class="elem" colspan="2">
- <input id="form_elem_b" name="form[elem_b]" type="text" value="tester"/>
- </td>
- </tr>
- <tr>
- <td>
- <table border="1" style="background: orange; margin: 20px">
- <tr class="label">
- <td colspan="2">
- <label for="form_group_elem_a">Elem A</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_group_elem_a" style="color: red">
- <td class="elem" colspan="2">
- <input id="form_group_elem_a" name="form[group][elem_a]" type="text" value="one, two, three"/>
- </td>
- </tr>
- <tr class="label">
- <td colspan="2">
- <label for="form_group_elem_b">Elem B</label>
- </td>
- </tr>
- <tr class="specialelem" id="elem_form_group_elem_b">
- <td class="elem" colspan="2">
- <input id="form_group_elem_b" name="form[group][elem_b]" type="text"/>
- </td>
- </tr>
- <tr>
- <td>
- <table border="1" style="background: orange; margin: 20px">
- <tr class="label">
- <td colspan="2">
- <label class="inactive" for="form_group_group_elem_a">Elem A</label>
- </td>
- </tr>
- <tr class="elem_text disabled" id="elem_form_group_group_elem_a">
- <td class="elem" colspan="2">
- <input disabled="disabled" id="form_group_group_elem_a" name="form[group][group][elem_a]" type="text"/>
- </td>
- </tr>
- <tr class="label">
- <td colspan="2">
- <label class="inactive" for="form_group_group_elem_b">Elem B</label>
- </td>
- </tr>
- <tr class="elem_text readonly" id="elem_form_group_group_elem_b">
- <td class="elem" colspan="2">
- <input id="form_group_group_elem_b" name="form[group][group][elem_b]" readonly="readonly" type="text"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table border="1" style="margin: 20px">
- <tr class="label">
- <td colspan="2">
- <label for="form_one_sub_a">Sub A</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_one_sub_a">
- <td class="elem" colspan="2">
- <input id="form_one_sub_a" name="form[one][sub_a]" type="text"/>
- </td>
- </tr>
- <tr class="label">
- <td colspan="2">
- <label for="form_one_sub_b">Sub B</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_one_sub_b">
- <td class="elem" colspan="2">
- <input id="form_one_sub_b" name="form[one][sub_b]" type="text"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table border="1" style="margin: 20px">
- <tr class="label">
- <td colspan="2">
- <label for="form_two_sub_a">Sub A</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_two_sub_a">
- <td class="elem" colspan="2">
- <input id="form_two_sub_a" name="form[two][sub_a]" type="text"/>
- </td>
- </tr>
- <tr class="label">
- <td colspan="2">
- <label for="form_two_sub_b">Sub B</label>
- </td>
- </tr>
- <tr class="elem_text" id="elem_form_two_sub_b">
- <td class="elem" colspan="2">
- <input id="form_two_sub_b" name="form[two][sub_b]" type="text"/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </form>
Add Comment
Please, Sign In to add comment