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 .= " }";
       }
   
  
  
  

Reply via email to