if (!$form->{draft_id} && !$form->{draft_description}) {
restore_form($form->{SAVED_FORM}, 1) if ($form->{SAVED_FORM});
delete($form->{SAVED_FORM});
+ $form->{remove_draft} = 1;
$form->{SAVED_FORM} = save_form();
$form->header();
my $draft_nextsub = $form->{draft_nextsub};
$draft_nextsub = "add" unless ($form->{draft_nextsub});
restore_form($form->{SAVED_FORM}, 1);
+ delete($form->{SAVED_FORM});
delete($form->{action});
$form->{DONT_LOAD_DRAFT} = 1;
- &{ $draft_nextsub }();
+ call_sub($draft_nextsub);
$lxdebug->leave_sub();
}
$lxdebug->leave_sub();
}
+sub delete_drafts {
+ $lxdebug->enter_sub();
+
+ my @ids;
+ foreach (keys(%{$form})) {
+ push(@ids, $1) if (/^checked_(.*)/ && $form->{$_});
+ }
+ Drafts->remove(\%myconfig, $form, @ids) if (@ids);
+ restore_form($form->{SAVED_FORM}, 1);
+ delete($form->{SAVED_FORM});
+
+ add();
+
+ $lxdebug->leave_sub();
+}
+
+sub draft_action_dispatcher {
+ $lxdebug->enter_sub();
+
+ if ($form->{draft_action} eq $locale->text("Skip")) {
+ dont_load_draft();
+ } elsif ($form->{draft_action} eq $locale->text("Delete drafts")) {
+ delete_drafts();
+ }
+
+ $lxdebug->leave_sub();
+}
+
1;