X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPresenter%2FPart.pm;h=9533e1d6c48a669f30cd73d7aff9841b909e925f;hb=f207efd1ad8835c046c2945c3d0d693626622521;hp=628ee2b63afb2a26b4b17f4eac858ed66511f616;hpb=2f4e58bf512ee69d554e551da226478e29097b2e;p=kivitendo-erp.git
diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm
index 628ee2b63..9533e1d6c 100644
--- a/SL/Presenter/Part.pm
+++ b/SL/Presenter/Part.pm
@@ -5,16 +5,38 @@ use strict;
use SL::DB::Part;
use Exporter qw(import);
-our @EXPORT = qw(part_picker);
+our @EXPORT = qw(part_picker part);
+
+use Carp;
+
+sub part {
+ my ($self, $part, %params) = @_;
+
+ $params{display} ||= 'inline';
+
+ croak "Unknown display type '$params{display}'" unless $params{display} =~ m/^(?:inline|table-cell)$/;
+
+ my $text = join '', (
+ $params{no_link} ? '' : '',
+ $self->escape($part->partnumber),
+ $params{no_link} ? '' : '',
+ );
+ return $self->escaped_text($text);
+}
sub part_picker {
my ($self, $name, $value, %params) = @_;
$value = SL::DB::Manager::Part->find_by(id => $value) if $value && !ref $value;
my $id = delete($params{id}) || $self->name_to_id($name);
+ my $fat_set_item = delete $params{fat_set_item};
+
+ my @classes = $params{class} ? ($params{class}) : ();
+ push @classes, 'part_autocomplete';
+ push @classes, 'partpicker_fat_set_item' if $fat_set_item;
my $ret =
- $self->input_tag($name, (ref $value && $value->can('id') ? $value->id : ''), class => 'part_autocomplete', type => 'hidden', id => $id) .
+ $self->input_tag($name, (ref $value && $value->can('id') ? $value->id : ''), class => "@classes", type => 'hidden', id => $id) .
join('', map { $params{$_} ? $self->input_tag("", delete $params{$_}, id => "${id}_${_}", type => 'hidden') : '' } qw(column type unit convertible_unit)) .
$self->input_tag("", (ref $value && $value->can('description')) ? $value->description : '', id => "${id}_name", %params);
@@ -31,11 +53,15 @@ __END__
=head1 NAME
-SL::Presenter::Part - Part lelated presenter stuff
+SL::Presenter::Part - Part related presenter stuff
=head1 SYNOPSIS
-see L
+ # Create an html link for editing/opening a part/service/assembly
+ my $object = my $object = SL::DB::Manager::Part->get_first;
+ my $html = SL::Presenter->get->part($object, display => 'inline');
+
+see also L
=head1 DESCRIPTION
@@ -43,8 +69,29 @@ see L
=head1 FUNCTIONS
+=over 2
+
+=item C
+
+Returns a rendered version (actually an instance of
+L) of the part object C<$object>
+
+C<%params> can include:
+
=over 4
+=item * display
+
+Either C (the default) or C. At the moment both
+representations are identical and produce the part's name linked
+to the corresponding 'edit' action.
+
+=back
+
+=back
+
+=over 2
+
=item C
All-in-one picker widget for parts. The name will be both id and name
@@ -157,13 +204,7 @@ A clickable icon (popup trigger) attached to the dummy input, which triggers the
=head1 BUGS
-=over 4
-
-=item *
-
-Popup triggers are not displayed with css menu, because the spritemap is not loaded.
-
-=back
+None atm :)
=head1 AUTHOR