Example:
- include( 'elements/edit.html',
+ <& elements/edit.html,
'name_singular' => #singular name for the record
# (preferred, will be pluralized automatically)
'name' => #name for the record
'disabled' => 0,
'onchange' => 'javascript_function',
- 'include_opt_callback' => sub { #my $ = @_;
+ 'include_opt_callback' => sub { my $object = @_;
( 'option' => 'value', );
},
#agent virtualization
'agent_virt' => 1,
+ 'agent_null' => 1, #if true, always allow no-agentnum globals
'agent_null_right' => 'Access Right Name',
'agent_clone_extra_sql' => '', #if provided, this overrides the extra_sql
#implementing agent virt, for clone
"html_string";
},
+ #javascript function name, will be called with form name as arg
+ 'onsubmit' => 'check_form_data',
+
#at the very bottom (well, as low as you can go from here)
'html_foot' => '',
#run before display to manipulate element of the 'fields' arrayref
'field_callback' => sub { my( $cgi, $object, $field_hashref ) = @_; },
- );
+ &>
</%doc>
% my $url = $opt{'post_url'} || popurl(1)."process/$table.html";
-<FORM ACTION="<% $url %>" METHOD=POST NAME="edit_topform">
+<FORM NAME = "edit_topform"
+ METHOD = POST
+ ACTION = "<% $url %>"
+ <% $opt{onsubmit} ? 'onSubmit="return '.$opt{onsubmit}.'(this)"' : '' %>
+>
<INPUT TYPE="hidden" NAME="svcdb" VALUE="<% $table %>">
<INPUT TYPE="hidden" NAME="<% $pkey %>" VALUE="<% $clone ? '' : $object->$pkey() %>">
% 'maxlength' => $f->{'maxlength'},
% 'postfix' => $f->{'postfix'},
%
+% #textarea
+% 'rows' => $f->{'rows'},
+% 'cols' => $f->{'cols'},
+%
% #checkbox, title, fixed, hidden
% #& deprecated weird value hashref used only by reason.html
% 'value' => $f->{'value'},
%
+% #fixed
+% 'noescape' => $f->{'noescape'},
+%
% #select(-*)
% 'options' => $f->{'options'},
% 'labels' => $f->{'labels'},
% 'multiple' => $f->{'multiple'},
+% 'label_showkey' => $f->{'label_showkey'},
% 'disable_empty' => $f->{'disable_empty'},
% #select-reason
% 'reason_class' => $f->{'reason_class'},
%
% #umm. for select-agent_types at least
% 'disabled' => $f->{'disabled'},
-% );
-%
-% #selectlayers, others?
-% $include_common{$_} = $f->{$_}
-% foreach grep exists($f->{$_}),
-% qw( js_only html_only select_only layers_only cell_style);
-%
-% #select-*
-% $include_common{$_} = $f->{$_}
-% foreach grep exists($f->{$_}), qw( empty_label );
+% 'fixed' => $f->{'fixed'},
%
-% #select-table, checkboxes-table
-% $include_common{$_} = $f->{$_}
-% foreach grep exists($f->{$_}), qw( table name_col );
-%
-% #checkboxes-table
-% $include_common{$_} = $f->{$_}
-% foreach grep exists($f->{$_}), qw( target_table link_table );
+% #any?
+% 'colspan' => $f->{'colspan'},
+% 'required' => $f->{'required'},
+% );
%
-% #*-table
-% $include_common{$_} = $f->{$_}
-% foreach grep exists($f->{$_}), qw( hashref agent_virt agent_null_right );
+% $include_common{$_} = $f->{$_} foreach grep exists($f->{$_}),
+% qw( js_only html_only select_only layers_only cell_style ),#selectlayers,?
+% qw( empty_label ), # select-*
+% qw( value_col compare_sub ), # select-table
+% 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 ), #htmlarea
+% qw( alt_format ), #select-cust_location
+% ;
+%
+% #select-table
+% $include_common{$_} = ref( $f->{$_} ) eq 'CODE'
+% ? &{ $f->{$_} }( $cgi, $object ) #, $f )
+% : $f->{$_}
+% foreach grep exists($f->{$_}), qw( extra_sql );
%
% if ( $type eq 'tablebreak-tr-title' ) {
% $include_common{'table_id'} = 'TableNumber'. $tablenum++;
+% }
+% if ( $type eq 'tablebreak-tr-title' || $type eq 'title' ) {
% $include_common{'colspan'} = $f->{colspan} if $f->{colspan};
% }
%
% if ( $f->{include_opt_callback} ) {
-% %include_common = ( %include_common, &{ $f->{include_opt_callback} } );
+% %include_common = ( %include_common,
+% &{ $f->{include_opt_callback} }( $object )
+% );
% }
%
% my $layer_prefix_on = '';
% %include_common,
% %opt,
% );
+%
+% if ( $include eq 'tr-input-date-field' ) {
+% # it's either hacking it here, or changing a lot more stuff
+% @include = (
+% "/elements/$include.html", {
+% 'name' => $field,
+% 'value' => $opt{curr_value},
+% 'label' => $label,
+% 'noinit' => $f->{noinit},
+% }
+% );
+% }
+%
% @include;
% };
%
% $g_row = 1 if $type eq 'tablebreak-tr-title';
% $g_row++;
% $g_row++ if $type eq 'title';
+% $g_row += scalar( @{ $f->{options} } )-1 if $type eq 'radio';
% } else {
% if ( $type eq 'columnstart' ) {
% push @g_row_stack, $g_row;
% $table = $f->{'m2name_table'};
% $col = $f->{'m2name_namecol'};
% } elsif ( $f->{'o2m_table'} ) {
-% $table = $f->{'o2m_tbekable'};
+% $table = $f->{'o2m_table'};
% $col = dbdef->table($f->{'o2m_table'})->primary_key;
% } elsif ( $f->{'m2m_method'} ) {
% $table = $f->{'m2m_method'};
% }
% warn "layer values: ". Dumper($layer_values)
% if $opt{'debug'};
-%
+%
% my @existing = &{ $include_sub }(
% 'label' => $ex_label,
% 'fieldnum' => $fieldnum,
% if ( $f->{curr_value_callback} ) {
% $curr_value = &{ $f->{curr_value_callback} }( $cgi, $object, $field ),
% } else {
-% $curr_value = $object->$field();
+% $curr_value = $object->$field() if $field;
% }
% $curr_value = &{ $opt{'value_callback'} }( $f->{'field'}, $curr_value )
% if $opt{'value_callback'} && $mode ne 'error';
// only spawn if we're the last element... return if not
- var field_regex = /(\d+)(_[a-z]+)?$/;
+ var field_regex = /(\d+)(_[a-z_]+)?$/;
var match = field_regex.exec(what.name);
if ( !match ) {
- alert(what.name + " didn't match?!");
+ alert(what.name + " didn't match for " + what);
return;
}
if ( match[1] != <%$field%>_fieldnum ) {
var newrow = <% include(@layer_opt, html_only=>1) |js_string %>;
-% if ( $type eq 'selectlayers' ) { #until the rest have html/js_only
- var newfunc = <% include(@layer_opt, js_only =>1) |js_string %>;
+% #until the rest have html/js_only
+% if ( $type eq 'selectlayers' || $type =~ /^select-cgp_rule_/ ) {
+ var newfunc = <% include(@layer_opt, js_only=>1) |js_string %>;
% } else {
var newfunc = '';
% }
<BR>
-<INPUT TYPE="submit" ID="submit" VALUE="<% ( !$clone && $object->$pkey() ) ? "Apply changes" : "Add ". ( $opt{'name'} || $opt{'name_singular'} ) %>">
+% unless ($opt{'no_submit'}) {
+ <INPUT TYPE = "submit"
+ ID = "submit"
+ VALUE = "<% ( !$clone && $object->$pkey() )
+ ? "Apply changes"
+ : "Add ". ( $opt{'name'} || $opt{'name_singular'} )
+ %>"
+ >
+% }
</FORM>
|| [ grep { $_ ne $pkey } fields($table) ];
#my @actualfields = map { ref($_) ? $_->{'field'} : $_ } @$fields;
+#$m->comp('/elements/handle_uri_query');
if ( $cgi->param('redirect') ) {
my $session = $cgi->param('redirect');
my $pref = $curuser->option("redirect$session");