dtb.cgi #2

  • //
  • guest/
  • heather_van_steenburgh/
  • perforce/
  • utils/
  • p4db_0.99f/
  • dtb.cgi
  • View
  • Commits
  • Open Download .zip Download (3 KB)
#!/usr/bin/perl -w
# -*- perl -*-
use P4CGI ;
use strict ;
#
#################################################################
#  CONFIGURATION INFORMATION 
#  All config info should be in P4CGI.pm
#
#################################################################
#
#  P4 depot tree browser
#
#################################################################

				# * Get path from argument
my $arg = P4CGI::cgi()->param("FSPC") ;

				# canonicalize to either "/depot/..." or ""
$arg = "" unless defined $arg ;
$arg =~ s|^/*||;
$arg = "/$arg" if $arg;

				# * Get HIDEDEL argument (Hide deleted files)
my $hidedel = P4CGI::cgi()->param("HIDEDEL") ;
$hidedel = "NO" unless defined $hidedel ;
$hidedel = "YES" unless $hidedel eq "NO" ;


# * Create link to changes for all files below
my $argnosp = &P4CGI::fixspaces($arg) ;
my $linkToAllbelow =
    "<a href=\"" . P4CGI::CHB_URL() . "?CMD=changes&FSPC=/$argnosp/...\">View changes for all files below this point</a>";

				# * Some variables...
my @subdirs ;
# directories information
my @files ;
# files information
     
				# ** read dirs
my @tmp ;
&P4CGI::p4call(\@tmp,"dirs \"/$arg/*\" 2>/dev/null") ;
my $dir ;
foreach $dir (@tmp) {
    my $nosp = &P4CGI::fixspaces($dir) ;
    my $dirname ;
    ($dirname = $dir) =~ s/^.*\/// ;
    push @subdirs,"<a href=\"" . P4CGI::DTB_URL() .
	"?FSPC=${nosp}&HIDEDEL=$hidedel\">$dirname/</A><BR>" ;
} ;

&P4CGI::p4call(\@tmp,"files \"/$arg/*\" 2>/dev/null") ;
foreach (@tmp) {
    /([^\#]+)\#(.*)/ ;
    my $filename=$1 ;
    my $info=$2 ;
    $filename =~ s/^.*\/// ;
    my ($rev,$inf) = split / - /,$info ;
    my $file = $filename ;
    if($inf =~ /^delete/) {
	if($hidedel eq "YES") { next ; } ;
	$file= "<STRIKE>$filename</STRIKE>";
    } ;
    $filename = &P4CGI::fixspaces($filename) ;
    push @files,
    "<a href=\"" . P4CGI::FLV_URL() . 
	"?FSPC=/$argnosp/$filename\">$file</A>\#$rev - $inf<BR>" ;
} ;

my $toggleHide = "<a href=\"".P4CGI::DTB_URL()."?FSPC=/$argnosp&HIDEDEL=" ;
if($hidedel eq "YES") {
    $toggleHide .= "NO\">Show deleted files</A>" ;
}
else {
    $toggleHide .= "YES\">Hide deleted files</A>" ;
}

print
    "",
    &P4CGI::start_page("Depot tree browser<br>/$arg",
		       &P4CGI::ul_list("<b>Subdir</b> -- Descend to subdir",
				       "<b>File</b> -- Show file log",
				       "$linkToAllbelow",
				       $toggleHide)) ;

				# ** create a "file found" flag and set it to NO
my $fileFound = "N" ;

print
    "",
    &P4CGI::start_table(""),
    &P4CGI::table_row("-type","th",
		      "-align","left",
		      undef,"Subdirs",undef,"Files")  ;

				# ** Create 1 or 2 colums for subdirs
my $subdirsC1 ;
my $subdirsC2 ;
if(@subdirs > 30) {
    my $all = scalar(@subdirs) ;
    my $half = int($all/2) ;
    $subdirsC1 = join("\n",@subdirs[0..$half]) ;
    $subdirsC2 = join("\n",@subdirs[$half+1..$all]) ;
} 
else {
    $subdirsC2 = join("\n",@subdirs) ;
}
				# ** Create 1 or 2 colums for files
my $filesC1 ;
my $filesC2 ;
if(@files > 30) {
    my $half = @files/2 ;
    $filesC1 = join("\n",@files[0..$half]) ;
    $filesC2 = join("\n",@files[$half+1..@files]) ;
} 
else {
    $filesC2 = join("\n",@files) ;
}
				# ** print data
print
    "",
    &P4CGI::table_row("-valign","top",
		      $subdirsC1,$subdirsC2,$filesC1,$filesC2),
    &P4CGI::end_table();

print
    "",
    &P4CGI::end_page() ;

#
# That's it folks
#













# Change User Description Committed
#2 382 heather_van_steenburgh Bring up to 0.99f level
#1 381 heather_van_steenburgh The version of P4DB in the public depot isn't 0.99f.
Branch for 0.99f
//guest/heather_van_steenburgh/perforce/utils/p4db/dtb.cgi
#1 380 heather_van_steenburgh P4DB baseline
//guest/perforce_software/utils/p4db/dtb.cgi
#1 11 Perforce maintenance Add Fredric Fredricson's depot browser, P4DB.