#!/usr/bin/perl

###########################################################################
#
#
# Auteur: Guy Tremblay
# Creation: Automne 1998
#
###########################################################################

#----------------------------------------------------------------------

# Variable globale a utiliser comme prefixe pour acceder a ma BD.

#$machine = "arabica";
$machine = "saturne";

$home = $machine eq "arabica" ? "home" : "home2";

$prefixeBD = "/$home/tremblay_gu/public_html/INF4110/presentations";

#----------------------------------------------------------------------

require "/$home/tremblay_gu/public_html/cgi-bin/cgi-lib.pl";
require "/$home/tremblay_gu/public_html/INF4110/presentations/obtenirLignes.pl";
require "/$home/tremblay_gu/public_html/INF4110/presentations/supprimerLigne.pl";
require "/$home/tremblay_gu/public_html/INF4110/presentations/supprimerSujet.pl";

goto MAIN;

exit;


MAIN:
{

    if (&ReadParse(*input))
    {
	&ProcessForm;
    }
    else
    {
	&ShowForm;
    }
}

###############################################
#Sous-routine qui affiche le formulaire
###############################################
sub ShowForm
{
    print &PrintHeader;
    print &HtmlTop("Choix d'un sujet.");
    print <<EOTF;
<FORM METHOD=POST>
<P>
<P>
Pr&eacute;nom et nom<INPUT TYPE="TEXT" NAME="nom" VALUE="" SIZE=20>
<P>
Code permanent <INPUT TYPE="TEXT" NAME="codePermanent" VALUE="" SIZE=20>
<P>
Les sujets qui n'ont pas encore &eacute;t&eacute; choisis sont les suivants:<BR>
<P>
EOTF
    &afficherSujets;
    print <<EOTAD;
<P><P><P>
Les dates qui n'ont pas encore &eacute;t&eacute; choisies sont les suivantes:<BR>
<P>
EOTAD
    &afficherDates;
    print <<EOTA;
<P><P><P>

<INPUT TYPE="SUBMIT" VALUE="Enregistrer le choix">
<INPUT TYPE="RESET" VALUE="Effacer">
</FORM>

<P><HR><P><P><P>
<B> R&eacute;alisation</B>: Ce script a &eacute;t&eacute; d&eacute;velopp&eacute; par <A HREF="http://www.labunix.uqam.ca/~tremblay"> Guy Tremblay</A>, professeur au d&eacute;partement d'informatique de l'UQAM.
EOTA
    print "<P><P>\n";
    print &HtmlBot;
}


sub afficherSujets
{
    local($numLigne);
    $nomFich = "$prefixeBD/sujets-possibles";
    local($nbLignes);
    local(*sujets);
    if( ($nbLignes = &obtenirLignes($nomFich, *sujets)) < 0 ) {
	CgiDie("Erreur choix du sujet",
	       "Le fichier $nomFich ne semble pas exister.");
	return;
    }
    print "<SELECT NAME=\"numLigne\" SIZE=$nbLignes>\n";
    $numLigne = 1;
    while ($numLigne <= $nbLignes) {
	$nomComplet = $sujets{$numLigne};
	$nomComplet = substr( $nomComplet, 0, 80 );
	print "<OPTION VALUE=\"$numLigne\"> $nomComplet\n";
	$numLigne += 1;
    }
print <<EOTF;
</SELECT>
EOTF
}

sub afficherDates
{
    local($numLigne);
    local($nbLignes);
    local(*dates);
    $nomFich = "$prefixeBD/dates-possibles";
    if( ($nbLignes = &obtenirLignes($nomFich, *dates)) < 0 ) {
	CgiDie("Erreur dans le choix du sujet",
	       "Le fichier $nomFich ne semble pas exister.");
	return;
    }
    print "<SELECT NAME=\"dateChoisie\" SIZE=$nbLignes>\n";
    $numLigne = 1;
    while ($numLigne <= $nbLignes) {
	$nomComplet = $dates{$numLigne};
	$nomComplet = substr( $nomComplet, 0, 80 );
	print "<OPTION VALUE=\"$numLigne\"> $nomComplet\n";
	$numLigne += 1;
    }
print <<EOTFX;
</SELECT>
EOTFX
}

sub ProcessForm
{
    local($numLigne) = $input{'numLigne'};
    local($nom) = $input{'nom'};
    local($codePermanent) = $input{'codePermanent'};    
    local($dateChoisie) = $input{'dateChoisie'};    

    print "<P>";
    if ( $numLigne && $nom && $codePermanent && $dateChoisie ) {
	print &PrintHeader;
	print &HtmlTop( "Confirmation du choix d'un sujet:" );
	local($sujet) = &supprimerSujet($numLigne, $nom, 
					$codePermanent, $dateChoisie);
	local(*dates);
	print "Vous ($nom) avez choisi le sujet suivant pour la date indiqu&eacute;e:<BR>\n";
	print "<UL><LI>$sujet</UL>\n";
	print "<P><P>\n";
	print &HtmlBot;
    } else {
	CgiError( "Erreur dans votre s&eacute;lection",
		 "Vous devez sp&eacute;cifier votre nom et votre code permanent.",
		 "Vous devez aussi s&eacute;lectionner un sujet.",
		 "Finalement, vous devez aussi s&eacute;lectionner une date.");
    }
}

