[%- USE form = HTML.SuperForm( self.params ) %]
[%- form.start_form(
action => ( view.form.action || self.uri ),
enctype => view.form.enctype,
class => ( view.form.class || 'form-box' ),
method => ( view.data.method || 'post' )
) %]
[%- IF view.form.show_error_summary %]
[% PROCESS error_summary %]
[%- END %]
[%# check for older style crud form %]
[%- IF view.form.fields %]
[%- ELSE %]
[%- WHILE ( row = view.form.row.next ) %]
[% view.form.legend %]
[%- FOREACH field_data IN view.form.fields %]
[%- PROCESS field
dta = field_data
row = row
layout = 'default' %]
[%- END %]
[%- END %]
[%- END %]
[%- UNLESS view.form.no_submit %]
[% form.submit(
id => 'submit',
name => 'submit',
default => ( view.form.submit_button_label || 'Submit' ),
label => ( view.form.submit_button_label || 'Submit' )
) -%]
[%- END %]
[%- IF view.form.submit_and_add_another %]
[%- form.submit(
name => 'submit_add_another',
default => ( view.form.submit_and_add_another_label
|| 'Submit & Add Another' ),
label => ( view.form.submit_and_add_another_label
|| 'Submit & Add Another' )
) %]
[%- END %]
[%- UNLESS view.form.no_cancel %]
[%- form.submit(
id => 'cancel',
name => 'cancel',
default => ( view.form.cancel_button_label || 'Cancel' )
label => ( view.form.cancel_button_label || 'Cancel' )
) -%]
[%- END %]
[% form.end_form %]
[% BLOCK field %]
[%- type = dta.type %]
[%- name = dta.name %]
[%- missing = view.form.results.missing( "$name" ) %]
[%- required = dta.optional ? 0 : 1 %]
[%- IF type == 'file' %]
[%- ELSIF type == 'display' %]
[%- ELSIF type == 'textarea' %]
[%- ELSIF type == 'hidden' %]
[%- form.$type(
id => dta.name,
name => dta.name,
class => dta.class,
default => (self.params.$name || row.$name || dta.default_value),
size => dta.display_size,
)
%]
[%- ELSIF type == 'select' || type == 'multiple_select' %]
[%- values = []; labels = {}; %]
[%- FOREACH i IN dta.options %]
[%- key = i.value %]
[%- values.push( i.value );
labels.$key = i.label;
%]
[%- END %]
[%- ELSIF type == 'html' %]
[%- ELSE %]
[%- END %]
[%- END %]
[% BLOCK row_status %]
[% IF invalid %]
invalid [% invalid %]
[% END %]
[%- IF missing %]
required
[% END %]
[% hint %]
[% END %]
[% BLOCK error_summary %]
[% IF view.form.results.missing %]
Missing:
[% missing_names = [] %]
[% FOREACH field IN view.form.fields %]
[% IF view.form.results.missing( "${field.name}" ) %]
[% missing_names.push( field.label ) %]
[% END %]
[% END %]
[% missing_names.join( ', ' ) %]
[% END %]
[% IF view.form.results.invalid %]
Invalid:
[% invalid_names = [] %]
[% FOREACH field IN view.form.fields %]
[% IF view.form.results.invalid( "${field.name}" ) %]
[% invalid_names.push( field.label ) %]
[% END %]
[% END %]
[% invalid_names.join( ', ' ) %]
[% END %]
[% END %]