my ($new_item, $callback_sub);
- my $re = "^new_.*_" . $form->{selection};
+ my $re = "^new_.*_$form->{selection}\$";
foreach (grep /$re/, keys %{ $form }) {
my $new_key = $_;
$order_dir = 1;
$order_dir = $form->{"order_dir"} if (defined($form->{"order_dir"}));
- %options = map { $_ => 1 } split m/:/, $form->{options};
+ my %options;
- map { $form->{$_} = 1 if ($options{$_}) } qw(no_services no_assemblies stockable);
+ foreach my $opt (split m/:/, $form->{options}) {
+ if ($opt =~ /=/) {
+ my ($key, $value) = split m/=/, $opt, 2;
+ $options{$key} = $value;
+
+ } else {
+ $options{$opt} = 1;
+ }
+ }
+
+ map { $form->{$_} = $options{$_} if ($options{$_}) } qw(no_services no_assemblies assemblies click_button);
$parts = Common->retrieve_parts(\%myconfig, $form, $order_by, $order_dir);
},
@header_sort);
+ $form->{formname} ||= 'Form';
+
$form->{title} = $locale->text("Select a part");
$form->header();
print $form->parse_html_template("generic/part_selection", { "HEADER" => \@header,
# -------------------------------------------------------------------------
sub H {
- return $form->quote_html($_[0]);
+ return $locale->quote_special_chars('HTML', $_[0]);
}
sub Q {
- return $form->quote($_[0]);
+ return $locale->quote_special_chars('URL@HTML', $_[0]);
}
sub E {
} else {
my $referer = $ENV{HTTP_REFERER};
- $referer =~ s/^(.*)action\=.*\&(.*)$/$1action\=mark_as_paid\&mark_as_paid\=1\&id\=$form->{id}\&$2/;
+ if ($referer =~ /action/) {
+ $referer =~ /^(.*)\?action\=[^\&]*(\&.*)$/;
+ $script = $1;
+ $callback = $2;
+ } else {
+ $script = $referer;
+ $callback = "";
+ }
+ $referer = $script . "?action=mark_as_paid&mark_as_paid=1&id=$form->{id}" . $callback;
$form->header();
print qq|<body>|;
print qq|<p><b>|.$locale->text('Mark as paid?').qq|</b></p>|;