diff --git a/config/config.php b/config/config.php index 070fad3..a2ee97d 100644 --- a/config/config.php +++ b/config/config.php @@ -32,5 +32,5 @@ $style['accueil'] = 'public/styles/styleAccueil.css'; //Images $image['default'] = 'public/images/default.jpg'; - -?> \ No newline at end of file + + diff --git a/src/Controleur/FrontControler.php b/src/Controleur/FrontControler.php index f7c48aa..44a07b5 100644 --- a/src/Controleur/FrontControler.php +++ b/src/Controleur/FrontControler.php @@ -1,108 +1,109 @@ -listAction = ['visitor' => array('accueil','search','quote','login','signin'), - 'user' => array('quiz','commentary','favorite','logout'), - 'admin' => array('null')]; - - $dVueEreur = []; - - $router = new \AltoRouter(); - - $router->setBasePath('/~kekentin/WF/WF-Website'); - - $router->map('GET', '/', 'VisitorControler','accueil'); - - /* - 'i' => '[0-9]++' - 'a' => '[0-9A-Za-z]++' - 'h' => '[0-9A-Fa-f]++' - '*' => '.+?' - '**' => '.++' - '' => '[^/\.]++' - */ - - $router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler','quote'); - $router->map('GET|POST', '/login', 'VisitorControler','login'); - $router->map('GET|POST', '/signin', 'VisitorControler','signin'); - - $router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler','quiz'); - $router->map('GET|POST', '/search/[a:type]?', 'VisitorControler','search'); - - - $match = $router->match(); - $action = NULL; - - if(!$match){ - $dVueEreur[] = "Requête introuvable"; - $this->vueErreur($dVueEreur); - } - else{ - $controller=$match['target'] ?? null; - - $action = $match['name']; - - //Si existe, on l’appelle - if(!$this->ifExisteAction($action)){ - $dVueEreur[] = "Action introuvable"; - $this->vueErreur($dVueEreur); - } - - else if(!$this->verifDroit($action)){ - $action='login'; - $controller='VisitorControler'; - } - - else { - $controller = '\\Controleur\\' . $controller; - $controller = new $controller($co); - if (is_callable(array($controller, $action))) { - call_user_func_array(array($controller, $action), - array($match['params'])); - } - } - - } - - - } - - private function ifExisteAction(string $action):bool { - if( in_array($action , $this->listAction['admin']) || - in_array($action , $this->listAction['user']) || - in_array($action , $this->listAction['visitor']) ) { - return true; - } - - return false; - } - - private function verifDroit(string $action):bool { - if( in_array($action , $this->listAction['admin']) && $this->role == 'admin') return true; - elseif( in_array($action , $this->listAction['user']) && ($this->role == 'admin' || $this->role == 'user') ) return true; - elseif(in_array($action , $this->listAction['visitor']) && ($this->role == 'admin'|| $this->role == 'user'|| $this->role == 'visitor')) return true; - return false; - } - - private function vueErreur(array $dVueErreur){ - global $vues; - echo "{$dVueErreur[0]}"; - require_once $vues['erreur']; - } - -} +listAction = ['visitor' => array('accueil','search','quote','login','signin'), + 'user' => array('quiz','commentary','favorite','logout'), + 'admin' => array('null')]; + + $dVueEreur = []; + + $router = new \AltoRouter(); + + $router->setBasePath('/~kekentin/WF/WF-Website'); + + $router->map('GET', '/', 'VisitorControler','accueil'); + + /* + 'i' => '[0-9]++' + 'a' => '[0-9A-Za-z]++' + 'h' => '[0-9A-Fa-f]++' + '*' => '.+?' + '**' => '.++' + '' => '[^/\.]++' + */ + + $router->map('GET|POST', '/quote/[i:idQuote]?', 'VisitorControler','quote'); + $router->map('GET|POST', '/login', 'VisitorControler','login'); + $router->map('GET|POST', '/signin', 'VisitorControler','signin'); + + $router->map('GET|POST', '/quiz/[i:id]?', 'QuizControler','quiz'); + $router->map('GET|POST', '/search/[a:type]?', 'VisitorControler','search'); + + + $match = $router->match(); + $action = NULL; + + if(!$match){ + $dVueEreur[] = "Requête introuvable"; + $this->vueErreur($dVueEreur); + } + else{ + $controller=$match['target'] ?? null; + + $action = $match['name']; + + //Si existe, on l’appelle + if(!$this->ifExisteAction($action)){ + $dVueEreur[] = "Action introuvable"; + $this->vueErreur($dVueEreur); + } + + else if(!$this->verifDroit($action)){ + $action='login'; + $controller='VisitorControler'; + } + + else { + $controller = '\\Controleur\\' . $controller; + $controller = new $controller($co); + if (is_callable(array($controller, $action))) { + call_user_func_array(array($controller, $action), + array($match['params'])); + } + } + + } + + + } + + private function ifExisteAction(string $action):bool { + if( in_array($action , $this->listAction['admin']) || + in_array($action , $this->listAction['user']) || + in_array($action , $this->listAction['visitor']) ) { + return true; + } + + return false; + } + + private function verifDroit(string $action):bool { + if( in_array($action , $this->listAction['admin']) && $this->role == 'admin') return true; + elseif( in_array($action , $this->listAction['user']) && ($this->role == 'admin' || $this->role == 'user') ) return true; + elseif(in_array($action , $this->listAction['visitor']) && ($this->role == 'admin'|| $this->role == 'user'|| $this->role == 'visitor')) return true; + return false; + } + + private function vueErreur(array $dVueErreur){ + global $vues; + echo "{$dVueErreur[0]}"; + require_once $vues['erreur']; + } + +} + diff --git a/src/Controleur/VisitorControler.php b/src/Controleur/VisitorControler.php index 2b99d63..e360f72 100644 --- a/src/Controleur/VisitorControler.php +++ b/src/Controleur/VisitorControler.php @@ -1,37 +1,46 @@ -qMod = new QuoteModel(new QuoteGateway($co)); + } + + public function accueil(){ + global $vues; + require_once $vues['accueil']; + } + + public function quote(array $arg){ + global $vues; + $id=$arg['idQuote'] ?? 1; + $q = $this->qMod->searchId($id); + //echo "{$id}"; + require_once $vues['quote']; + } + + public function login(){ + + global $vues; + require_once $vues['login']; + } + + public function signin(){ + + global $vues; + require_once $vues['signin']; + } + + public function search(){ + + global $vues; + require_once $vues['search']; + } +} \ No newline at end of file diff --git a/src/Entity/quoteEntity.php b/src/Entity/Quote.php similarity index 100% rename from src/Entity/quoteEntity.php rename to src/Entity/Quote.php diff --git a/src/Gateway/quoteGateway.php b/src/Gateway/QuoteGateway.php similarity index 94% rename from src/Gateway/quoteGateway.php rename to src/Gateway/QuoteGateway.php index 173353c..2794c32 100644 --- a/src/Gateway/quoteGateway.php +++ b/src/Gateway/QuoteGateway.php @@ -1,135 +1,134 @@ -con=$con; - } - - public function searchQuote(string $quote,int $numpage,string $language):array{ - - //recherche par citation - $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE content LIKE '%:quote%' AND isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; - $this->con->executeQuery($query,array(':quote' => array($quote,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); - $result=$this->con->getResults(); - return $result; - } - - public function searchSource(string $source,int $numpage,string $language):array{ - - //recherche par source - $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE s.title LIKE '%:source%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; - $this->con->executeQuery($query,array(':source' => array($source,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); - $result=$this->con->getResults(); - return $result; - } - - public function searchPers(string $Carac,int $numpage,string $language):array{ - - //recherche par personnage - $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE c.caracter LIKE '%:pers%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; - $this->con->executeQuery($query,array(':pers' => array($Pers,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); - $result=$this->con->getResults(); - return $result; - } - - public function searchId(string $id):array{ - - //recherche par id - $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE q.id_quote = '%:id%' AND q.isValid = true;"; - $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); - $result=$this->con->getResults(); - return $result; - } - - - - //======================== PARTI ADMIN ======================== - //Probablement à déplacer dans un autre fichier - - public function getQuoteIsValide():array{ - //obtenir les quotes en attentes de validation par l'admin - $query = 'SELECT * FROM Quote WHERE isValid=:bool'; - $this->con->executeQuery($query,array(':bool' => array(false, PDO::PARAM_BOOL))); - $result=$this->con->getResults(); - return $result; - } - - public function validQuote(int $id){ - //Valider la quote par l'admin - $query ='UPDATE Quote SET isValid=:newValide WHERE id_Quote=:id'; - $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); - } - - public function invalidQuote(int $id){ - //Invalide la quote par l'admin (suppression) - $query ='DELETE FROM Quote WHERE id_Quote=:id'; - $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); - } - - public function updateContent(int $id, string $newContent):array{ - //Update le contexte de quote passé en paramètre - $queryUpdate = 'UPDATE Quote SET content=:newContent WHERE id_quote=:idQuote'; - $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newContent'=> array($newContent, PDO::PARAM_STR))); - - //Renvoie le nouveau contexte de quote - $queryReponse = 'SELECT content FROM Quote WHERE id_quote=:idQuote'; - $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; - } - - public function updateTimeCode(int $id, string $newTimeCode):array{ - //Update le time code de quote passé en paramètre - $queryUpdate = 'UPDATE Quote SET timecode=:newTimeCode WHERE id_quote=:idQuote'; - $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTimeCode'=> array($newTimeCode, PDO::PARAM_STR))); - - //Renvoie le nouveau contexte de quote - $queryReponse = 'SELECT timecode FROM Quote WHERE id_quote=:idQuote'; - $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; - } - - public function updateDate(int $id, int $newDate):array{ - //Update la date de quote passé en paramètre - $queryUpdate = 'UPDATE Source SET dateSource =:newdate WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; - $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newDate'=> array($newDate, PDO::PARAM_INT))); - - //Renvoie la nouvelle date de quote - $queryReponse = 'SELECT s.dateSource FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; - $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; - } - - public function updateTitle(int $id, string $newTitle):array{ - //Update le titre de l'oeuvre de quote passé en paramètre - $queryUpdate = 'UPDATE Source SET title =:newTitle WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; - $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTitle'=> array($newTitle, PDO::PARAM_STR))); - - //Renvoie le nouveau titre de quote - $queryReponse = 'SELECT s.title FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; - $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; - } - - public function updateNameCharacter(int $id, string $newNameCharacter):array{ - //Update le personnage de l'oeuvre de quote passé en paramètre - $queryUpdate = 'UPDATE Character SET name =:newNameCharacter WHERE idCharacter = (SELECT idCharacter FROM Quote WHERE idQuote =:idQuote)'; - $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newNameCharacter'=> array($newNameCharacter, PDO::PARAM_STR))); - - //Renvoie le nouveau personnage de quote - $queryReponse = 'SELECT c.title FROM Character c, Quote q WHERE id_quote=:idQuote AND c.idCharacter = q.idCharacter'; - $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; - } - -} - -?> +con=$con; + } + + public function searchQuote(string $quote,int $numpage,string $language):array{ + + //recherche par citation + $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE content LIKE '%:quote%' AND isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; + $this->con->executeQuery($query,array(':quote' => array($quote,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); + $result=$this->con->getResults(); + return $result; + } + + public function searchSource(string $source,int $numpage,string $language):array{ + + //recherche par source + $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE s.title LIKE '%:source%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; + $this->con->executeQuery($query,array(':source' => array($source,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); + $result=$this->con->getResults(); + return $result; + } + + public function searchPers(string $Carac,int $numpage,string $language):array{ + + //recherche par personnage + $query="SELECT q.id_quote, q.content, c.caracter, c.img_path, s.title, s.date, q.like, q.language FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source WHERE c.caracter LIKE '%:pers%' AND q.isValid = true AND language = :language LIMIT 20 OFFSET :page*20;"; + $this->con->executeQuery($query,array(':pers' => array($Pers,PDO::PARAM_STR),':page' => array($numpage,PDO::PARAM_INT),':language' => array($language,PDO::PARAM_STR))); + $result=$this->con->getResults(); + return $result; + } + + public function searchId(string $id):array{ + + //recherche par id + $query="SELECT q.id_quote, q.content, c.caracter, i.imgPath, s.title, s.dates, q.likes, q.langue FROM Quote q JOIN Caracter c ON c.id_caracter = q.id_caracter JOIN Source s ON s.id_source = q.id_source JOIN Image i ON c.id_img = i.id_img WHERE q.id_quote = :id AND q.isvalide = true;"; + $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); + $result=$this->con->getResults(); + return $result; + } + + + + //======================== PARTI ADMIN ======================== + //Probablement à déplacer dans un autre fichier + + public function getQuoteIsValide():array{ + //obtenir les quotes en attentes de validation par l'admin + $query = 'SELECT * FROM Quote WHERE isValid=:bool'; + $this->con->executeQuery($query,array(':bool' => array(false, PDO::PARAM_BOOL))); + $result=$this->con->getResults(); + return $result; + } + + public function validQuote(int $id){ + //Valider la quote par l'admin + $query ='UPDATE Quote SET isValid=:newValide WHERE id_Quote=:id'; + $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); + } + + public function invalidQuote(int $id){ + //Invalide la quote par l'admin (suppression) + $query ='DELETE FROM Quote WHERE id_Quote=:id'; + $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); + } + + public function updateContent(int $id, string $newContent):array{ + //Update le contexte de quote passé en paramètre + $queryUpdate = 'UPDATE Quote SET content=:newContent WHERE id_quote=:idQuote'; + $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newContent'=> array($newContent, PDO::PARAM_STR))); + + //Renvoie le nouveau contexte de quote + $queryReponse = 'SELECT content FROM Quote WHERE id_quote=:idQuote'; + $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); + $result = $con->getResults(); + return $result; + } + + public function updateTimeCode(int $id, string $newTimeCode):array{ + //Update le time code de quote passé en paramètre + $queryUpdate = 'UPDATE Quote SET timecode=:newTimeCode WHERE id_quote=:idQuote'; + $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTimeCode'=> array($newTimeCode, PDO::PARAM_STR))); + + //Renvoie le nouveau contexte de quote + $queryReponse = 'SELECT timecode FROM Quote WHERE id_quote=:idQuote'; + $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); + $result = $con->getResults(); + return $result; + } + + public function updateDate(int $id, int $newDate):array{ + //Update la date de quote passé en paramètre + $queryUpdate = 'UPDATE Source SET dateSource =:newdate WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; + $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newDate'=> array($newDate, PDO::PARAM_INT))); + + //Renvoie la nouvelle date de quote + $queryReponse = 'SELECT s.dateSource FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; + $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); + $result = $con->getResults(); + return $result; + } + + public function updateTitle(int $id, string $newTitle):array{ + //Update le titre de l'oeuvre de quote passé en paramètre + $queryUpdate = 'UPDATE Source SET title =:newTitle WHERE idSource = (SELECT idSource FROM Quote WHERE idQuote =:idQuote)'; + $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newTitle'=> array($newTitle, PDO::PARAM_STR))); + + //Renvoie le nouveau titre de quote + $queryReponse = 'SELECT s.title FROM Source s, Quote q WHERE id_quote=:idQuote AND s.idSource = q.idSource'; + $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); + $result = $con->getResults(); + return $result; + } + + public function updateNameCharacter(int $id, string $newNameCharacter):array{ + //Update le personnage de l'oeuvre de quote passé en paramètre + $queryUpdate = 'UPDATE Character SET name =:newNameCharacter WHERE idCharacter = (SELECT idCharacter FROM Quote WHERE idQuote =:idQuote)'; + $con->executeQuery($queryUpdate, array(':idQuote'=>array($id, PDO::PARAM_STR), ':newNameCharacter'=> array($newNameCharacter, PDO::PARAM_STR))); + + //Renvoie le nouveau personnage de quote + $queryReponse = 'SELECT c.title FROM Character c, Quote q WHERE id_quote=:idQuote AND c.idCharacter = q.idCharacter'; + $con->executeQuery($queryReponse, array(':idQuote'=>array($id, PDO::PARAM_STR))); + $result = $con->getResults(); + return $result; + } + +} + +?> \ No newline at end of file diff --git a/src/Model/QuoteModel.php b/src/Model/QuoteModel.php new file mode 100644 index 0000000..2bcaea4 --- /dev/null +++ b/src/Model/QuoteModel.php @@ -0,0 +1,23 @@ +gateway = $gate; + } + + public function searchId(int $id): Quote{ + $res = $this->gateway->searchId($id); + if( count($res) == 0) + return new Quote(-1,"NULL","NULL","NULL","NULL","NULL",0,"Default"); + else + return new Quote($res[0]["id_quote"],$res[0]["content"],$res[0]["caracter"],$res[0]["imgpath"],$res[0]["title"],$res[0]["dates"],$res[0]["likes"],$res[0]["langue"]); + } + } + +?> diff --git a/src/Model/quoteModel.php b/src/Model/quoteModel.php deleted file mode 100644 index 2f84e0b..0000000 --- a/src/Model/quoteModel.php +++ /dev/null @@ -1,20 +0,0 @@ -gateway = $gate; - } - - public function searchId(int $id): Quote{ - $res = $this->gate->searchId($id)[0]; - return new Quote($res["q.id_quote"],$res["q.content"],$res["c.caracter"],$res["c.img_path"],$res["s.title"],$res["s.date"],$res["q.like"],$res["q.language"]); - } - } - -?> diff --git a/vue/login.php b/vue/login.php index 452d02a..e6fea79 100644 --- a/vue/login.php +++ b/vue/login.php @@ -1,12 +1,12 @@ -render('head.html.twig', array( - 'title' => "Login", - 'style' => "public/styles/styleLogin.css", - )); - - echo $twig->render('bandeau.html.twig'); - echo $twig->render('login.html'); +render('head.html.twig', array( + 'title' => "Login", + 'style' => "public/styles/styleLogin.css", + )); + + echo $twig->render('bandeau.html.twig'); + echo $twig->render('login.html'); ?> \ No newline at end of file diff --git a/vue/quote.php b/vue/quote.php index aeda8dc..0b7f5e2 100644 --- a/vue/quote.php +++ b/vue/quote.php @@ -1,21 +1,20 @@ -render('head.html.twig', array( - 'title' => "Quote", - 'style' => "public/styles/styleQuote.css", - )); - - echo $twig->render('bandeau.html.twig'); - echo $twig->render('quote.html', array( - 'srcImg' => "public/images/Dark_Vador.jpg", - 'nameCarac' => "Dark Vador", - 'quoteContent' => "Je suis ton père", - 'sourceName' => "Star Wars V : L’Empire contre-attaque", - 'dateSortie' => "1980", - 'nbLike' => "173000", - 'timeCode' =>"1h45", - -)); +render('head.html.twig', array( + 'title' => "Quote", + 'style' => "../public/styles/styleQuote.css", + )); + echo $twig->render('bandeau.html.twig'); + echo $twig->render('quote.html', array( + 'srcImg' => $q->getImgPath(), + 'nameCarac' => $q->getCarac(), + 'quoteContent' => $q->getContent(), + 'sourceName' => $q->getTitleSrc(), + 'dateSortie' => $q->getDateSrc(), + 'nbLike' => $q->getLike(), + 'timeCode' =>"1h45", + +)); ?> \ No newline at end of file diff --git a/vue/templates/login.html b/vue/templates/login.html index dae6031..8da6981 100644 --- a/vue/templates/login.html +++ b/vue/templates/login.html @@ -1,37 +1,38 @@ -
-
- - -
- user -
-
-
-

▶ Connexion ◀

- -
-

Identifiant *

- - -

Mot de passe *

- - -
-

Vous n'avez pas de compte?

- S'incrire -
- - -
- -
- -
- + +
+
+ + +
+ user +
+
+
+

▶ Connexion ◀

+ +
+

Identifiant *

+ + +

Mot de passe *

+ + +
+

Vous n'avez pas de compte?

+ S'incrire +
+ + +
+ +
+ +
+ \ No newline at end of file