# (preferred, will be pluralized automatically)
'name' => #name for the record
# (deprecated, will be pluralized simplistically)
# (preferred, will be pluralized automatically)
'name' => #name for the record
# (deprecated, will be pluralized simplistically)
#we're embedded (rows only: no header at all, no html_init, no error
# display, no <FORM>, no hidden fields for table name or primary key, no
# display of primary key, no submit button, no html_foot, no footer)
'embed' => $object, #need to pass the object
#we're embedded (rows only: no header at all, no html_init, no error
# display, no <FORM>, no hidden fields for table name or primary key, no
# display of primary key, no submit button, no html_foot, no footer)
'embed' => $object, #need to pass the object
+ 'form_init' => '', #after html_init, error and the opening <FORM>, but
+ #before any other form contents
+
+ 'html_table_class' => '', #HTML <TABLE CLASS=
+
#string or coderef of additional HTML to add before </TABLE>
'html_table_bottom' => '',
#string or coderef of additional HTML to add before </TABLE>
'html_table_bottom' => '',
- <INPUT TYPE="hidden" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>">
+ <INPUT TYPE="hidden" ID="<% $pkey %>" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>">
+
+ <% defined($opt{'form_init'})
+ ? ( ref($opt{'form_init'})
+ ? &{$opt{'form_init'}}()
+ : $opt{'form_init'}
+ )
+ : ''
+ %>
-% my $tablenum = 0;
-<TABLE ID="TableNumber<% $tablenum++ %>" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0>
+% my $tablenum = $opt{'tablenum'} || 0;
+<TABLE ID="TableNumber<% $tablenum++ %>"
+ <% $opt{html_table_class} ? 'CLASS="'. $opt{html_table_class}. '"'
+ : 'BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0'
+ %>
+>
% #contact
% 'custnum' => $f->{'custnum'},
% 'prospectnum' => $f->{'prospectnum'},
% #contact
% 'custnum' => $f->{'custnum'},
% 'prospectnum' => $f->{'prospectnum'},
% );
%
% $include_common{$_} = $f->{$_} foreach grep exists($f->{$_}),
% qw( js_only html_only select_only layers_only cell_style ),#selectlayers,?
% qw( empty_label ), # select-*
% );
%
% $include_common{$_} = $f->{$_} foreach grep exists($f->{$_}),
% qw( js_only html_only select_only layers_only cell_style ),#selectlayers,?
% qw( empty_label ), # select-*
% qw( table name_col ), #(select,checkboxes)-table
% qw( target_table link_table ), #checkboxes-table
% qw( hashref agent_virt agent_null agent_null_right ),#*-table
% qw( formatted_value ), #fixed
% qw( country ), #select-country
% qw( width height config ), #htmlarea
% qw( table name_col ), #(select,checkboxes)-table
% qw( target_table link_table ), #checkboxes-table
% qw( hashref agent_virt agent_null agent_null_right ),#*-table
% qw( formatted_value ), #fixed
% qw( country ), #select-country
% qw( width height config ), #htmlarea
% qw( classnum ), # select-inventory_item
% qw( aligned ), # columnstart
% qw( classnum ), # select-inventory_item
% qw( aligned ), # columnstart
+% ## set conditionname field values for validation.
+% if ($field eq 'conditionname') {
+% my $validate_field = $field . $fieldnum . '.after_event.run_delay';
+% $js_form_validate->{edit_topform}->{validate_fields}{$validate_field} = 'digits: true';
+% $js_form_validate->{edit_topform}->{error_message}{$validate_field} = 'Please only enter numbers here.';
+% }
+%
% my @include =
% ( "/elements/$include.html",
% 'field' => "$field$fieldnum",
% 'id' => "$field$fieldnum", #separate?
% 'label_id' => $field."_label$fieldnum", #don't want field0_label0...
% my @include =
% ( "/elements/$include.html",
% 'field' => "$field$fieldnum",
% 'id' => "$field$fieldnum", #separate?
% 'label_id' => $field."_label$fieldnum", #don't want field0_label0...
% 'value' => $opt{curr_value},
% 'label' => $label,
% 'noinit' => $f->{noinit},
% 'value' => $opt{curr_value},
% 'label' => $label,
% 'noinit' => $f->{noinit},
// change the label on the last entry & add a remove button
var prev_label = document.getElementById('<% $field %>_label' + <%$field%>_fieldnum );
prev_label.innerHTML = '<INPUT TYPE="button" VALUE="X" TITLE="Remove this <% lc($f->{'m2_label'}) %>" onClick="remove_<% $field %>(' + <%$field%>_fieldnum + ');" STYLE="color:#ff0000;font-weight:bold;padding-left:2px;padding-right:2px" > <% $f->{'m2_label'} || $field %>';
// change the label on the last entry & add a remove button
var prev_label = document.getElementById('<% $field %>_label' + <%$field%>_fieldnum );
prev_label.innerHTML = '<INPUT TYPE="button" VALUE="X" TITLE="Remove this <% lc($f->{'m2_label'}) %>" onClick="remove_<% $field %>(' + <%$field%>_fieldnum + ');" STYLE="color:#ff0000;font-weight:bold;padding-left:2px;padding-right:2px" > <% $f->{'m2_label'} || $field %>';
var newrow = <% include(@layer_opt, html_only=>1) |js_string %>;
% #until the rest have html/js_only
var newrow = <% include(@layer_opt, html_only=>1) |js_string %>;
% #until the rest have html/js_only
my $fields = $opt{'fields'}
#|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
|| [ grep { $_ ne $pkey } fields($table) ];
my $fields = $opt{'fields'}
#|| [ grep { $_ ne $pkey } dbdef->table($table)->columns ];
|| [ grep { $_ ne $pkey } fields($table) ];
-#my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
+my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
+
+push @actualfields, $pkey;
+
+my $js_form_validate = {};
});
&{$opt{'error_callback'}}( $cgi, $object, $fields, \%opt )
});
&{$opt{'error_callback'}}( $cgi, $object, $fields, \%opt )