Revision 133e3be2
Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt
SL/ClientJS.pm | ||
---|---|---|
132 | 132 |
croak "Unsupported jQuery action: $method" unless defined $num_args; |
133 | 133 |
croak "Parameter count mismatch for $method(actual: " . scalar(@args) . " wanted: $num_args)" if scalar(@args) != $num_args; |
134 | 134 |
|
135 |
foreach my $idx (1..$num_args) {
|
|
136 |
# Force flattening from SL::Presenter::EscapedText: "" . $...
|
|
137 |
$args[$idx - 1] = "" . $args[$idx - 1];
|
|
138 |
$args[$idx - 1] =~ s/^\s+//;
|
|
135 |
foreach my $idx (0..$num_args - 1) {
|
|
136 |
# Force flattening from SL::Presenter::EscapedText and trim leading whitespace for scalars
|
|
137 |
$args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText';
|
|
138 |
$args[$idx] =~ s/^\s+// if !ref($args[$idx]);
|
|
139 | 139 |
} |
140 | 140 |
|
141 | 141 |
push @{ $self->_actions }, [ $method, @args ]; |
Auch abrufbar als: Unified diff
ClientJS: Argumente nur dann säubern, wenn sie richtigen Typ haben
- Stringifizierung nur für Instanzen von SL::Presenter::EscapedText
- Leading whitespace trimming nur für Skalare
Hintergrund ist, dass manche Funktionen komplexere Strukturen als
Parameter übergeben bekommen, namentlich jstree:create_node, das ein
Hash von key/value-Paaren benötigt. Diese dürfen nicht forçiert
stringifiziert werden.