Projekt

Allgemein

Profil

Herunterladen (2,57 KB) Statistiken
| Zweig: | Markierung: | Revision:
use strict;

use SL::Printer;

sub get_login {
unless ($::form->{login}) {
get_login_form();
::end_of_request();
}
return $::form->{login};
}

sub get_login_form {
my %users = $::auth->read_all_users;

$::form->header;
print $::form->parse_html_template('admin_printer/login', {
users => [ values %users ],
});
}

sub printer_dispatcher {
for my $action (qw(get_login_form list_printers add_printer edit_printer save_printer delete_printer list_users)) {
if ($::form->{$action}) {
::call_sub($::locale->findsub($action));
::end_of_request()
}
}
die "cannot find sub";
}

sub printer_management {
&get_login_form;
}

sub add_printer {
$::lxdebug->enter_sub;

my $login = get_login();
my %users = $::auth->read_all_users;

$::form->header;
print $::form->parse_html_template('admin_printer/edit', {
title => $::locale->text("Add Printer"),
printer => { },
users => [ values %users ],
});

$::lxdebug->leave_sub
}

sub edit_printer {
$::lxdebug->enter_sub;

my $login = get_login();
my $id = $::form->{id} or $::form->{printer}{id} or &add_printer;
my %users = $::auth->read_all_users;

my $printer = SL::Printer->get_printer(id => $id, login => $login);

$::form->header;
print $::form->parse_html_template('admin_printer/edit', {
title => $::locale->text("Edit Printer"),
printer => $printer,
users => [ values %users ],
});

$::lxdebug->leave_sub;
}

sub list_printers {
$::lxdebug->enter_sub;

my $login = get_login();
my $printers = SL::Printer->all_printers(login => $login);
my %users = $::auth->read_all_users;

$::form->header;
print $::form->parse_html_template('admin_printer/list', {
title => $::locale->text('Printer'),
all_printers => $printers,
edit_link => build_std_url("login=$login", 'action=edit_printer', 'id='),
users => [ values %users ],
});

$::lxdebug->leave_sub;
}


sub save_printer {
$::lxdebug->enter_sub;

my $login = get_login();
my $printer = $::form->{printer} || die 'no printer to save';

$::form->error($::locale->text('Description missing!')) unless $printer->{printer_description};
$::form->error($::locale->text('Printer Command missing!')) unless $printer->{printer_command};

SL::Printer->save_printer(%$::form);

list_printers();
$::lxdebug->leave_sub;
}

sub delete_printer {
$::lxdebug->enter_sub;

my $login = get_login();
my $printer = $::form->{printer} || die 'no printer to delete';

SL::Printer->delete_printer(%$::form);
list_printers();

$::lxdebug->leave_sub;
}

1;
(5-5/49)