App-Widget-JSApp
view release on metacpan or search on metacpan
lib/App/Widget/JSApp.pm view on Meta::CPAN
}
my $value = $context->so_get($name);
$value = "" if (!defined $value);
$value = join(",",@$value) if (ref($value) eq "ARRAY");
push(@attrib, "default", $value);
my $js_conf = "";
if ($#attrib > -1) {
$js_conf .= ", {" if (!$js_conf);
for (my $i = 0; $i < $#attrib; $i += 2) {
$js_conf .= "," if ($i > 0);
$js_conf .= " \"$attrib[$i]\" : \"" . $self->escape_double_quoted_value($attrib[$i+1]) . "\"";
}
}
if ($self->{jsapp_conf}) {
$js_conf .= ($js_conf) ? ",\n" : ", {\n";
$js_conf .= $self->{jsapp_conf};
}
if (defined $self->{jsapp_attrib}) {
my ($value, $so_name);
my $attribs = $self->{jsapp_attrib};
foreach my $attrib (sort keys %$attribs) {
$so_name = $attribs->{$attrib};
$so_name = $attrib if (!$so_name || $so_name eq "1");
$value = $context->so_get($so_name);
$value = join(",",@$value) if (ref($value) eq "ARRAY");
$js_conf .= ",\n \"$attrib\" : \"" . $self->escape_double_quoted_value($value) . "\"";
}
}
if (defined $self->{jsapp_domain}) {
my ($value_domain, $values, $labels, $domain_alias);
my ($values_text, $labels_text, $i);
foreach my $domain_name (sort keys %{$self->{jsapp_domain}}) {
$domain_alias = $self->{jsapp_domain}{$domain_name};
$domain_alias = $domain_name if (!$domain_alias || $domain_alias eq "1");
lib/App/Widget/JSApp.pm view on Meta::CPAN
my $html = <<EOF;
<script type="text/javascript">
context.widget("$name"$js_conf).write();
</script>
EOF
&App::sub_exit($html) if ($App::trace);
return($html);
}
sub escape_double_quoted_value {
my ($self, $value) = @_;
$value =~ s/"/\\"/g;
$value =~ s/\r//msg;
$value =~ s/\n/\\n/msg;
return($value);
}
sub init_jsapp {
&App::sub_entry if ($App::trace);
my ($self) = @_;
( run in 0.520 second using v1.01-cache-2.11-cpan-73692580452 )