#!/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/cgi-bin/obtenirLignes.pl";
require "/$home/tremblay_gu/public_html/cgi-bin/supprimerLigne.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/supprimerNom.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/enregistrerFormulaire.pl";
require "/$home/tremblay_gu/public_html/MGL7160/TP1/montrerFormulaire.pl";

goto MAIN;

exit;


MAIN:
{

    if (&ReadParse(*input))
    {
	&dispatch;
    }
    else
    {
	&ShowNoms;
    }
}

sub ShowNoms
{
    print &PrintHeader;
    print &HtmlTop("Choix du fichier pour transmettre votre r&eacute;sum&eacute; du TP#1 de MGL7160.");
    print <<EOFAA;
Pour transmettre votre r&eacute;sum&eacute; du TP#1, vous devez, 
dans un premier temps, indiquer dans quel fichier votre r&eacute;sum&eacute; devra &ecirc;tre conserv&eacute;. Vous devez aussi indiquer un mot de
passe qui permettra au script de modifier ce fichier.<P>
Pour ce faire, choisissez le nom d'un fichier qui correspond &agrave; votre nom de famille (ou celui de votre co-&eacute;quipier) et indiquez un mot de passe.
<FORM METHOD=POST>
<P>
<INPUT TYPE="HIDDEN" NAME="erreur" VALUE=" ">
<P>
EOFAA
    &afficherNoms;
    print <<EOFAB;
<P>
Mot de passe <INPUT TYPE="PASSWORD" NAME="motpasse" SIZE=8>
<P>
<INPUT TYPE="SUBMIT" VALUE="Enregistrer le choix du nom du fichier et du mot de passe">
<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.
<P><P>

EOFAB
    print &HtmlBot;
    
}

sub dispatch
{
    if ($input{'erreur'} && !$input{'numLigne'}) {
	CgiDie( "Erreur dans la s&eacute;lection du fichier",
	       "Vous devez choisir le nom du fichier qui correspond &agrave; votre nom de famille et indiquez un mot de passe.");
	exit;
    } elsif ($input{'numLigne'} && !$input{'motpasse'}) {
	CgiDie( "Erreur dans le choix du mot de passe",
	       "Vous devez indiquer un mot de passe.");
	exit;
    } elsif ($input{'numLigne'}) {
	&confirmerNom;
    } elsif ($input{'nomFichier'} && !$input{'formulaireComplete'}) {
	&montrerFormulaire;
    } elsif ($input{'formulaireComplete'}) {
	&enregistrerFormulaire;
    }
}

sub confirmerNom
{
    local($numLigne) = $input{'numLigne'};
    local($motpasse) = $input{'motpasse'};

    if ( $numLigne ) {
	local($nomF) = &supprimerNom($numLigne);
	print &PrintHeader;
	print &HtmlTop("Confirmation du fichier destination");
	open(FIC, "> $prefixeBD/.$nomF");
	print FIC $motpasse;
	close(FIC);
	print <<ENDA;
Le fichier dans lequel votre r&eacute;sum&eacute; sera conserv&eacute; sera le suivant:
  <UL><LI>"$nomF"</UL>

<FORM METHOD=POST>
<INPUT TYPE="HIDDEN" NAME="nomFichier" VALUE="$nomF">

<INPUT TYPE="SUBMIT" VALUE="Pour obtenir le gabarit &agrave; remplir pour le r&eacute;sum&eacute;">
</FORM>
<P><HR><P><P>


ENDA
    print &HtmlBot;
    } else {
	CgiDie( "Erreur dans votre s&eacute;lection",
		 "Vous devez s&eacute;lectionner un nom du fichier.");
	exit;
    }
}





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

    local($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\n";
    close(SUJETSCHOISIS);

    return $res;
}

sub afficherNoms
{
    local($numLigne);
    $nomFich = "$prefixeBD/noms.txt";
    local($nbLignes);
    local(*sujets);
    if( ($nbLignes = &obtenirLignes($nomFich, *sujets)) < 0 ) {
	CgiDie("Erreur choix du nom de fichier",
	       "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
}

