X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FClientJS.pm;h=335bf8163107cdfcf383cd7c7e19a9de039d36cd;hb=264aaf09997bc76ea54c9bb80133919588ece2d2;hp=c6e22f3d5d325764af6dde8d01aa52786d8dac2c;hpb=6a688e64ee450743a87b12561e45a3b7c0861184;p=kivitendo-erp.git diff --git a/SL/ClientJS.pm b/SL/ClientJS.pm index c6e22f3d5..335bf8163 100644 --- a/SL/ClientJS.pm +++ b/SL/ClientJS.pm @@ -122,6 +122,8 @@ my %supported_methods = ( scroll_into_view => 1, # $()[0].scrollIntoView() ); +my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo); + sub AUTOLOAD { our $AUTOLOAD; @@ -139,10 +141,10 @@ sub action { $method = (delete($self->{_prefix}) || '') . $method; my $num_args = $supported_methods{$method}; - croak "Unsupported jQuery action: $method" unless defined $num_args; + croak "Unsupported jQuery action: $method" unless defined $num_args; if ($num_args > 0) { - croak "Parameter count mismatch for $method(actual: " . scalar(@args) . " wanted: $num_args)" if scalar(@args) != $num_args; + croak "Parameter count mismatch for $method(actual: " . scalar(@args) . " wanted: $num_args)" if scalar(@args) != $num_args; } else { $num_args *= -1; croak "Parameter count mismatch for $method(actual: " . scalar(@args) . " wanted at least: $num_args)" if scalar(@args) < $num_args; @@ -151,9 +153,14 @@ sub action { foreach my $idx (0..$num_args - 1) { # Force flattening from SL::Presenter::EscapedText. - $args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText'; + $args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText'; } + # Trim leading whitespaces for certain jQuery functions that operate + # on HTML code: $("

test

").appendTo('#some-id'). jQuery croaks + # on leading whitespaces, e.g. on $("

test

"). + $args[0] =~ s{^\s+}{} if $trim_target_for{$method}; + push @{ $self->_actions }, [ $method, @args ]; return $self;