X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/6e15c0a98d4f7cb34f6e95b56923ebff659e4825..67079598f8f98a12e12a8acddc3afbf12bb58c5d:/SL/Template/Plugin/L.pm diff --git a/SL/Template/Plugin/L.pm b/SL/Template/Plugin/L.pm index bc3808820..0b4967d34 100644 --- a/SL/Template/Plugin/L.pm +++ b/SL/Template/Plugin/L.pm @@ -295,7 +295,7 @@ sub date_tag { onChange => $onchange, ) : ()), %params, - ) . ((!$params{no_cal}) ? + ) . ((!$params{no_cal} && !$params{readonly}) ? $self->html_tag('img', undef, src => 'image/calendar.png', alt => $::locale->text('Calendar'), @@ -342,6 +342,36 @@ autocomplete_customer('#$name_e\_name'); JS } +# simple version with select_tag +sub vendor_selector { + my ($self, $name, $value, %params) = @_; + + my $actual_vendor_id = (defined $::form->{"$name"})? ((ref $::form->{"$name"}) ? $::form->{"$name"}->id : $::form->{"$name"}) : + (ref $value && $value->can('id')) ? $value->id : ''; + my $options_str = $self->options_for_select(SL::DB::Manager::Vendor->get_all(), + default => $actual_vendor_id, + title_sub => sub { $_[0]->vendornumber . " : " . $_[0]->name }, + 'with_empty' => 1); + + return $self->select_tag($name, $options_str, %params); +} + + +# simple version with select_tag +sub part_selector { + my ($self, $name, $value, %params) = @_; + + my $actual_part_id = (defined $::form->{"$name"})? ((ref $::form->{"$name"})? $::form->{"$name"}->id : $::form->{"$name"}) : + (ref $value && $value->can('id')) ? $value->id : ''; + my $options_str = $self->options_for_select(SL::DB::Manager::Part->get_all(), + default => $actual_part_id, + title_sub => sub { $_[0]->partnumber . " : " . $_[0]->description }, + 'with_empty' => 1); + + return $self->select_tag($name, $options_str, %params); +} + + sub javascript_tag { my $self = shift; my $code = ''; @@ -421,12 +451,19 @@ sub areainput_tag { my ($self, $name, $value, @slurp) = @_; my %attributes = _hashify(@slurp); - my $rows = delete $attributes{rows} || 1; + my ($rows, $cols); my $min = delete $attributes{min_rows} || 1; + if (exists $attributes{cols}) { + $cols = delete $attributes{cols}; + $rows = $::form->numtextrows($value, $cols); + } else { + $rows = delete $attributes{rows} || 1; + } + return $rows > 1 - ? $self->textarea_tag($name, $value, %attributes, rows => max $rows, $min) - : $self->input_tag($name, $value, %attributes); + ? $self->textarea_tag($name, $value, %attributes, rows => max($rows, $min), ($cols ? (cols => $cols) : ())) + : $self->input_tag($name, $value, %attributes, ($cols ? (size => $cols) : ())); } sub multiselect2side { @@ -691,7 +728,8 @@ should be selected by default. =item C Creates a generic input tag or textarea tag, depending on content size. The -mount of desired rows must be given with C parameter, Accpeted parameters +amount of desired rows must be either given with the C parameter or can +be computed from the value and the C paramter, Accepted parameters include C for rendering a minimum of rows if a textarea is displayed. You can force input by setting rows to 1, and you can force textarea by setting