Author: spadkins
Date: Tue Jul 11 10:54:18 2006
New Revision: 6633
Modified:
p5ee/trunk/App-Widget-JSApp/lib/App/Widget/JSApp.pm
Log:
added {jsapp_conf} and {jsapp_values_labels} options
Modified: p5ee/trunk/App-Widget-JSApp/lib/App/Widget/JSApp.pm
==============================================================================
--- p5ee/trunk/App-Widget-JSApp/lib/App/Widget/JSApp.pm (original)
+++ p5ee/trunk/App-Widget-JSApp/lib/App/Widget/JSApp.pm Tue Jul 11 10:54:18 2006
@@ -41,13 +41,14 @@
$self->init_jsapp();
+ my %jsapp_special = ( attrib => 1, domain => 1, conf => 1, values_labels
=> 1 );
my (@attrib);
foreach my $key (keys %$self) {
if ($key =~ /^jsapp_(.+)/) {
- push(@attrib, $1, $self->{$key}) if (!ref($self->{$key}));
+ push(@attrib, $1, $self->{$key}) if (!$jsapp_special{$1});
}
}
- if (! defined $self->{jsapp_submittable}) {
+ if (! defined $self->{jsapp_submittable} || $self->{jsapp_submittable}) {
push(@attrib, "submittable", 1);
}
my $value = $context->so_get($name);
@@ -56,12 +57,16 @@
push(@attrib, "default", $value);
my $js_conf = "";
if ($#attrib > -1) {
- $js_conf = ", {";
+ $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);
@@ -117,6 +122,39 @@
$js_conf .= $labels_text;
}
}
+
+ if ($self->{jsapp_values_labels}) {
+ my ($values, $labels) = $self->values_labels();
+ my ($values_text, $i);
+ my $labels_text = "";
+
+ if ($#$values > -1) {
+ $values_text = ",\n \"values\" : [";
+ for ($i = 0; $i <= $#$values; $i++) {
+ $values_text .= "," if ($i > 0);
+ $values_text .= "\n " if ($i % 10 == 0);
+ $values_text .= " \"$values->[$i]\"";
+ }
+ $values_text .= "\n ]";
+
+ if ($labels && %$labels) {
+ $labels_text = ",\n \"labels\" : {";
+ for ($i = 0; $i <= $#$values; $i++) {
+ next if (! defined $labels->{$values->[$i]});
+ $labels_text .= "," if ($i > 0);
+ $labels_text .= "\n " if ($i % 10 == 0);
+ $labels_text .= " \"$values->[$i]\" :
\"$labels->{$values->[$i]}\"";
+ }
+ $labels_text .= "\n }";
+ }
+ }
+ else {
+ $values_text = ",\n values : [ ]";
+ }
+ $js_conf .= $values_text;
+ $js_conf .= $labels_text;
+ }
+
if ($js_conf) {
$js_conf .= " }";
}