summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2008-03-29 08:15:45 +0000
committerivan <ivan>2008-03-29 08:15:45 +0000
commit3f23bdfaef8eb6bb092b72ea741b63e243f8ab19 (patch)
tree38afeaebc98c09ae571c3ed4193d7a97cb54dac0
parentca292755ee3fc2027707b046352414e06ad45584 (diff)
okay. and thank goodness its on 1.9. really fix error reporting on quick package order this time. have to change cust cancel popup slightly too, but its for the better (easier custnum parsing). and lastly make it easier for reason selection to be reused without stickiness-on-errors being a big pain in the ass
-rw-r--r--httemplate/elements/popup_link-cust_main.html3
-rwxr-xr-xhttemplate/elements/tr-select-reason.html44
-rw-r--r--httemplate/misc/cancel_cust.html24
-rw-r--r--httemplate/misc/order_pkg.html10
-rwxr-xr-xhttemplate/view/cust_main/packages.html1
5 files changed, 61 insertions, 21 deletions
diff --git a/httemplate/elements/popup_link-cust_main.html b/httemplate/elements/popup_link-cust_main.html
index 3b1363f49..a927f39f2 100644
--- a/httemplate/elements/popup_link-cust_main.html
+++ b/httemplate/elements/popup_link-cust_main.html
@@ -41,7 +41,8 @@ if (ref(@_[0]) eq 'HASH') {
($action, $label, $actionlabel, $color, $cust_main) = @_;
}
-$action .= '?'. $cust_main->custnum;
+$action .= ( $action =~ /\?/ ) ? ';' : '?';
+$action .= 'custnum='. $cust_main->custnum;
</%init>
<% $cust_main
diff --git a/httemplate/elements/tr-select-reason.html b/httemplate/elements/tr-select-reason.html
index 4051e7d20..d85538f0c 100755
--- a/httemplate/elements/tr-select-reason.html
+++ b/httemplate/elements/tr-select-reason.html
@@ -1,3 +1,34 @@
+<%doc>
+
+Example:
+
+ include( '/elements/tr-select-reason.html',
+
+ #required
+ 'field' => 'reasonnum',
+ 'reason_class' => 'C', # currently 'C', 'R', or 'S'
+ # for cancel, credit, or suspend
+
+ #recommended
+ 'cgi' => $cgi, #easiest way for things to be properly "sticky" on errors
+
+ #optional
+ 'control_button' => 'element_name', #button to be enabled when a reason is
+ #selected
+ 'id' => 'element_id',
+
+ #deprecated ways to keep things "sticky" on errors
+ # (requires duplicate code in each using file to parse cgi params)
+ 'curr_value' => $curr_value,
+ 'curr_value' => {
+ 'typenum' => $typenum,
+ 'reason' => $reason,
+ },
+
+ )
+
+</%doc>
+
<SCRIPT TYPE="text/javascript">
function sh_add<% $func_suffix %>()
{
@@ -36,7 +67,7 @@
<TD ALIGN="right">Reason</TD>
<TD>
<SELECT id="<% $id %>" name="<% $name %>" onFocus="sh_add<% $func_suffix %>()" onChange="sh_add<% $func_suffix %>()">
- <OPTION VALUE="" <% ($init_reason eq "") ? 'SELECTED' : '' %>>Select Reason...</OPTION>
+ <OPTION VALUE="" <% ($init_reason eq '') ? 'SELECTED' : '' %>>Select Reason...</OPTION>
% foreach my $reason (@reasons) {
<OPTION VALUE="<% $reason->reasonnum %>" <% ($init_reason == $reason->reasonnum) ? 'SELECTED' : '' %>><% $reason->reasontype->type %> : <% $reason->reason %></OPTION>
% }
@@ -95,7 +126,13 @@ my %opt = @_;
my $name = $opt{'field'};
my $class = $opt{'reason_class'};
-my $init_reason = $opt{'curr_value'};
+
+my $init_reason;
+if ( $opt{'cgi'} ) {
+ $init_reason = $opt{'cgi'}->param($name);
+} else {
+ $init_reason = $opt{'curr_value'};
+}
my $controlledbutton = $opt{'control_button'};
@@ -128,6 +165,9 @@ if ($init_reason == -1 || ref($init_reason) ) {
$init_type = $init_reason->{'typenum'};
$init_newreason = $init_reason->{'reason'};
$init_reason = -1;
+ } elsif ( $opt{'cgi'} ) {
+ $init_type = $opt{'cgi'}->param( "new${name}T" );
+ $init_newreason = $opt{'cgi'}->param( "new$name" );
}
}
diff --git a/httemplate/misc/cancel_cust.html b/httemplate/misc/cancel_cust.html
index bb4e1904a..74362f862 100644
--- a/httemplate/misc/cancel_cust.html
+++ b/httemplate/misc/cancel_cust.html
@@ -17,8 +17,7 @@
<% include('/elements/tr-select-reason.html',
'field' => 'reasonnum',
'reason_class' => 'C',
- #XXX these need to be sticky on errors too...
- #'curr_value' => '',
+ 'cgi' => $cgi,
'control_button' => 'document.cust_cancel_popup.submit',
)
%>
@@ -35,24 +34,21 @@
<%init>
-my($custnum, $reasonnum, $submit, $cust_main, $curuser, $class);
+my $reasonnum = '';
+my($submit, $class);
+
+$cgi->param('custnum') =~ /^(\d+)$/ or die 'illegal custnum';
+my $custnum = $1;
+
if ( $cgi->param('error') ) {
- $custnum = $cgi->param('custnum');
- $reasonnum = $cgi->param('reasonnum');
-} else {
- my( $query ) = $cgi->keywords;
- if ( $query =~ /^(\d+)$/ ) {
- $custnum = $1;
- } else {
- die "illegal query ". $cgi->keywords;
- }
+ $reasonnum = $cgi->param('reasonnum');
}
-$curuser = $FS::CurrentUser::CurrentUser;
+my $curuser = $FS::CurrentUser::CurrentUser;
die "access denied" unless $curuser->access_right('Cancel customer');
-$cust_main = qsearchs( {
+my $cust_main = qsearchs( {
'table' => 'cust_main',
'hashref' => { 'custnum' => $custnum },
'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
diff --git a/httemplate/misc/order_pkg.html b/httemplate/misc/order_pkg.html
index 05cd99cc5..f4f297140 100644
--- a/httemplate/misc/order_pkg.html
+++ b/httemplate/misc/order_pkg.html
@@ -10,6 +10,8 @@ function enable_order_pkg () {
}
</SCRIPT>
+<% include('/elements/error.html') %>
+
<FORM NAME="OrderPkgForm" ACTION="<% $p %>edit/process/quick-cust_pkg.cgi" METHOD="POST">
<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $cust_main->custnum %>">
@@ -19,8 +21,9 @@ function enable_order_pkg () {
<TH ALIGN="right">Package</TH>
<TD>
<% include('/elements/select-cust-part_pkg.html',
- 'cust_main' => $cust_main,
- 'onchange' => 'enable_order_pkg',
+ 'curr_value' => scalar( $cgi->param('pkgpart') ),
+ 'cust_main' => $cust_main,
+ 'onchange' => 'enable_order_pkg',
)
%>
</TD>
@@ -50,8 +53,7 @@ die "access denied"
my $conf = new FS::Conf;
-my($query) = $cgi->keywords;
-$query =~ /^(\d+)$/;
+$cgi->param('custnum') =~ /^(\d+)$/;
my $custnum = $1;
my $cust_main = qsearchs({
'table' => 'cust_main',
diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html
index 0f1d608aa..ec79c0814 100755
--- a/httemplate/view/cust_main/packages.html
+++ b/httemplate/view/cust_main/packages.html
@@ -591,6 +591,7 @@ sub order_pkg_link { include( '/elements/popup_link-cust_main.html',
'actionlabel' => 'Order new package',
'color' => '#333399',
'cust_main' => shift,
+ 'closetext' => 'Close',
}
)
}