DBIx-Browse

 view release on metacpan or  search on metacpan

CGI/CGI.pm  view on Meta::CPAN

    else {
	$redo_query = 0;
    }
    if ( $redo_query ) {
	$sth->execute()  or $self->die();
	$row = $sth->fetchrow_hashref('NAME_lc')  or $self->die();
    }

    # debug info
    if ($self->debug) {
	my $parstr = 'Parameters: ';
	my @P = $q->param;
	foreach my $p ( @P ) {
	    $parstr .= "$p  =  ".$q->param($p).$q->br();
	}
	$self->debug($parstr);
    }



    $self->add_request(
		       $self->open_form($rec),
		       $q->hidden( -name  => 'where_clause' ));
    # include search info
    foreach my $f ( @forder ) {
	$self->add_request(
			   $q->hidden({
			       -name => 'search.'.$columns[$f]
			       })
			   );
    }

    $self->add_request($q->start_table);

    my $style;
    foreach my $f ( @forder ) {
	$style = $self->style_class($f);
	my $tf = {
	    -name    => $columns[$f],
	    -default => $row->{$columns[$f]},
	};
	if ($flength[$f]) {$tf->{'-size'} = $flength[$f]};

	$self->add_request(
	    $q->start_Tr,"\n",
	    $q->th(ucfirst($fnames[$f])),"\n",
	    $q->start_td( {-class => "$style"} ));
	if ($f < @{$self->{non_linked}} ) {
	    # Set the param
	    $q->param(-name  => $columns[$f],
		      -value => $row->{$columns[$f]});
	    $self->add_request( $q->textfield($tf));
	}
	else {
	    ### value list ###
	    my $fvalues = $self->field_values($f);
	    # Set the param
	    $q->param(-name  => $columns[$f],
		      -value => $row->{$columns[$f]});
	    # PopUp
	    $self->add_request( $q->popup_menu(
				-name     => $columns[$f],
				-values   => $fvalues,
				-default  => $row->{$columns[$f]},
				));
	}
	$self->add_request(
			   $q->end_td,"\n",$q->end_Tr
			   );
    }
    # Editor
    $self->add_request(
	$q->start_Tr,
	$q->start_td( {
	    -colspan => 2,
	    -align   => 'center'		       }));
    $self->editor();
    $self->add_request(
	$q->end_td,
	$q->end_Tr);
    #Navigator
    $self->add_request(
	$q->start_Tr,
	$q->start_td( {
	    -colspan => 2,
	    -align   => 'center'
		       }));
    $self->navigator('Edit');
    $self->add_request(
	$q->end_td,
	$q->end_Tr);
    # End table
    $self->add_request(
	$q->end_table);

    $self->close_form;
    # print page
    $self->flush;
}

#
# open_form
#
sub open_form {
    my $self = shift;
    my $rec  = shift;
    my $q    = $self->{cgi};
    my $text = '';
    $text  = $q->start_multipart_form( -name => 'Browser_'.$self->{table}, -method => 'POST' );
    $text .= "\n".$q->hidden(-name => 'record_number', -value => "$rec");
    if( my @fparams = keys %{$self->{form_params}} ) {
	$self->debug('Form Params: '.join(', ', @fparams));
	foreach my $p ( @fparams ) {
	    $text .= $q->hidden(
			      -name  => $p,
			      -value => $self->{form_params}->{$p}
			     );
	}
    }
    return $text;
}



( run in 3.573 seconds using v1.01-cache-2.11-cpan-364913b4093 )