From 13b00f5a77d95d98d14856f6a8058753d28861e3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Fri, 19 Mar 2021 15:52:40 +0100 Subject: [PATCH] Einfachen Presenter f. Webdav-Objekte --- SL/Presenter/WebdavObject.pm | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 SL/Presenter/WebdavObject.pm diff --git a/SL/Presenter/WebdavObject.pm b/SL/Presenter/WebdavObject.pm new file mode 100644 index 000000000..7318f0ce6 --- /dev/null +++ b/SL/Presenter/WebdavObject.pm @@ -0,0 +1,79 @@ +package SL::Presenter::WebdavObject; + +use strict; + +use SL::Presenter::Tag qw(link_tag); +use SL::Presenter::EscapedText qw(escape is_escaped); + +use Exporter qw(import); +our @EXPORT_OK = qw(webdav_object); + +use Carp; + +sub webdav_object { + my ($webdav_object, %params) = @_; + + + my $text = escape($webdav_object->filename); + if (! delete $params{no_link}) { + my $href = SL::Presenter::EscapedText::escape($webdav_object->full_filedescriptor); + $text = link_tag($href, $text, %params); + } + + is_escaped($text); +} + +1; + + +__END__ + +=pod + +=encoding utf8 + +=head1 NAME + +SL::Presenter::WebdavObject - Presenter module for SL::Webdav::Object(s). + +=head1 SYNOPSIS + + my $webdav = SL::Webdav->new( + type => 'sales_order', + number => '1234', + ); + my @all_objects = $webdav->get_all_objects; + my $html = SL::Presenter::WebdavObject::webdav_object($all_objects[0], no_link => 1); + +=head1 FUNCTIONS + +=over 4 + +=item C + +Returns a rendered version (actually an instance of +L) of the webdav object +C<$webdav_object>. + +C<%params> can include: + +=over 2 + +=item * no_link + +If falsish (the default) then the file name of the object will be linked +to the download path for that file. + +=back + +=back + +=head1 BUGS + +Nothing here yet. + +=head1 AUTHOR + +Bernd Bleßmann Ebernd@kivitendo-premium.deE + +=cut -- 2.20.1