CGI-OptimalQuery
view release on metacpan or search on metacpan
lib/CGI/OptimalQuery/InteractiveFilter.pm view on Meta::CPAN
$ftext .= $q->param($p.'ANDOR') . "\n" unless( $i == $ei );
}
$ftext =~ s/\n//g;
return $ftext;
}
# ------------------------- delselForm -------------------------
sub delselForm( $ ) {
my( $q ) = @_;
my $oei = scalar $q->param('FINDX');
my $ni=1;
for( my $oi = 1; $oi <= $oei; $oi++ ) {
my $op = 'F' . $oi . '_';
unless( $q->param($op.'DELME') ) {
if( $oi != $ni ){
my $np = 'F' . $ni . '_';
$q->delete($np.'FUNCT'); # clear so NOT assumed a func
lib/CGI/OptimalQuery/InteractiveFilter.pm view on Meta::CPAN
$clm =~ s/\A\[//;
$clm =~ s/\]\Z//;
return $o->{oq}->get_col_types('filter')->{uc($clm)};
}
# ------------------------- cmpopLOV -------------------------
sub cmpopLOV { ['=','!=','<','<=','>','>=','like','not like','contains','not contains'] }
# ------------------------- html_parent_update -------------------------
sub html_parent_update( $ ) {
my ($o) = @_;
my $q = $o->{q};
my $filter = $q->param('filter');
$filter =~ s/\n/\ /g;
my $js;
$js = "
lib/CGI/OptimalQuery/InteractiveFilter.pm view on Meta::CPAN
. 'Click here for a default view</A> of the following RAW filter.'
. '<HR /><PRE>'
. $o->escape_html( $q->param('filter') )
. '</PRE><HR />'
. $q->end_html() ;
return $doc;
}
# ------------------------- getFunctionNames -------------------------
sub getFunctionNames( $ ) {
my( $o ) = @_;
my %functs = (); # ( t1=>'Test One', t2=>"Test Two" );
foreach my $k ( keys %{$o->{schema}->{'named_filters'}} ) {
my $fref = $o->{schema}->{'named_filters'}{$k};
if (ref $fref eq 'ARRAY') { $functs{"$k".'()'} = $fref->[2]; }
elsif (ref $fref eq 'HASH' && $fref->{'title'} ne '') {
$functs{"$k".'()'} = $fref->{'title'};
}
}
return %functs;
}
# ------------------------- getColumnNames -------------------------
sub getColumnNames( $ ) {
my( $o ) = @_;
my %cols = (); # ( t1=>'Test One', t2=>"Test Two" );
foreach my $k ( keys %{$o->{schema}->{'select'}} ) {
next if $$o{schema}{select}{$k}[3]{is_hidden};
my $cref = $o->{schema}->{'select'}{$k};
$cols{"$k"} =
( ref $cref eq 'ARRAY' ) ? $cref->[2] : 'bad:'.(ref $cref) ;
}
return %cols;
}
# ------------------------- html_filter_form -------------------------
sub html_filter_form( $ ) {
my( $o ) = @_;
my %columnLBL = $o->getColumnNames();
my @columnLOV = sort { $columnLBL{$a} cmp $columnLBL{$b} } keys %columnLBL;
# TODO: create named_functions from pre-exising filters and use them
# my @functionLOV = map {"$_".'()'} keys %{$o->{schema}->{'named_filters'}};
# my @functionLOV = keys %{$o->{schema}->{'named_filters'}};
my %functionLBL = $o->getFunctionNames();
my @functionLOV = sort { $functionLBL{$a} cmp $functionLBL{$b} } keys %functionLBL;
# (t1=>'Test One', t2=>"Test Two");
( run in 0.234 second using v1.01-cache-2.11-cpan-65fba6d93b7 )