X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPresenter%2FCustomerVendor.pm;h=ab951720addaa3145c0d2afe6398b1a611e15336;hb=8d6e65bb997ce3c55fc68842378140384bd97f51;hp=80b85f9e36b5ad71e6b806393048006b19b30675;hpb=0e5e350124f7eec8f67109fe4777bc2dae6c0ea6;p=kivitendo-erp.git diff --git a/SL/Presenter/CustomerVendor.pm b/SL/Presenter/CustomerVendor.pm index 80b85f9e3..ab951720a 100644 --- a/SL/Presenter/CustomerVendor.pm +++ b/SL/Presenter/CustomerVendor.pm @@ -6,7 +6,7 @@ use SL::Presenter::EscapedText qw(escape is_escaped); use SL::Presenter::Tag qw(input_tag html_tag name_to_id select_tag); use Exporter qw(import); -our @EXPORT_OK = qw(customer_vendor customer vendor customer_vendor_picker); +our @EXPORT_OK = qw(customer_vendor customer vendor customer_vendor_picker customer_picker vendor_picker); use Carp; @@ -46,6 +46,9 @@ sub _customer_vendor { sub customer_vendor_picker { my ($name, $value, %params) = @_; + $params{type} //= 'customer' if 'SL::DB::Customer' eq ref $value; + $params{type} //= 'vendor' if 'SL::DB::Vendor' eq ref $value; + croak 'Unknown "type" parameter' unless $params{type} =~ m{^(?:customer|vendor)$}; croak 'Unknown value class' if $value && ref($value) && (ref($value) !~ m{^SL::DB::(?:Customer|Vendor)$}); @@ -59,6 +62,9 @@ sub customer_vendor_picker { my @classes = $params{class} ? ($params{class}) : (); push @classes, 'customer_vendor_autocomplete'; + # do not use reserved html attribute 'type' for cv type + $params{cv_type} = delete $params{type}; + my $ret = input_tag($name, (ref $value && $value->can('id') ? $value->id : ''), class => "@classes", type => 'hidden', id => $id, 'data-customer-vendor-picker-data' => JSON::to_json(\%params), @@ -71,7 +77,9 @@ sub customer_vendor_picker { html_tag('span', $ret, class => 'customer_vendor_picker'); } -sub picker { goto &customer_vendor_picker } +sub customer_picker { my ($name, $value, @slurp) = @_; customer_vendor_picker($name, $value, @slurp, type => 'customer') } +sub vendor_picker { my ($name, $value, @slurp) = @_; customer_vendor_picker($name, $value, @slurp, type => 'vendor') } +sub picker { goto &customer_vendor_picker } 1;