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 = '';  | 
