X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/6a688e64ee450743a87b12561e45a3b7c0861184..a2bab345aedcfbb03bdf0e0aa1f28a5c57a5d02b:/SL/ClientJS.pm 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;