Projekt

Allgemein

Profil

Herunterladen (1,7 KB) Statistiken
| Zweig: | Markierung: | Revision:
0c09beb4 Moritz Bunkus
package SL::Presenter::Letter;

use strict;

0e5e3501 Sven Schöling
use SL::Presenter::EscapedText qw(escape is_escaped);
ee51b82f Tamino Steinert
use SL::Presenter::Tag qw(link_tag);
0c09beb4 Moritz Bunkus
use Exporter qw(import);
60cba3e3 Tamino Steinert
our @EXPORT_OK = qw(show letter);
0c09beb4 Moritz Bunkus
use Carp;

60cba3e3 Tamino Steinert
sub show {goto &letter};

0c09beb4 Moritz Bunkus
sub letter {
0e5e3501 Sven Schöling
my ($letter, %params) = @_;
0c09beb4 Moritz Bunkus
$params{display} ||= 'inline';

croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;

ee51b82f Tamino Steinert
my $text = escape($letter->letternumber);
if (! delete $params{no_link}) {
my $href = 'controller.pl?action=Letter/edit'
. '&letter.id=' . escape($letter->id);
$text = link_tag($href, $text, %params);
}
0c09beb4 Moritz Bunkus
0e5e3501 Sven Schöling
is_escaped($text);
0c09beb4 Moritz Bunkus
}

1;

__END__

=pod

=encoding utf8

=head1 NAME

SL::Presenter::Letter - Presenter module for letter objects

=head1 SYNOPSIS

my $letter = SL::DB::Manager::Letter->get_first(where => [ … ]);
0e5e3501 Sven Schöling
my $html = SL::Presenter::Letter::letter($letter, display => 'inline');
60cba3e3 Tamino Steinert
# or
my $html = $letter->presenter->show();
0c09beb4 Moritz Bunkus
=head1 FUNCTIONS

=over 4

60cba3e3 Tamino Steinert
=item C<show $object>

Alias for C<letter $object %params>.

0c09beb4 Moritz Bunkus
=item C<letter $object, %params>

Returns a rendered version (actually an instance of
L<SL::Presenter::EscapedText>) of the letter object C<$object>
.

ee51b82f Tamino Steinert
Remaining C<%params> are passed to the function
C<SL::Presenter::Tag::link_tag>. It can include:
0c09beb4 Moritz Bunkus
=over 2

=item * display

ee51b82f Tamino Steinert
Either C<inline> (the default) or C<table-cell>. Is passed to the function
C<SL::Presenter::Tag::link_tag>.
0c09beb4 Moritz Bunkus
=item * no_link

If falsish (the default) then the invoice number will be linked to the
"edit invoice" dialog from the general ledger menu.

=back

=back

=head1 BUGS

Nothing here yet.

=head1 AUTHOR

Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>

=cut