Das Löschen von $form-Variablen im Watchdog ebenfalls abfangen und überwachen.
[kivitendo-erp.git] / SL / Drafts.pm
index 2ff3df8..a4d4dc6 100644 (file)
@@ -53,7 +53,7 @@ sub save {
     do_query($form, $dbh, $query, $draft_id, $module, $submodule);
   }
 
-  @dont_save = qw(login password path action);
+  @dont_save = qw(login password action);
   map({ $saved{$_} = $form->{$_};
         delete($form->{$_}); } @dont_save);
   $dumped = YAML::Dump($form);
@@ -96,7 +96,7 @@ sub load {
   }
   $sth->finish();
 
-  do_query($form, $dbh, "DELETE FROM drafts WHERE id = ?", $draft_id);
+#  do_query($form, $dbh, "DELETE FROM drafts WHERE id = ?", $draft_id);
 
   $dbh->disconnect();
 
@@ -108,16 +108,17 @@ sub load {
 sub remove {
   $main::lxdebug->enter_sub();
 
-  my ($self, $myconfig, $form, $draft_id) = @_;
+  my ($self, $myconfig, $form, @draft_ids) = @_;
 
-  return $main::lxdebug->leave_sub() unless ($draft_id);
+  return $main::lxdebug->leave_sub() unless (@draft_ids);
 
-  my ($dbh, $sth, $query, @values);
+  my ($dbh, $sth, $query);
 
   $dbh = $form->dbconnect($myconfig);
 
-  $query = qq|DELETE FROM drafts WHERE id = ?|;
-  do_query($form, $dbh, $query, $draft_id);
+  $query = qq|DELETE FROM drafts WHERE id IN (| .
+    join(", ", map({ "?" } @draft_ids)) . qq|)|;
+  do_query($form, $dbh, $query, @draft_ids);
 
   $dbh->disconnect();