fix reported but unreproducible "infinite loop", RT#26101
[freeside.git] / httemplate / edit / elements / edit.html
index cab5167..4159f04 100644 (file)
@@ -2,7 +2,7 @@
 
 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
@@ -182,7 +182,7 @@ Example:
     #run before display to manipulate element of the 'fields' arrayref
     'field_callback' => sub { my( $cgi, $object, $field_hashref ) = @_; },
 
-  );
+  &>
 
 </%doc>
 
@@ -260,14 +260,22 @@ Example:
 %     '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'},
@@ -279,48 +287,32 @@ Example:
 %
 %     #umm.  for select-agent_types at least
 %     'disabled'      => $f->{'disabled'},
-%   );
+%     'fixed'         => $f->{'fixed'},
 %
-%   #selectlayers, others?
-%   $include_common{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}),
-%                  qw( js_only html_only select_only layers_only cell_style);
+%     #any?
+%     'colspan'       => $f->{'colspan'},
+%     'required'      => $f->{'required'},
+%   );
 %
-%   #select-*
-%   $include_common{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}), qw( empty_label );
+%   $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{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}), qw( value_col );
 %   $include_common{$_} = ref( $f->{$_} ) eq 'CODE'
 %                           ? &{ $f->{$_} }( $cgi, $object ) #, $f )
 %                           : $f->{$_}
 %     foreach grep exists($f->{$_}), qw( extra_sql );
 %
-%   #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 );
-%
-%   #*-table
-%   $include_common{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}),
-%       qw( hashref agent_virt agent_null agent_null_right );
-%
-%   # fixed
-%   $include_common{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}),
-%       qw( formatted_value );
-%
-%   #htmlarea
-%   $include_common{$_} = $f->{$_}
-%     foreach grep exists($f->{$_}), qw( width height );
-%
-%
 %   if ( $type eq 'tablebreak-tr-title' ) {
 %     $include_common{'table_id'} = 'TableNumber'. $tablenum++;
 %   }
@@ -397,6 +389,7 @@ Example:
 %     $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;
@@ -452,7 +445,7 @@ Example:
 %       }
 %       warn "layer values: ". Dumper($layer_values)
 %         if $opt{'debug'};
-%
+%      
 %       my @existing = &{ $include_sub }(
 %         'label'        => $ex_label,
 %         'fieldnum'     => $fieldnum,
@@ -500,7 +493,7 @@ Example:
 %     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';
@@ -560,7 +553,7 @@ Example:
 
           // 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 for " + what);
@@ -736,13 +729,15 @@ Example:
 
 <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>
 
@@ -767,6 +762,7 @@ my $fields = $opt{'fields'}
              || [ 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");