Jeden DATEV-Export in ein eigenes, eindeutig benanntes Verzeichnis schreiben, damit...
[kivitendo-erp.git] / bin / mozilla / common.pl
index f3fc1e8..1bd92dc 100644 (file)
@@ -91,7 +91,7 @@ sub select_part_internal {
 
   my ($new_item, $callback_sub);
 
-  my $re = "^new_.*_" . $form->{selection};
+  my $re = "^new_.*_$form->{selection}\$";
 
   foreach (grep /$re/, keys %{ $form }) {
     my $new_key           =  $_;
@@ -139,7 +139,7 @@ sub part_selection_internal {
     }
   }
 
-  map { $form->{$_} = $options{$_} if ($options{$_}) } qw(no_services no_assemblies click_button);
+  map { $form->{$_} = $options{$_} if ($options{$_}) } qw(no_services no_assemblies assemblies click_button);
 
   $parts = Common->retrieve_parts(\%myconfig, $form, $order_by, $order_dir);
 
@@ -328,11 +328,11 @@ sub set_longdescription {
 # -------------------------------------------------------------------------
 
 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 {
@@ -515,7 +515,15 @@ sub mark_as_paid_common {
 
   } 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>|;