1 #======================================================================
 
   4 #======================================================================
 
   6 # Saving and loading drafts
 
   8 #======================================================================
 
  12 require "bin/mozilla/common.pl";
 
  15   $lxdebug->enter_sub();
 
  17   if (!$form->{draft_id} && !$form->{draft_description}) {
 
  18     restore_form($form->{SAVED_FORM}, 1) if ($form->{SAVED_FORM});
 
  19     delete($form->{SAVED_FORM});
 
  20     $form->{remove_draft} = 1;
 
  21     $form->{SAVED_FORM} = save_form();
 
  24     print($form->parse_html_template("drafts/save_new"));
 
  25     return $lxdebug->leave_sub();
 
  28   my ($draft_id, $draft_description) =
 
  29     ($form->{draft_id}, $form->{draft_description});
 
  31   restore_form($form->{SAVED_FORM}, 1);
 
  32   delete($form->{SAVED_FORM});
 
  34   Drafts->save(\%myconfig, $form, $draft_id, $draft_description);
 
  36   $form->{saved_message} = $locale->text("Draft saved.");
 
  40   $lxdebug->leave_sub();
 
  44   $lxdebug->enter_sub();
 
  46   Drafts->remove(\%myconfig, $form, $form->{draft_id}) if ($form->{draft_id});
 
  48   delete($form->{draft_id});
 
  49   delete($form->{draft_description});
 
  51   $lxdebug->leave_sub();
 
  54 sub load_draft_maybe {
 
  55   $lxdebug->enter_sub();
 
  57   $lxdebug->leave_sub() and return 0 if ($form->{DONT_LOAD_DRAFT});
 
  59   my ($draft_nextsub) = @_;
 
  61   my @drafts = Drafts->list(\%myconfig, $form);
 
  63   $lxdebug->leave_sub() and return 0 unless (@drafts);
 
  65   $draft_nextsub = "add" unless ($draft_nextsub);
 
  67   delete($form->{action});
 
  68   my $saved_form = save_form();
 
  71   print($form->parse_html_template("drafts/load",
 
  72                                    { "DRAFTS" => \@drafts,
 
  73                                      "SAVED_FORM" => $saved_form,
 
  74                                      "draft_nextsub" => $draft_nextsub }));
 
  76   $lxdebug->leave_sub();
 
  82   $lxdebug->enter_sub();
 
  84   my $draft_nextsub = $form->{draft_nextsub};
 
  85   $draft_nextsub = "add" unless ($form->{draft_nextsub});
 
  86   restore_form($form->{SAVED_FORM}, 1);
 
  87   delete($form->{SAVED_FORM});
 
  88   delete($form->{action});
 
  89   $form->{DONT_LOAD_DRAFT} = 1;
 
  91   &{ $draft_nextsub }();
 
  93   $lxdebug->leave_sub();
 
  97   $lxdebug->enter_sub();
 
  99   my ($old_form, $id, $description) = Drafts->load(\%myconfig, $form, $form->{id});
 
 101     restore_form($old_form, 1);
 
 102     $form->{draft_id} = $id;
 
 103     $form->{draft_description} = $description;
 
 104     $form->{remove_draft} = 'checked';
 
 109   $lxdebug->leave_sub();
 
 113   $lxdebug->enter_sub();
 
 116   foreach (keys(%{$form})) {
 
 117     push(@ids, $1) if (/^checked_(.*)/ && $form->{$_});
 
 119   Drafts->remove(\%myconfig, $form, @ids) if (@ids);
 
 120   restore_form($form->{SAVED_FORM}, 1);
 
 121   delete($form->{SAVED_FORM});
 
 125   $lxdebug->leave_sub();
 
 128 sub draft_action_dispatcher {
 
 129   $lxdebug->enter_sub();
 
 131   if ($form->{draft_action} eq $locale->text("Skip")) {
 
 133   } elsif ($form->{draft_action} eq $locale->text("Delete drafts")) {
 
 137   $lxdebug->leave_sub();