You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

604 lines
16 KiB

<?php
require_once("config/Validation.php");
require_once("controleur/ControleurCommun.php");
class ControleurConnecte {
function __construct() {
$erreurs = array ();
try{
// Récupération de l'action a effectuer
$action=Validation::netoyerString($_REQUEST['action']);
switch($action) {
case NULL:
$this->seeLists();
break;
case "seeLists":
$this->seeLists();
break;
case "seeList":
$this->seeList();
break;
case "supprimerListe":
$this->supprimerListe();
break;
case "wantAddList":
$this->wantAddList();
break;
case "addList":
$this->addList();
break;
case "modifyList":
$this->modifyList();
break;
case "setTacheFait":
$this->editDone();
break;
case "editionTache":
$this->editionTache();
break;
case "wantAddTask":
$this->wantAddTask();
break;
case "addTask":
$this->addTask();
break;
case "delTask":
$this->delTask();
break;
case "logout":
$this->logout();
break;
case "veuxModifierListe":
$this->veuxModifierListe();
break;
case "veuxModifierTache":
$this->veuxModifierTache();
break;
default:
throw new Exception("Action inconnue");
break;
}
}catch(PDOException $e)
{
echo "Erreur PDO";
$erreurs[] =$e->getMessage();
require ("vues/erreur.php");
}
catch (Exception $e2)
{
$erreurs[] =$e2->getMessage();
require ("vues/erreur.php");
}
}
/*
* \brief Permet d'afficher les lists de l'utilisateur.trice connecté.e
*/
function seeLists()
{
// Si la page n'est pas set, on prend la première page
if(!isset($_REQUEST["page"]) || empty($_REQUEST["page"]))
{
$page = 1;
}
else
{
// si la validation a échouée, on prend la première page
$page = Validation::validerUnIntSupperieurZero($_REQUEST["page"]) ? $_REQUEST["page"] : 1;
}
// Si le nombre d'élément n'est pas set, on en prend par défaut 10
if(!isset($_GET["nbElements"]) || empty($_GET["nbElements"]))
{
$nbElements = 10;
}
else
{
// Si la validation a échouée, on prend 10 éléments, sinon, le nombre désiré par l'utilisateur.trice
$nbElements = Validation::validerUnIntSupperieurZero($_GET["nbElements"]) ? $_GET["nbElements"] : 10;
}
$mdl = new ModelConnecte();
// Récupération des listes de l'utilisateur.trice connécté.e par le modèle
$todoLists = $mdl->getLists(Validation::netoyerString($_SESSION["login"]), $page, $nbElements);
// Récupération du numéro de page le plus grand en fonction des taches de l'utilisateur.trice et du nombre d'éléments demendé
$maxPage = $mdl->getMaxPageListes(Validation::netoyerString($_SESSION["login"]), $nbElements);
// Affichage de la vue
require("vues/accueil.php");
}
/*
* \brief Permet de visualiser les tache d'une liste
*/
function seeList()
{
// Erreur si aucune liste n'est demendée.
if(!isset($_REQUEST["list"]) || empty($_REQUEST["list"]))
{
throw new Exception("Aucune liste n'est demendée");
}
// Erreur si le numéro de la liste est < 0
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Valeur illégale de la liste requétée");
}
// TODO: Verifier que c'est bien une liste de l'utilisateur.trice connécté.e
// Si la page n'est pas set, on prend la première page
if(!isset($_REQUEST["page"]) || empty($_REQUEST["page"]))
{
$page = 1;
}
else
{
// si la validation a échouée, on prend la première page
$page = Validation::validerUnIntSupperieurZero($_REQUEST["page"]) ? $_REQUEST["page"] : 1;
}
// Si le nombre d'élément n'est pas set, on en prend par défaut 10
if(!isset($_GET["nbElements"]) || empty($_GET["nbElements"]))
{
$nbElements = 10;
}
else
{
// Si la validation a échouée, on prend 10 éléments, sinon, le nombre désiré par l'utilisateur.trice
$nbElements = Validation::validerUnIntSupperieurZero($_GET["nbElements"]) ? $_GET["nbElements"] : 10;
}
$mdl = new ModelConnecte();
// Récupération des taches dans le modèle
$taches = $mdl->getTaches($_REQUEST["list"], $page, $nbElements);
// Définition des variable nécéssaire à la vue.
$actualList = $_REQUEST["list"];
$nomListe = $mdl->getNomListe($actualList);
$maxPage = $mdl->getMaxPageTaches($actualList, $nbElements);
// Affichage de la vue
require("vues/editeurDeStatuts.php");
}
/*
* \brief Permet d'enrgistrer l'état des taches d'une listes
*/
function editDone()
{
// estFait doit être un tableau des taches faites
if(isset($_REQUEST["estFait"]))
{
if(!is_array($_REQUEST["estFait"]))
{
throw new Exception("La liste des taches faites doit être un tableau.");
}
}
else
{
$_REQUEST["estFait"] = array();
}
// exist contient toute les taches de la page où été l'utilisateur.trice
if(!isset($_REQUEST["exist"]))
{
throw new Exception("Aucune tâche n'est définit");
}
if(!is_array($_REQUEST["exist"]))
{
throw new Exception("La liste des taches doit être un tableau.");
}
$mdl = new ModelConnecte();
// Enregistrement avec le modle
$list = $mdl->setDoneTaches($_REQUEST["exist"], $_REQUEST["estFait"]);
// Rediréction
$_REQUEST["action"] = "seeList";
$_REQUEST["list"] = $list;
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page d'ajout de liste
*/
function wantAddList()
{
// Affichage de la vue
require("vues/ajouterListe.php");
}
/*
* \brief Permet de créer une todoList
*/
function addList()
{
// Si le nom de la nouvelle liste n'existe pas ou si elle est vide, on lève une exception
if(!isset($_REQUEST["nomNouvelleListe"]))
{
throw new Exception("La nouvelle liste doit avoir un nom!");
}
if(empty($_REQUEST["nomNouvelleListe"]))
{
throw new Exception("La nouvelle liste doit avoir un nom!");
}
// Nétoyage du nom de la nouvelle liste
$nom = Validation::netoyerString($_REQUEST["nomNouvelleListe"]);
// Si nom est null, c'est qu'il y a eu un problème avec le netoyage
if(is_null($nom))
{
throw new Exception("Le nom de la nouvelle liste contien un ou plusieurs caractères illégales.");
}
$mdl = new ModelConnecte();
// Création de la todoList par le modèle.
$mdl->createTodoList($nom);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page de création de tache
*/
function wantAddTask()
{
$mdl = new ModelConnecte();
// Si la liste où on veut rajouter la tache n'est pas set ou est vide, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit être définit");
}
// Validation du numérode la liste, renvoi null si la validation a échouée
$actualList = Validation::validerUnIntSupperieurZero($_REQUEST["list"]) ? $_REQUEST["list"] : null;
// Si la validation a échouée, on lève une exception
if(is_null($actualList))
{
throw new Exception("Le numero de liste doui être un entier supperieur à 0");
}
// Affichage de la vue
require("vues/addTask.php");
}
/*
* \brief Permet d'ajouter une tache dans une liste
*/
function addTask()
{
$mdl = new ModelConnecte();
// Si le nom de la tache est vide ou n'est pas set, on lève une exception
if(!isset($_REQUEST["nomTache"]))
{
throw new Exception("Le nom de la novelle tache est introuvable (?o?)'");
}
if(empty($_REQUEST["nomTache"]))
{
throw new Exception("Le nom de la nouvelle tache ne doit pas être vide");
}
// Si le commentaire de la tache n'est pas set, on lève une exception
if(!isset($_REQUEST["commentaireTache"]))
{
throw new Exception("Le commentaire de la tache est introuvable!");
}
// Si le numéro de la liste est vide ou n'est pas set, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le numero de liste doit être définit");
}
// Validation des paramètres
$list = Validation::validerUnIntSupperieurZero($_REQUEST["list"]) ? $_REQUEST["list"] : null;
$nom = Validation::netoyerString($_REQUEST["nomTache"]);
$comm = Validation::netoyerString($_REQUEST["commentaireTache"]);
// Verification des paramètre, si il y en a 1 qui vas pas, on lève une exception
if(is_null($nom) || is_null($comm) || is_null($list))
{
throw new Exception("Le nom, la liste ou le commentaire de la nouvelle tache contiennent des caractèrent illégales!");
}
// Création de la tache par le modèle
$mdl->createTask($nom, $comm, $list);
// Rediréction vers la liste modifée
$_REQUEST["action"] = "seeList";
$_REQUEST["list"] = $list;
new ControleurConnecte();
}
/*
* \brief Permet de supprimer une liste
*/
function supprimerListe()
{
$mdl = new ModelConnecte();
// Si le numérode liste n'est pas set ou est vide, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
// Si le numéro de liste est <= 0, on lève une exception
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// TODO: verifier que c'est bien une liste de l'utilisateur.trice
$mdl->supprimerListe($_REQUEST["list"]);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* Permet d'effacer une tache d'une liste
*/
function delTask()
{
$mdl = new ModelConnecte();
// Si la tache est vide, pas set ou <= 0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
}
if(empty($_REQUEST["task"]))
{
throw new Exception("Le paramètre task doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
//TODO: verifier que c'est bien la tache de l'utilisateur.trice
// Si le numéro de la liste est vide, pas set ou <= 0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
//TODO: verifier que c'est bien la list de l'utilisateur.trice et que c'est bien une tache de la liste
// Suppression de la tache par le modèle
$mdl->delTask($_REQUEST["task"]);
//Rediréction vers l'affichage de la liste modifiée
$_REQUEST["action"] = "seeList";
new ControleurConnecte();
}
/*
* \brief permet de se déconnécter
*/
function logout()
{
$mdl = new ModelConnecte();
// Destruction de la séssion par le modèle
$mdl->destroySession();
// Rediréction vers la page de connection
new ControleurCommun();
}
/*
* \brief permet d'afficher la page de modification d'une liste (le nom de la liste)
*/
function veuxModifierListe()
{
// Si le numéro de la liste n'est pas set, vide ou <= 0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Définition des varables dont a besoin la vue
$listeAModifier = $_REQUEST["list"];
// Affichage de la vue
require("vues/editeurDeListe.php");
}
/*
* \brief Permet de modifier le nom de la liste list
*/
function modifyList()
{
$mdl = new ModelConnecte();
// Si le numéro de la lsite est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Si le nouveau non n'est pas set, vide on invalide, on lève une exception
if(!isset($_REQUEST["nouveauNom"]))
{
throw new Exception("Le parametre nouveauNom doit exister");
}
if(empty($_REQUEST["nouveauNom"]))
{
throw new Exception("Le paramètre nouveauNom doit contenire une valeur");
}
$nouveauNom = Validation::netoyerString($_REQUEST["nouveauNom"]);
if(is_null($nouveauNom))
{
throw new Exception("Le nouveau nom contient des caractères illégeaux");
}
// Modification du nom de la liste par le modèle
$mdl->modifierNomListe($_REQUEST["list"], $nouveauNom);
// Rediréction vers l'accueil
$_REQUEST["action"] = "seeLists";
new ControleurConnecte();
}
/*
* \brief Permet d'afficher la page de modification d'une tache
*/
function veuxModifierTache()
{
// Si la tache est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
}
if(empty($_REQUEST["task"]))
{
throw new Exception("Le paramètre task doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
// Si la liste est vide, pas set ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Définition des varable nécéssaire à la vue
$tacheAModifier = $_REQUEST["task"];
$listeAModifier = $_REQUEST["list"];
// Affichage de la vue
require("vues/editeurDeTache.php");
}
/*
* \brief Permet de modifier une tache
*/
function editionTache()
{
$mdl = new ModelConnecte();
// Si le numéro de la tache est pas set, vide ou <=0, on lève une exception
if(!isset($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit exister");
}
if(empty($_REQUEST["task"]))
{
throw new Exception("Le paramètre task doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["task"]))
{
throw new Exception("Le parametre task doit être un entier strictement superieur à 0");
}
// Si le numéro de la liste est pas set, vide ou <=0, on lève une exception
if(!isset($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit exister");
}
if(empty($_REQUEST["list"]))
{
throw new Exception("Le paramètre list doit contenire une valeur");
}
if(!Validation::validerUnIntSupperieurZero($_REQUEST["list"]))
{
throw new Exception("Le parametre list doit être un entier strictement superieur à 0");
}
// Si le nom est vide ou pas set, on lève une exception
if(!isset($_REQUEST["nom"]))
{
throw new Exception("Le parametre nom doit exister");
}
if(empty($_REQUEST["nom"]))
{
throw new Exception("Le paramètre nom doit contenire une valeur");
}
// Si le commentaire est pas set, on lève une exception
if(!isset($_REQUEST["commentaire"]))
{
throw new Exception("Le parametre commentaire doit exister");
}
// Validation des paramètres
$nom = Validation::netoyerString($_REQUEST["nom"]);
$comm = Validation::netoyerString($_REQUEST["commentaire"]);
// Si un des paramètres est invalide, on lève une exception
if(is_null($nom) || is_null($comm))
{
throw new Exception("Le nom ou le commentaire contien des valeurs illégales");
}
// Modification de la tache par le modèle
$mdl->modifierNomCommTache($_REQUEST["task"], $nom, $comm);
// Définition des variables nécessaire à la vue
$list = $_REQUEST["list"];
// Rediréction vers l'affichage le la liste list
$_REQUEST["action"] = "seeList";
new ControleurConnecte();
}
}