#!/usr/bin/perl

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

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

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

if ($ENV{"SCRIPT_FILENAME"}) {
    @tmp1 = split( "/", $ENV{"SCRIPT_FILENAME"} );
} else {
    @tmp1 = split( "/", $ENV{"HOME"} );
}
$home = $tmp1[1];

$prefixeBD = "/$home/tremblay_gu/public_html/MGL7160/TP1";

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

require "/$home/tremblay_gu/public_html/cgi-bin/cgi-lib.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/obtenirLignes.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/supprimerLigne.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/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 article pour le TP#1 de MGL7160.");
    print <<EOTF;
Pour choisir un article parmi la liste des articles d&eacute;crivant
des applications industrielles des m&eacute;thodes formelles,
remplissez le formulaire suivant.

<P>

Note: La cl&eacute; bibliographique de l'article choisi est le code
d&eacute;butant par le nom complet du premier auteur, les trois (3)
premi&egrave;res lettres des noms des autres auteurs et l'ann&eacute;e
(2 chiffres) de publication. Par ex.: ArnoldBegRad96, Barrett93,
BehmDesMej97, etc.

<P>

Veuillez noter qu'aucune validation n'est faite sur la cl&eacute; de
l'article. 

<FORM METHOD=POST>
<P>
<P>
<PRE>
Pr&eacute;nom <INPUT TYPE="TEXT" NAME="prenom" VALUE="" SIZE=10>
Nom    <INPUT TYPE="TEXT" NAME="nom" VALUE="" SIZE=20> 


Cl&eacute; de l'article     <INPUT TYPE="TEXT" NAME="cle" VALUE="" SIZE=20>

Titre de l'article   <INPUT TYPE="TEXT" NAME="titre" VALUE="" SIZE=50>
</PRE>
<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.
EOTF
    print "<P><P>\n";
    print &HtmlBot;
}



sub ProcessForm
{
    local($prenom) = $input{'prenom'};
    local($nom) = $input{'nom'};
    local($cle) = $input{'cle'};    
    local($titre) = $input{'titre'};    

    print &PrintHeader;
    print "<P>";
    if ( $nom  && $cle && $titre ) {
	print &HtmlTop( "Confirmation du choix d'un sujet:" );
	local($sujet) = &ajouterArticleChoisi($prenom, $nom, $cle, $titre);
	print "Vous ($prenom $nom) avez choisi l'article suivant:<BR>\n";
	print "<UL><LI>$sujet</UL>\n";
	print "<P><P>\n";
	print &HtmlBot;
    } else {
	CgiDie( "Erreur dans votre s&eacute;lection",
		 "Vous devez sp&eacute;cifier votre ou vos nom(s).",
		 "Vous devez aussi indiquer une cl&eacute; et un titre.");
    }
}


sub ajouterArticleChoisi
{ 
    if (!$prefixeBD) {
	&CgiDie( "Erreur dans choix d'un article",
	     "La variable \$prefixeBD ne semble pas etre initialisee." );
    }

    local($prenom, $nom, $cle, $titre) = @_;
    
    $nomFichOut = "$prefixeBD/sujets-choisis";

    local($res) = "L'article choisi est le suivant:<BR>\n";
    local($ligne) = "$cle: ``$titre''";

    $res = $ligne . "<BR><P>\n";

    if( !open( SUJETSCHOISIS, ">> $nomFichOut" )) {
	&CgiDie( "Erreur dans ajout d'un article choisi",
	       "Le fichier $nomFichOut ne semble pas exister" );
    }
    print SUJETSCHOISIS "$cle\t$titre\t$nom\t$prenom\n";
    close(SUJETSCHOISIS);

    return $res;
}
