X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fcheckboxes-table.html;h=96d13033374be0524c292ad13bd5331a966d98a2;hp=cdfa58eca4c67462386d458333c62044fa441035;hb=37e92c220a54636ebc7900cd59ec6ce56790ede8;hpb=3ce7691203a7737406bf2d4442f7fd84b81f847e diff --git a/httemplate/elements/checkboxes-table.html b/httemplate/elements/checkboxes-table.html index cdfa58eca..96d130333 100644 --- a/httemplate/elements/checkboxes-table.html +++ b/httemplate/elements/checkboxes-table.html @@ -28,9 +28,9 @@ % my $target_pkey = dbdef->table($opt{'target_table'})->primary_key; % % my( $source_pkey, $sourcenum, $source_obj ); -% if ( $opt{'source_obj'} ) { +% if ( $opt{'source_obj'} || $opt{'object'} ) { % -% $source_obj = $opt{'source_obj'}; +% $source_obj = $opt{'source_obj'} || $opt{'object'}; % #$source_table = $source_obj->dbdef_table->table; % $source_pkey = $source_obj->dbdef_table->primary_key; % $sourcenum = $source_obj->$source_pkey(); @@ -46,13 +46,19 @@ % % my $hashref = $opt{'hashref'} || {}; % -% my $extra_sql = ''; +% my $extra_sql = $opt{'extra_sql'} || ''; +% +% if ( $opt{'agent_virt'} ) { +% $extra_sql .= ' AND' . $FS::CurrentUser::CurrentUser->agentnums_sql( +% 'null_right' => $opt{'agent_null_right'} +% ); +% } % % if ( $opt{'disable-able'} ) { % $hashref->{'disabled'} = ''; % % $extra_sql .= ( $sourcenum && $source_pkey ) -% ? "OR $source_pkey = $sourcenum" +% ? " OR $source_pkey = $sourcenum" % : ''; % } % @@ -63,6 +69,7 @@ % 'select' => $opt{'target_table'}. '.*', % 'addl_from' => "LEFT JOIN $opt{'link_table'} USING ( $target_pkey )", % 'extra_sql' => $extra_sql, +% 'order_by' => $opt{'order_by'}, % }) % ) { % @@ -75,6 +82,14 @@ % ? 'CHECKED' % : ''; % +% } elsif ( !$sourcenum ) { # newly created object, has no links yet +% +% if ( ref($opt{'default'}) ) { +% $checked = $opt{'default'}->{$targetnum} ? 'CHECKED' : ''; +% } else { +% $checked = $opt{'default'} ? 'CHECKED' : '' +% } +% % } else { % % $checked = qsearchs( $opt{'link_table'}, { @@ -86,19 +101,23 @@ % % } % -% +% ### use name sent to function else use target table and key. +% my $checkbox_name; +% if ($opt{'field'}) { $checkbox_name = $opt{'field'}; } else { $checkbox_name = "$target_pkey$targetnum"; } - VALUE="ON"> -% if ( $opt{'target_link'} ) { - +% ### use values sent to function rather than values in table to determine CHECKED if values are sent. +% my $values; +% if (ref $opt{'value'} eq ref {} ) { $values = $opt{'value'}; } +% else { foreach my $value ( split(/\,/, $opt{'value'}) ) { $values->{$value} = $value; } } +% if ($values->{$targetnum}) { $checked = "CHECKED"; } +% my $color_col = $opt{'color_col'}; + VALUE="<% $targetnum %>">
+% if ( $opt{'target_link'} ) { -% -% % } % -<% $targetnum %>: % if ( $opt{'name_callback'} ) { @@ -108,7 +127,7 @@ % - <% $target_obj->$name_col() %><% $opt{'target_link'} ? '' : '' %> + <% $target_obj->$name_col() %>
<% $opt{'target_link'} ? '' : '' %> % } % if ( $opt{'disable-able'} ) {