- #!/usr/bin/perl -w
- # -*- perl -*-
- use P4CGI ;
- use strict ;
- #
- #################################################################
- # CONFIGURATION INFORMATION
- # All config info should be in P4CGI.pm
- #
- #################################################################
- #
- # View a p4 client
- #
- #################################################################
-
- # Get parameter
- my $client = P4CGI::cgi()->param("CLIENT") ;
- unless(defined $client) {
- &P4CGI::bail("No client specified!") ;
- } ;
-
- # Get list of users and full names
- my @users ;
- &P4CGI::p4call(\@users, "users" );
- my %users ;
- map { s/^(\S+).* \((.*)\).*$/$1/ ; $users{$_}=$2 ; } @users ;
-
- # Get client info
- my %values ;
- my @fields = &P4CGI::p4readform("client -o $client",\%values);
-
- # Fix owner field
- if(exists $users{$values{"Owner"}}) {
- $values{"Owner"} = &P4CGI::ahref(-url => "userView.cgi" ,
- "USER=$values{Owner}",
- $values{"Owner"}) . " ($users{$values{Owner}})" ;
- }
- else {
- $values{"Owner"} .= " <font color=red>No such user</font>" ;
- } ;
-
- # Fix up description
- {
- my $d = &P4CGI::fixSpecChar($values{"Description"}) ;
- $d =~ s/\n/<br>/g ;
- $values{"Description"} = $d ;
- }
-
- # Fix Root
- if(exists $values{"Root"}) {
- $values{"Root"} = "<tt>$values{Root}</tt>" ;
- } ;
-
- # Fix Options
- if(exists $values{"Options"}) {
- $values{"Options"} = "<tt>$values{Options}</tt>" ;
- } ;
- # Fix view
- {
- my $view = &P4CGI::start_table("border=0 cellspacing=0 cellpadding=0") ;
- foreach (split("\n",$values{"View"})) {
- last if /^\s*$/ ;
- my ($d,$c) = split(/\s+\/\//,$_) ;
- $view .= &P4CGI::table_row("<tt>$d</tt>","<tt> //$c</tt>") ;
- } ;
- $view .= &P4CGI::end_table() ;
- $values{"View"} = $view ;
- }
-
- $| = 1 ;
-
- print "",
- &P4CGI::start_page("Client<br><tt>$client</tt>",
- &P4CGI::ul_list("<b>user</b> -- view user info",
- "<b>open file</b> -- view file log",
- &P4CGI::ahref(-url => "changeList.cgi",
- "CLIENT=$client",
- "FSPC=//...",
- "List changes by client") .
- " -- List changes made by client $client")) ;
-
- # Check that client exist
- unless(exists $values{"Client"}) {
- &P4CGI::signalError("Client $client does not exist") ;
- }
-
- print
- &P4CGI::start_table("") ;
-
- my $f ;
- foreach $f (@fields)
- {
- print &P4CGI::table_row({-align => "right",
- -valign => "top",
- -type => "th",
- -text => $f},
- $values{$f}) ;
- } ;
-
- my $openfiles ;
- &P4CGI::p4call(*P4, "opened -a" );
- while(<P4>) {
- chomp ;
- /^(.+\#\d+) - (\S+) .* by (\S+)\@(\S+)/ and do {
- my $f = $1 ;
- my $u = $3 ;
- my $r = "<b>$2</b>" ;
- my $c = $4 ;
- if($c eq $client) {
- $f =~ /(.*)\#(\d+)/ ;
- $f = &P4CGI::ahref(-url => "fileLogView.cgi",
- "FSPC=$1",
- "REV=$2",
- "<tt>$f</tt>") ;
- if(defined $openfiles) {
- $openfiles .= "<br>$f - $r" ;
- } else {
- $openfiles = "$f - $r" ;
- } ;
- if($u ne $values{"Owner"}) {
- $openfiles .= " by user $u" ;
- }
- } ;
- } ;
- } ;
-
- if(defined $openfiles) {
- print &P4CGI::table_row({-align => "right",
- -type => "th",
- -valign => "top",
- -text => "Open files:"},
- "$openfiles") ;
- } ;
-
-
- print
- &P4CGI::end_table(),
- &P4CGI::end_page() ;
-
- #
- # That's all folks
- #
-
-
-
-
# |
Change |
User |
Description |
Committed |
|
#1
|
3624 |
Mitch Stuart |
Branch //public/perforce/utils to //guest/mitch_stuart/perforce/utils |
22 years ago
|
|
//guest/perforce_software/utils/p4db/P4DB_2.01/clientView.cgi |
#1
|
1884 |
rmg |
Update to the current (2.01) P4DB. |
23 years ago
|
|