Rückwärtskompatibilität mit in der Datenbank gespeicherten Entwürfen, bei denen noch...
[kivitendo-erp.git] / SL / MoreCommon.pm
1 package SL::MoreCommon;
2
3 require Exporter;
4 @ISA = qw(Exporter);
5
6 @EXPORT = qw(save_form restore_form);
7
8 use YAML;
9
10 sub save_form {
11   $main::lxdebug->enter_sub();
12
13   my $old_form = YAML::Dump($main::form);
14   $old_form =~ s|!|!:|g;
15   $old_form =~ s|\n|!n|g;
16   $old_form =~ s|\r|!r|g;
17
18   $main::lxdebug->leave_sub();
19
20   return $old_form;
21 }
22
23 sub restore_form {
24   $main::lxdebug->enter_sub();
25
26   my ($old_form, $no_delete) = @_;
27
28   my $form = $main::form;
29
30   map { delete $form->{$_}; } keys %{$form} unless ($no_delete);
31
32   $old_form =~ s|!r|\r|g;
33   $old_form =~ s|!n|\n|g;
34   $old_form =~ s|![!:]|!|g;
35
36   my $new_form = YAML::Load($old_form);
37   map { $form->{$_} = $new_form->{$_}; } keys %{$new_form};
38
39   $main::lxdebug->leave_sub();
40 }
41
42 1;