diff options
author | ivan <ivan> | 2008-03-29 08:15:45 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-03-29 08:15:45 +0000 |
commit | 3f23bdfaef8eb6bb092b72ea741b63e243f8ab19 (patch) | |
tree | 38afeaebc98c09ae571c3ed4193d7a97cb54dac0 | |
parent | ca292755ee3fc2027707b046352414e06ad45584 (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.html | 3 | ||||
-rwxr-xr-x | httemplate/elements/tr-select-reason.html | 44 | ||||
-rw-r--r-- | httemplate/misc/cancel_cust.html | 24 | ||||
-rw-r--r-- | httemplate/misc/order_pkg.html | 10 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages.html | 1 |
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', } ) } |