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 )