X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fauto-table.html;h=49222745a95918b942c12c82f647965b173a9082;hb=ea3ce8d7f076e7fecff4be7ae63bc413adb0adf5;hp=89d6eacb9ae5c81126c712be3a9301ca33a66975;hpb=de3bf373e97f6875e09fc17d99068a2716bf3b2d;p=freeside.git diff --git a/httemplate/elements/auto-table.html b/httemplate/elements/auto-table.html index 89d6eacb9..49222745a 100644 --- a/httemplate/elements/auto-table.html +++ b/httemplate/elements/auto-table.html @@ -28,6 +28,12 @@ Example: 'records' => [ qsearch('item', { } ) ], # or any other array of FS::Record objects + 'select' => [ '', + [ 1 => 'option 1', + 2 => 'option 2', ... + ], # options for second field + '' ], + 'prefix' => 'mytable_', ) %> @@ -45,8 +51,21 @@ Values will be passed through as "mytable_id1", etc. % my $col = 0; % for ( $col = 0; $col < scalar @fields; $col++ ) { -% my $id = $prefix . $fields[$col] . $row; +% my $id = $prefix . $fields[$col]; +% # don't suffix rownum in the final, blank row +% $id .= $row if $row < (scalar @data) - 1; +% my @o = @{ $select[$col] }; +% if( @o ) { + +% } +% else { STYLE = "text-align:<% $align[$col] %>" VALUE = "<% $data[$row][$col] %>" - onchange = "possiblyAddRow();" +% if( $opt{'autoadd'} ) { + onchange = "possiblyAddRow(this);" +% } > +% } % } " ALT = "X" - onclick = "deleteThisRow(this);" + onclick = "deleteRow(this);" > % } +% if( !$opt{'autoadd'} ) { +
+% } <%init> @@ -137,10 +153,14 @@ elsif($opt{'records'}) { } } # else @data = (); +push @data, [ map {''} @fields ]; # make a blank row my $prefix = $opt{'prefix'}; my @size = $opt{'size'} ? @{ $opt{'size'} } : (map {16} @fields); my @maxl = $opt{'maxl'} ? @{ $opt{'maxl'} } : @size; my @align = $opt{'align'} ? @{ $opt{'align'} } : (map {'right'} @fields); - +my @select = @{ $opt{'select'} || [] }; +foreach (0..scalar(@fields)-1) { + $select[$_] ||= []; +}