X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Ftr-select-table.html;h=2e62d871749f2254f08ca15f570d4a67b297eb2d;hp=6ac7487826ed6d084e48334d5569df6e2368be3b;hb=f48ffc61601d08024aeff19ecd07d7420fc4e5b3;hpb=63a268637b2d51a8766412617724b9436439deb6 diff --git a/httemplate/elements/tr-select-table.html b/httemplate/elements/tr-select-table.html index 6ac748782..2e62d8717 100644 --- a/httemplate/elements/tr-select-table.html +++ b/httemplate/elements/tr-select-table.html @@ -1,3 +1,16 @@ +<%doc> + +Example: + + <& /elements/tr-select-table, + + 'add_inline' => 0, #enable "on the fly" adding + + #options passed to tr-td-label.html and select-$table.html (or + #select-table.html if that does not exist) + &> + + % unless ( $opt{'js_only'} ) { <% include('tr-td-label.html', @_ ) %> @@ -5,16 +18,88 @@ > % } - <% include( '/elements/select-table.html', %opt ) %> +% my $element = '/elements/select-'.$opt{table}.'.html'; +% if ( $m->interp->comp_exists($element) ) { + <& $element, %opt &> +% } else { + <& /elements/select-table.html, %opt &> +% } % unless ( $opt{'js_only'} ) { % } + +% if ( $opt{'add_inline'} ) { + +% foreach my $add_field ( @{ $opt{'add_fields'} } ) { +% my $label = scalar(@{ $opt{'add_fields'} }) > 1 +% ? $add_field : $opt{'label'}; + + <& /elements/tr-input-text.html, + 'label' => "New $label", + 'field' => $field."_$add_field", + 'id' => $field."_$add_field", + 'colspan' => $opt{'colspan'}, + &> + +% } + + +% unless ( $opt{'html_only'} ) { + + + +% } + +% } + <%init> my( %opt ) = @_; my $style = $opt{'cell_style'} ? 'STYLE="'. $opt{'cell_style'}. '"' : ''; +my $curuser = $FS::CurrentUser::CurrentUser; + +my $field = ''; +if ( $opt{'add_inline'} && $curuser->access_right($opt{'add_right'}) ) { + + push @{ $opt{'post_options'} }, '-1' => 'Add new '. lc($opt{'label'}); + + $field = $opt{'field'} || dbdef->table($opt{'table'})->primary_key; + + my $onchange = ( $opt{'onchange'} ? delete($opt{'onchange'}).';' : '' ). + $field.'_changed(this);'; + $opt{'onchange'} = $onchange; + +} +