Author: spadkins
Date: Mon Apr 9 11:30:34 2007
New Revision: 9385
Modified:
p5ee/trunk/App-Repository/lib/App/ValueDomain/RepositoryTableColumns.pm
Log:
now can get value_domains from column lists based on params
Modified:
p5ee/trunk/App-Repository/lib/App/ValueDomain/RepositoryTableColumns.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/ValueDomain/RepositoryTableColumns.pm
(original)
+++ p5ee/trunk/App-Repository/lib/App/ValueDomain/RepositoryTableColumns.pm
Mon Apr 9 11:30:34 2007
@@ -87,7 +87,33 @@
elsif ($self->{sort}) {
@$values = sort { $labels->{$a} cmp $labels->{$b} } @$values;
}
- if (defined $self->{is_key}) {
+ if (defined $self->{params}) {
+ my $params = $self->{params};
+ my @params = (keys %$params);
+ my ($param, $paramvalue, $ok, $column_def);
+ my @values = ();
+ foreach my $col (@$values) {
+ $ok = 1;
+ foreach $param (@params) {
+ $column_def = $column_defs->{$col};
+ if (!$params->{$param}) {
+ if ($column_def->{$param}) {
+ $ok = 0;
+ last;
+ }
+ }
+ else {
+ if (!$column_def->{$param} || $column_def->{$param} ne
$params->{$param}) {
+ $ok = 0;
+ last;
+ }
+ }
+ }
+ push(@values, $col) if ($ok);
+ }
+ $values = [EMAIL PROTECTED];
+ }
+ elsif (defined $self->{is_key}) {
my $is_key = $self->{is_key};
my @values = ();
foreach my $col (@$values) {
@@ -97,23 +123,23 @@
}
}
$values = [EMAIL PROTECTED];
- if ($self->{extra_values}) {
- my $key;
- 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};
- }
+ }
+ if ($self->{extra_values}) {
+ my $key;
+ 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};
}
}
}