summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorivan <ivan>2009-01-24 21:04:17 +0000
committerivan <ivan>2009-01-24 21:04:17 +0000
commit6c4d9632f4d5cd1164ab9183932fbdf9137945aa (patch)
tree78c627ac8f58231decd7a3f3e1e4df0dc2f6f62a /httemplate
parenta288c2733ae05f04af707133671e79f32efd9eb2 (diff)
add domain selection to advanced account report (side effect on RT#4623)
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/elements/select-domain.html13
-rw-r--r--httemplate/elements/select-table.html47
-rw-r--r--httemplate/elements/tr-select-domain.html12
-rwxr-xr-xhttemplate/search/report_svc_acct.html13
-rwxr-xr-xhttemplate/search/svc_acct.cgi3
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 = '';