cvsuser 05/10/12 07:03:04
Modified: App-Repository/lib/App/ValueDomain Repository.pm
Log:
added {extra_values} and {extra_labels} attribs, EACH as a special kind of
{extra_values}
Revision Changes Path
1.6 +18 -7 p5ee/App-Repository/lib/App/ValueDomain/Repository.pm
Index: Repository.pm
===================================================================
RCS file: /cvs/public/p5ee/App-Repository/lib/App/ValueDomain/Repository.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Repository.pm 16 Sep 2005 19:51:57 -0000 1.5
+++ Repository.pm 12 Oct 2005 14:03:04 -0000 1.6
@@ -135,16 +135,27 @@
$rows = $rep->get_rows($table, \%params, [EMAIL PROTECTED],
$options);
$values = [];
$labels = {};
- if ($self->{extra_values}) {
- push(@$values, @{$self->{extra_values}});
- }
- if ($self->{extra_labels}) {
- $labels = { %{$self->{extra_labels}} };
- }
foreach $row (@$rows) {
push(@$values, $row->[0]);
$labels->{$row->[0]} = $row->[1] if ($labelcolumn);
}
+ if ($self->{extra_values}) {
+ my @each = @$values;
+ my $extra_values = $self->{extra_values};
+ my $extra_labels = $self->{extra_labels} || {};
+ for (my $i = $#$extra_values; $i >= 0; $i--) {
+ if ($extra_values->[$i] eq "EACH") {
+ $key = join(",", @each) || -99999;
+ unshift(@$values, $key);
+ $labels->{$key} = $extra_labels->{EACH};
+ }
+ else {
+ $key = $extra_values->[$i];
+ unshift(@$values, $key);
+ $labels->{$key} = $extra_labels->{$key};
+ }
+ }
+ }
$self->{values} = $values;
$self->{labels} = $labels if ($labelcolumn);
$time = time();