diff options
author | ivan <ivan> | 2009-01-24 21:04:17 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-01-24 21:04:17 +0000 |
commit | 6c4d9632f4d5cd1164ab9183932fbdf9137945aa (patch) | |
tree | 78c627ac8f58231decd7a3f3e1e4df0dc2f6f62a | |
parent | a288c2733ae05f04af707133671e79f32efd9eb2 (diff) |
add domain selection to advanced account report (side effect on RT#4623)
-rw-r--r-- | httemplate/elements/select-domain.html | 13 | ||||
-rw-r--r-- | httemplate/elements/select-table.html | 47 | ||||
-rw-r--r-- | httemplate/elements/tr-select-domain.html | 12 | ||||
-rwxr-xr-x | httemplate/search/report_svc_acct.html | 13 | ||||
-rwxr-xr-x | httemplate/search/svc_acct.cgi | 3 |
5 files changed, 74 insertions, 14 deletions
diff --git a/httemplate/elements/select-domain.html b/httemplate/elements/select-domain.html new file mode 100644 index 000000000..a9998da06 --- /dev/null +++ b/httemplate/elements/select-domain.html @@ -0,0 +1,13 @@ +<% include( '/elements/select-table.html', + 'table' => 'svc_domain', + 'name_col' => 'domain', + 'empty_label' => 'all', + 'addl_from' => ' LEFT JOIN cust_svc USING ( svcnum ) '. + #' LEFT JOIN part_svc USING ( svcpart ) '. + ' LEFT JOIN cust_pkg USING ( pkgnum ) '. + ' LEFT JOIN cust_main USING ( custnum ) ', + 'agent_virt' => 1, + 'agent_null-right' => 'View/link unlinked services', + @_, + ) +%> diff --git a/httemplate/elements/select-table.html b/httemplate/elements/select-table.html index d24c9abe4..32a61e989 100644 --- a/httemplate/elements/select-table.html +++ b/httemplate/elements/select-table.html @@ -4,7 +4,9 @@ Example: include( '/elements/select-table.html', - #required + ## + # required + ## 'table' => 'table_name', 'name_col' => 'name_column', @@ -12,24 +14,42 @@ Example: 'curr_value' => 'current_value', #'value' => #deprecated form of 'curr_value', - #opt - 'empty_label' => '', #better specify it though, the default might change - 'hashref' => {}, - 'extra_sql' => '', - 'records' => \@records, #instead of hashref + ## + # optional + ## + + #search params + 'hashref' => {}, + 'addl_from' => '', + 'extra_sql' => '', + 'agent_virt' => 0, #set true and make sure the result is JOINed to + #something with agentnum (usually cust_main) + 'agent_null_right' => '', #right to see un-agented entries + #or + 'records' => \@records, #instead of search params + + #basic params controlling the resulting <SELECT> 'pre_options' => [ 'value' => 'option' ], #before normal options + 'empty_label' => '', #better specify it though, the default might change + 'multiple' => 0, # bool + 'disable_empty' => 0, # bool (implied by multiple) + 'label_callback' => sub { my $record = shift; return "label"; }, + + #more params controlling HTML stuff about the <SELECT> 'element_name' => '', #HTML element name, defaults to the name of # the primary key column 'field' => '', #synonym for element_name 'element_etc' => '', #additional attributes (i.e. "DISABLED") for the #<SELECT> element 'onchange' => '', #javascript code - 'multiple' => 0, # bool - 'disable_empty' => 0, # bool (implied by multiple) - 'debug' => 0, #set true to enable - 'label_callback' => sub { my $record = shift; return "label"; }, + + #special return options 'js_only' => 0, #set true to return only the JS portions (i.e. nothing) 'html_only' => 0, #set true to return only the HTML portions (no-op, i.e. return everything) + + #debugging + 'debug' => 0, #set true to enable + ) </%doc> @@ -92,8 +112,9 @@ my $name_col = $opt{'name_col'}; my $value = $opt{'curr_value'} || $opt{'value'}; $value = [ split(/\s*,\s*/, $value) ] if $opt{'multiple'} && $value =~ /,/; +#my $addl_from = $opt{'addl_from'} || ''; my $extra_sql = $opt{'extra_sql'} || ''; -my $hashref = $opt{'hashref'} || {}; +my $hashref = $opt{'hashref'} || {}; if ( $opt{'agent_virt'} ) { $extra_sql .= @@ -109,6 +130,7 @@ if ( $opt{'records'} ) { } else { @records = qsearch( { 'table' => $opt{'table'}, + 'addl_from' => $opt{'addl_from'}, 'hashref' => $hashref, 'extra_sql' => $extra_sql, 'order_by' => ( $opt{'order_by'} || "ORDER BY $name_col" ), @@ -124,8 +146,9 @@ unless ( ! $value $opt{hashref}->{$key} = $value; my $record = qsearchs( { 'table' => $opt{table}, + 'addl_from' => $opt{'addl_from'}, 'hashref' => $hashref, - 'extra_sql' => ( $opt{extra_sql} || '' ), + 'extra_sql' => $extra_sql, }); push @records, $record if $record; } diff --git a/httemplate/elements/tr-select-domain.html b/httemplate/elements/tr-select-domain.html new file mode 100644 index 000000000..5b8d23771 --- /dev/null +++ b/httemplate/elements/tr-select-domain.html @@ -0,0 +1,12 @@ +% #if ( scalar(@domains) < 2 ) { +% #} else { + <TR> + <TD ALIGN="right"><% $opt{'label'} || 'Domain' %></TD> + <TD> + <% include( '/elements/select-domain.html', %opt) %> + </TD> + </TR> +% #} +<%init> + my %opt = @_; +</%init> diff --git a/httemplate/search/report_svc_acct.html b/httemplate/search/report_svc_acct.html index e76325160..59fd1f8b3 100755 --- a/httemplate/search/report_svc_acct.html +++ b/httemplate/search/report_svc_acct.html @@ -8,12 +8,21 @@ <TR> <TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left"><FONT SIZE="+1">Search options</FONT></TH> </TR> + <% include( '/elements/tr-select-agent.html', - 'curr_value' => scalar($cgi->param('agentnum')), + 'curr_value' => scalar( $cgi->param('agentnum') ), 'disable_empty' => 0, - ) + ) %> + <% include( '/elements/tr-select-domain.html', + 'element_name' => 'domsvc', + 'curr_value' => scalar( $cgi->param('domsvc') ), + 'disable_empty' => 0, + ) + %> + + <SCRIPT type="text/javascript"> function toggle(what) { label = document.getElementById (what + '_label'); diff --git a/httemplate/search/svc_acct.cgi b/httemplate/search/svc_acct.cgi index d8451f210..232439997 100755 --- a/httemplate/search/svc_acct.cgi +++ b/httemplate/search/svc_acct.cgi @@ -83,6 +83,9 @@ if ( $cgi->param('domain') ) { push @extra_sql, 'domsvc = '. $svc_domain->svcnum; } } +if ( $cgi->param('domsvc') =~ /^(\d+)$/ ) { + push @extra_sql, "domsvc = $1"; +} my $timepermonth = ''; |