cvsuser 06/01/30 14:56:44
Modified: App-Widget-JSApp/lib/App/Widget JSApp.pm
Log:
enhanced the base class to be able to pass value-domains full of data in the
initializers
Revision Changes Path
1.2 +48 -3 p5ee/App-Widget-JSApp/lib/App/Widget/JSApp.pm
Index: JSApp.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Widget-JSApp/lib/App/Widget/JSApp.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JSApp.pm 9 Aug 2005 19:46:51 -0000 1.1
+++ JSApp.pm 30 Jan 2006 22:56:44 -0000 1.2
@@ -34,7 +34,7 @@
my (@attrib);
foreach my $key (keys %$self) {
if ($key =~ /^jsapp_(.+)/) {
- push(@attrib, $1, $self->{$key});
+ push(@attrib, $1, $self->{$key}) if ($1 ne "domain");
}
}
if (! defined $self->{jsapp_submittable}) {
@@ -50,6 +50,51 @@
$js_conf .= "," if ($i > 0);
$js_conf .= " \"$attrib[$i]\" : \"$attrib[$i+1]\"";
}
+ }
+
+ 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");
+
+ $value_domain = $context->value_domain($domain_name);
+ ($values, $labels) = $value_domain->values_labels();
+
+ $values_text = "";
+ $labels_text = "";
+
+ if ($#$values > -1) {
+ $values_text = ",\n \"${domain_alias}_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 \"${domain_alias}_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 \"${domain_alias}_values\" : [ ]";
+ $labels_text = ",\n \"${domain_alias}_labels\" : { }";
+ }
+ $js_conf .= $values_text;
+ $js_conf .= $labels_text;
+ }
+ }
+ if ($js_conf) {
$js_conf .= " }";
}