Druckeradministration in die Adminumgebung verschoben.
[kivitendo-erp.git] / bin / mozilla / admin_printer.pl
1 use strict;
2
3 use SL::Printer;
4
5 sub get_login {
6   unless ($::form->{login}) {
7     get_login_form();
8     ::end_of_request();
9   }
10   return $::form->{login};
11 }
12
13 sub get_login_form {
14   my %users = $::auth->read_all_users;
15
16   $::form->header;
17   print $::form->parse_html_template('admin_printer/login', {
18     users => [ values %users ],
19   });
20 }
21
22 sub printer_dispatcher {
23       $::lxdebug->dump(0,  "testing", $::form);
24   for (qw(get_login_form list_printers add_printer edit_printer save_printer delete_printer list_users)) {
25     if ($::form->{$_}) {
26       ::call_sub($::locale->findsub($_));
27       ::end_of_request()
28     }
29   }
30   die "cannot find sub";
31 }
32
33 sub printer_management {
34   &list_printers;
35 }
36
37 sub add_printer {
38   $::lxdebug->enter_sub;
39
40   my $login   = get_login();
41   my %users   = $::auth->read_all_users;
42
43   $::form->header;
44   print $::form->parse_html_template('admin_printer/edit', {
45     title   => $::locale->text("Add Printer"),
46     printer => { },
47     users   => [ values %users ],
48   });
49
50   $::lxdebug->leave_sub
51 }
52
53 sub edit_printer {
54   $::lxdebug->enter_sub;
55
56   my $login = get_login();
57   my $id    = $::form->{id} or $::form->{printer}{id} or &add_printer;
58   my %users   = $::auth->read_all_users;
59
60   my $printer = SL::Printer->get_printer(id => $id, login => $login);
61
62   $::form->header;
63   print $::form->parse_html_template('admin_printer/edit', {
64     title   => $::locale->text("Edit Printer"),
65     printer => $printer,
66     users   => [ values %users ],
67   });
68
69   $::lxdebug->leave_sub;
70 }
71
72 sub list_printers {
73   $::lxdebug->enter_sub;
74
75   my $login    = get_login();
76   my $printers = SL::Printer->all_printers(login => $login);
77   my %users   = $::auth->read_all_users;
78
79   $::form->header;
80   print $::form->parse_html_template('admin_printer/list', {
81     title        => $::locale->text('Printer'),
82     all_printers => $printers,
83     edit_link    => build_std_url("login=$login", 'action=edit_printer', 'id='),
84     users        => [ values %users ],
85   });
86
87   $::lxdebug->leave_sub;
88 }
89
90
91 sub save_printer {
92   $::lxdebug->enter_sub;
93
94   my $login   = get_login();
95   my $printer = $::form->{printer} || die 'no printer to save';
96
97   $::form->error($::locale->text('Description missing!'))     unless $printer->{printer_description};
98   $::form->error($::locale->text('Printer Command missing!')) unless $printer->{printer_command};
99
100   SL::Printer->save_printer(%$::form);
101
102   list_printers();
103   $::lxdebug->leave_sub;
104 }
105
106 sub delete_printer {
107   $::lxdebug->enter_sub;
108
109   my $login   = get_login();
110   my $printer = $::form->{printer} || die 'no printer to delete';
111
112   SL::Printer->delete_printer(%$::form);
113   list_printers();
114
115   $::lxdebug->leave_sub;
116 }
117
118 1;