From 6ee3b356f7d7d0db45dbb01c1d51c33179118b92 Mon Sep 17 00:00:00 2001 From: "anthony.richard" Date: Thu, 9 Nov 2023 16:29:39 +0100 Subject: [PATCH] =?UTF-8?q?impl=C3=A9mentation=20de=20l'action=20addUserTo?= =?UTF-8?q?Group?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/php/controller/AdminController.php | 19 +++++++++++-- Project/php/gateway/UserGateway.php | 16 +++++++++++ Project/php/model/MdlAdmin.php | 10 +++++++ Project/php/templates/groupView.html | 33 ++++++++++++++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) diff --git a/Project/php/controller/AdminController.php b/Project/php/controller/AdminController.php index c2388f4..68192e4 100755 --- a/Project/php/controller/AdminController.php +++ b/Project/php/controller/AdminController.php @@ -56,6 +56,10 @@ class AdminController $this->addGroup(); break; + case 'addUserToGroup': + $this->addUserToGroup(); + break; + default: $dVueEreur[] = "Erreur d'appel php"; echo $twig->render('vuephp1.html', ['dVueEreur' => $dVueEreur]); @@ -123,7 +127,8 @@ class AdminController global $twig; $model = new MdlAdmin(); $groups = $model->showAllGroups(); - echo $twig->render('groupView.html', ['groups' => $groups]); + $unassignedUsers = $model->getUnassignedUsers(); + echo $twig->render('groupView.html', ['groups' => $groups, 'unassignedUsers' => $unassignedUsers]); } public function showGroupDetails(): void { @@ -132,7 +137,8 @@ class AdminController $id = $_GET['selectedGroup']; $groups = $model->showAllGroups(); $users = $model->getUsersOfGroup($id); - echo $twig->render('groupView.html', ['groups' => $groups, 'selectedGroup' => $id, 'users' => $users]); + $unassignedUsers = $model->getUnassignedUsers(); + echo $twig->render('groupView.html', ['groups' => $groups, 'selectedGroup' => $id, 'users' => $users, 'unassignedUsers' => $unassignedUsers]); } public function removeUserFromGroup(): void { @@ -157,4 +163,13 @@ class AdminController $model->addGroup($num, $year, $sector); $this->showAllGroups(); } + + public function addUserToGroup(): void { + $model = new MdlAdmin(); + $user = $_GET['userID']; + $group = $_GET['groupID']; + $model->addUserToGroup($user, $group); + $_GET['selectedGroup'] = $group; + $this->showGroupDetails(); + } } diff --git a/Project/php/gateway/UserGateway.php b/Project/php/gateway/UserGateway.php index b08fdec..273b761 100755 --- a/Project/php/gateway/UserGateway.php +++ b/Project/php/gateway/UserGateway.php @@ -277,4 +277,20 @@ class UserGateway extends AbsGateway throw new Exception($e->getMessage()); } } + + public function findUnassignedUsers() + { + try { + $query = "SELECT * FROM User_ WHERE groupID=0"; + $this->con->executeQuery($query); + $results = $this->con->getResults(); + $tab = array(); + foreach ($results as $row) + $tab[] = new User($row['id'], $row['password'], $row['email'], $row['name'], $row['surname'], $row['nickname'], $row['image'], $row['extraTime'], $row['groupID'], $this->getRoles($row['id'])); + return $tab; + } + catch(PDOException $e ){ + throw new Exception($e->getMessage()); + } + } } \ No newline at end of file diff --git a/Project/php/model/MdlAdmin.php b/Project/php/model/MdlAdmin.php index e934a1f..d488fd5 100755 --- a/Project/php/model/MdlAdmin.php +++ b/Project/php/model/MdlAdmin.php @@ -72,4 +72,14 @@ class MdlAdmin extends AbsModel $gtw = new GroupGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger')); $gtw->add(array($num, $year, $sector)); } + + public function addUserToGroup($user, $group): void { + $gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger')); + $gtw->modifyGroup($user, $group); + } + + public function getUnassignedUsers(): array { + $gtw = new UserGateway(new Connection('mysql:host=localhost;dbname=dbanrichard7', 'anrichard7', 'achanger')); + return $gtw->findUnassignedUsers(); + } } \ No newline at end of file diff --git a/Project/php/templates/groupView.html b/Project/php/templates/groupView.html index e95aa6d..516b9a9 100755 --- a/Project/php/templates/groupView.html +++ b/Project/php/templates/groupView.html @@ -9,6 +9,7 @@ body{ display: flex; justify-content: space-around; + flex-wrap: wrap; } section{ border: 1px solid black; @@ -87,5 +88,37 @@ +
+

Unassigned users

+ + + + + + + + + + + + {% if unassignedUsers is defined %} + {% for row in unassignedUsers %} + + + + + + + + + + + + {% endfor %} + {% endif %} +
IDNicknameNameSurnameMailGroupRoleExtra Time
{{row.id}}{{row.nickname}}{{row.name}}{{row.surname}}{{row.email}}{{row.group}}{{row.role}}{{row.extraTime}} + +
+
\ No newline at end of file