-if ( $cgi->param('error') ) {
- $cgi->param('taxnum') =~ /^([\d,]+)$/
- or die "no taxnum, but error: ". $cgi->param('error');
- @taxnum = split(',', $1);
-} else {
- my($query) = $cgi->keywords;
- $query =~ /^([\d,]+)$/
- or die 'Nothing selected'; #XXX better error when nothing selected
- @taxnum = split(',', $1);
+$cgi->param('taxnum') =~ /^([\d,]+)$/
+ or $m->comp('/elements/errorpage-popup.html', $cgi->param('error') || 'Nothing selected');
+my @taxnum = split(',', $1);
+
+$cgi->param('action') =~ /^(add|edit|edit_rate_only)$/ or die "unknown action";
+my $action = $1;
+my $rate_only;
+if ($action eq "edit_rate_only") {
+ $action = "edit";
+ $rate_only = 1;