my $rel_configs = $self->relationship_column_configs;
return @$colspecs unless (keys %$rel_configs > 0);
my $match_data = {};
my @rel_cols = $self->colspec_select_columns({
colspecs => $colspecs,
columns => [ keys %$rel_configs ],
best_match_look_ahead => 1,
match_data => $match_data
});
scream_color(RED.ON_BLUE,\@rel_cols);
my %exist = map{$_=>1} @$colspecs;
my $added = [];
my @new_colspecs = @$colspecs;
my $adj = 0;
foreach my $rel (@rel_cols) {
my @insert = ();
push @insert, $rel . '.' . $rel_configs->{$rel}->{displayField} unless ($update);
push @insert, $rel . '.' . $rel_configs->{$rel}->{valueField} unless ($update);
push @insert, $rel_configs->{$rel}->{keyField};
# Remove any expanded colspecs that were already defined (important to honor the user supplied column order)
@insert = grep { !$exist{$_} } @insert;
push @$added,@insert;
unshift @insert, $rel unless ($exist{$rel});
my $offset = $adj + $match_data->{$rel}->{index} + 1;
splice(@new_colspecs,$offset,0,@insert);
%exist = map{$_=>1} @new_colspecs;
$adj += scalar @insert;
}
my @new_adds = grep { ! $self->colspecs_to_colspec_test($colspecs,$_) } @$added;
@{$self->added_relationship_column_relspecs} = uniq(
@{$self->added_relationship_column_relspecs},
@new_adds
);
return @new_colspecs;
}
my $info = $self->ResultClass->relationship_info($rel) or die "Relationship '$rel' not found.";
my $class = $info->{class};
# Manually load and initialize the TableSpec component if it's missing from the
# related result class:
#unless($class->can('TableSpec')) {
# $class->load_components('+RapidApp::DBIC::Component::TableSpec');
# $class->apply_TableSpec(%opt);
#}
my $relspec_prefix = $self->relspec_prefix;
$relspec_prefix .= '.' if ($relspec_prefix and $relspec_prefix ne '');
$relspec_prefix .= $rel;
my $TableSpec = $self->new_TableSpec(
name => $class->table,
ResultClass => $class,
relation_sep => $self->relation_sep,
relspec_prefix => $relspec_prefix,
%opt
);
return $TableSpec;
}
#return $self;
my $Flattened = $self->new_TableSpec(
name => $self->name,
ResultClass => $self->ResultClass,
relation_sep => $self->relation_sep,
include_colspec => $self->include_colspec->colspecs,
relspec_prefix => $self->relspec_prefix
);
$Flattened->add_all_related_TableSpecs_recursive;
#scream_color(CYAN,$Flattened->column_name_relationship_map);
return $Flattened;
}
my $TableSpec = $self->related_TableSpec->{$rel} or die "Failed to find related TableSpec $rel";
local $_{rel} = $rel;
$_{return} = $TableSpec->walk_columns_deep($code,@cols)
}
my @local_cols = grep { !/^\@/ } keys %$tree;
my $pre = $self->column_prefix;
my %name_map = map { my $name = $_; $name =~ s/^${pre}//; $name => $_ } @local_cols;
local $_{name_map} = \%name_map;
return $code->($self,@local_cols);
local $_{depth} = $_{depth}; $_{depth}++;
local $_{return};
foreach my $rel (keys %map) {
my $TableSpec = $self->related_TableSpec->{$rel} or die "Failed to find related TableSpec $rel";
local $_{rel} = $rel;
$_{return} = $TableSpec->walk_columns_deep($code,@{$map{$rel}});
}
my $pre = $self->column_prefix;
my %name_map = map { my $name = $_; $name =~ s/^${pre}//; $name => $_ } @local_cols;
local $_{name_map} = \%name_map;
return $code->($self,@local_cols);
foreach my $rel (@{$self->relation_order}) {
next if ($rel eq '');
my $TableSpec = $self->addIf_related_TableSpec($rel);
#my $TableSpec = $self->add_related_TableSpec( $rel, {
#include_colspec => $self->relation_colspecs->{$rel}
#});
$TableSpec->add_all_related_TableSpecs_recursive;
}
foreach my $rel (@{$self->related_TableSpec_order}) {
my $TableSpec = $self->related_TableSpec->{$rel};
for my $name ($TableSpec->column_names_ordered) {
#die "Column name conflict: $name is already defined (rel: $rel)" if ($self->has_column($name));
$self->column_name_relationship_map->{$name} = $rel;
}
}
return $self;
}
$tableSpec->resolve_dbic_colname( $fieldName, \%merge_join, $get_render_col )
Returns a value which can be added to DBIC's ->{attr}{select} in order to select the column.
$fieldName is the ExtJS column name to resolve. %merge_join is a in/out parameter which collects the total required joins for this query. $get_render_col is a boolean of whether this function should instead return the DBIC name of the render column.
7 POD Errors
The following errors were encountered while parsing the POD:
- Around line 44:
=pod directives shouldn't be over one line long! Ignoring all 15 lines of content
- Around line 329:
=pod directives shouldn't be over one line long! Ignoring all 5 lines of content
- Around line 799:
=pod directives shouldn't be over one line long! Ignoring all 5 lines of content
- Around line 831:
=pod directives shouldn't be over one line long! Ignoring all 5 lines of content
- Around line 938:
=pod directives shouldn't be over one line long! Ignoring all 7 lines of content
- Around line 983:
=pod directives shouldn't be over one line long! Ignoring all 2 lines of content
- Around line 1033:
=pod directives shouldn't be over one line long! Ignoring all 3 lines of content