#!/usr/bin/perl -w
# -*- perl -*-
use P4CGI ;
use strict ;
#
#################################################################
#  CONFIGURATION INFORMATION 
#  All config info should be in P4CGI.pm
#
#################################################################
#
#  List all labels
#
#################################################################

##
#
# Parameters:
#
# SORTBY defines sort order
#    One of "NAME" and "DATE"
#
#

my $SORTBY = &P4CGI::cgi()->param("SORTBY") ;
$SORTBY = "NAME" unless defined $SORTBY and $SORTBY eq "DATE" ;

# Get list of all label
my @labels ;
&P4CGI::p4call(\@labels, "labels" );

map { /^Label (\S+)\s+(\S+)\s+'(.*)'/ ; $_ = [$1,$2,$3] ; } @labels ;

# Print header
my @options ;

my @lab ;
if($SORTBY eq "DATE") {
    @lab = sort { my @b = @$a ;
		  my @a = @$b ;
		  $a[1] cmp $b[1] ; } @labels ;
    push @options,&P4CGI::buttonCell("labelList.cgi",
				     "Sort labels by name",
				     "SORTBY=NAME",
				     "Sort by name") ;

}
else {
    @lab = sort { my @a = @$a ;
		  my @b = @$b ;
		  uc($a[0]) cmp uc($b[0]) ; } @labels ;
    push @options,&P4CGI::buttonCell("labelList.cgi",
				     "Sort labels by date",
				     "SORTBY=DATE",
				     "Sort by date") ;
}


print "",
    &P4CGI::start_page("List Labels",@options) ;

my $nolabels= scalar @labels ;

print "",
    &P4CGI::start_framedTable("$nolabels labels"),
    &P4CGI::start_table(""),
    &P4CGI::table_header("Label","Date","Desc.") ;

foreach (@lab) {    
    my ($name,$date,$desc) = @{$_} ;
    $desc = &P4CGI::formatDescription($desc) ;
    my $lab = 
	print &P4CGI::table_row({-class=>"Prompt",
				 -text=>&P4CGI::ahref(-url => "labelView.cgi",
						      "LABEL=$name",
						      "HELP=View label",
						      $name)},
				{-class=>"Prompt",
				 -text=>$date},
				{-class=>"Description",
				 -text =>$desc}) ;
}

print 
    &P4CGI::end_table(),
    &P4CGI::end_framedTable(),
    &P4CGI::end_page() ;

#
# That's all folks
#