#!/usr/bin/perl -w
# -*- perl -*-
use P4CGI ;
use strict ;
#
#################################################################
#  CONFIGURATION INFORMATION 
#  All config info should be in P4CGI.pm
#
#################################################################
#
#  P4 depot browser, top
#
#################################################################

print "",
    &P4CGI::start_page("P4DB<br> P4 Depot Browser",
		       "<CENTER><SMALL>Hint:".
		       "You can bookmark any page You want to get back to later</SMALL></CENTER>") ;

				# Read codelines file
my @CODELINES ;
if (defined $ENV{CODELINES} and -r $ENV{CODELINES}) {
    
    local *D ;
    open(*D, "$ENV{CODELINES}" ) || &P4CGI::bail("Can not open codelines file \"$ENV{CODELINES}\"" );
    while(<D>) {
	chomp ;
	/^\#/ and do { next ; } ;
	/^\s*(\/\/.*)/ and do {
	    $CODELINES[@CODELINES-1] .= 
		&P4CGI::ahref(-url => &P4CGI::CHB_URL(),
			      "FSPC=$1",$1) . "<BR>" ;
	    next ;
	} ;
	push @CODELINES,"<B>$_</B>" ;
	push @CODELINES,"" ;
    }
    close D ;
}
else {
    @CODELINES = ("Full Depot Source",
		  &P4CGI::ahref(-url => &P4CGI::CHB_URL(),
				"FSPC=//...",
				"//..." )) ;
} ;


print 
    &P4CGI::dl_list(@CODELINES) ;


print "<hr>",
    &P4CGI::start_table("width=100%"),
    &P4CGI::table_row(-align => "center",
		      &P4CGI::ahref(-url => &P4CGI::DTB_URL(),
				    "<font size=+2>Browse depot tree</font>"),
		      &P4CGI::ahref(-url => &P4CGI::CHB_URL(),
				    "FSPC=//...",
				    "STATUS=pending",
				    "<font size=+2>Pending changes</font>"),
		      &P4CGI::ahref(-url => &P4CGI::LAB_URL(),
				    "<font size=+2>Branches</font>"),
		      &P4CGI::ahref(-url => &P4CGI::LAL_URL(),
				    "<font size=+2>Labels</font>"),
		      &P4CGI::ahref(-url => &P4CGI::LAU_URL(),
				    "<font size=+2>Users</font>")),
    &P4CGI::end_table(),
    "<hr>" ;

print
    &P4CGI::cgi()->startform(-action => &P4CGI::CHB_URL(),
			     -method => "GET"),
    &P4CGI::cgi()->submit(-name  => "ignore",
			  -value => "View changes for:"),
    &P4CGI::cgi()->textfield(-name      => "FSPC",
			     -default   => "//...",
			     -size      => 50,
			     -maxlength => 256),    
    &P4CGI::cgi()->endform() ;
print
    &P4CGI::cgi()->startform(-action => &P4CGI::SFF_URL(),
			     -method => "GET"),
    &P4CGI::cgi()->submit(-name  => "ignore",
			  -value => "Search for:"),
    &P4CGI::cgi()->textfield(-name      => "FSPC",
			     -default   => "//...",
			     -size      => 50,
			     -maxlength => 256),    
    &P4CGI::cgi()->endform() ;

my @labels ;
&P4CGI::p4call(\@labels,"labels") ;
my $l ;
foreach $l (@labels) {
    $l =~ s/^Label (\S+).*/$1/ ;
}
if(undef) {
    print
	&P4CGI::cgi()->startform(-action => &P4CGI::LDV_URL(),
				 -method => "GET"),	
	"<hr>",
	&P4CGI::cgi()->submit(-name  => "Go",
			      -value => "Label diff"),
	" label: ",	
	&P4CGI::cgi()->popup_menu(-name  => "LABEL1",
				  -value => \@labels),
	"and: ",	
	&P4CGI::cgi()->popup_menu(-name  => "LABEL2",
				  -value => \@labels),
	"<br>Show files: ",
	&P4CGI::cgi()->checkbox(-name    => "SHOWSAME",
				-value   => "Y",
				-label   => " Not modified"),
	&P4CGI::cgi()->checkbox(-name    => "SHOWNOTSAME",
				-checked => "Y",
				-value   => "Y",
				-label   => " Modified"),
	&P4CGI::cgi()->checkbox(-name    => "SHOWDIFF",
				-checked => "Y",
				-value   => "Y",
				-label   => " Differ"),
	&P4CGI::cgi()->endform() ;

    my @excludelabs = @labels ;
    unshift @excludelabs,"-" ;
    print
	&P4CGI::cgi()->startform(-action => &P4CGI::CHB_URL(),
				 -method => "GET"),	
#	"<hr>",
	&P4CGI::cgi()->submit(-name  => "Go",
			      -value => "View changes for label"),
	" label: ",	
	&P4CGI::cgi()->popup_menu(-name  => "LABEL",
				  -value => \@labels),
	"(optionally) excluding label: ",	
	&P4CGI::cgi()->popup_menu(-name  => "EXLABEL",
				  -value => \@excludelabs),
	&P4CGI::cgi()->endform() ;
}

print "",
    &P4CGI::cgi()->startform(-action => &P4CGI::CHV_URL(),
			     -method => "GET"),
    &P4CGI::cgi()->submit(-name  => "ignore",
			  -value => "View change:"),
    &P4CGI::cgi()->textfield(-name      => "CH",
			     -default   => "1",
			     -size      => 10,
			     -maxlength => 10),    
    &P4CGI::cgi()->endform() ;

print
    "<hr>",
    &P4CGI::start_table("width=100%"),
    &P4CGI::table_row(-align => "left",
		      &P4CGI::ahref(-url => "README.html","Readme file<br>for admin"),
		      { -text => &P4CGI::ahref(-url => "p4race.cgi",
					       "<font size=-1>The great<br>submit race</font>"),
			-align => "right" }),
    &P4CGI::end_table(),    
    &P4CGI::end_page() ;

#
# That's it folks
#