diff options
| author | polo <ordipolo@gmx.fr> | 2025-08-26 20:34:38 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-08-26 20:34:38 +0200 |
| commit | 6c28cf85e1b5921e4fb77be230651bc22e83b801 (patch) | |
| tree | f42e38a5a389a0b3960ed9d085998aee668be3aa /src/controller/ArticleController.php | |
| parent | fdbc0d2c6366019249d19ed387df877eda90b320 (diff) | |
| download | cms-6c28cf85e1b5921e4fb77be230651bc22e83b801.tar.gz cms-6c28cf85e1b5921e4fb77be230651bc22e83b801.tar.bz2 cms-6c28cf85e1b5921e4fb77be230651bc22e83b801.zip | |
redirections correctes et bouton supprimer page article, ArticleController::deleteArticle renvoie une Response
Diffstat (limited to 'src/controller/ArticleController.php')
| -rw-r--r-- | src/controller/ArticleController.php | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/controller/ArticleController.php b/src/controller/ArticleController.php index 078754a..a982d8c 100644 --- a/src/controller/ArticleController.php +++ b/src/controller/ArticleController.php | |||
| @@ -6,6 +6,7 @@ declare(strict_types=1); | |||
| 6 | use App\Entity\Node; | 6 | use App\Entity\Node; |
| 7 | use App\Entity\Article; | 7 | use App\Entity\Article; |
| 8 | use Doctrine\ORM\EntityManager; | 8 | use Doctrine\ORM\EntityManager; |
| 9 | use Symfony\Component\HttpFoundation\Response; | ||
| 9 | 10 | ||
| 10 | class ArticleController | 11 | class ArticleController |
| 11 | { | 12 | { |
| @@ -97,7 +98,7 @@ class ArticleController | |||
| 97 | die; | 98 | die; |
| 98 | } | 99 | } |
| 99 | 100 | ||
| 100 | static public function deleteArticle(EntityManager $entityManager, array $json): void | 101 | static public function deleteArticle(EntityManager $entityManager, array $json): Response |
| 101 | { | 102 | { |
| 102 | $director = new Director($entityManager); | 103 | $director = new Director($entityManager); |
| 103 | $director->makeArticleNode($json['id'], true); | 104 | $director->makeArticleNode($json['id'], true); |
| @@ -107,20 +108,18 @@ class ArticleController | |||
| 107 | $entityManager->remove($article); | 108 | $entityManager->remove($article); |
| 108 | $section->removeChild($article); | 109 | $section->removeChild($article); |
| 109 | $section->sortChildren(true); // régénère les positions | 110 | $section->sortChildren(true); // régénère les positions |
| 110 | $entityManager->flush(); | ||
| 111 | |||
| 112 | // test avec une nouvelle requête qui ne devrait rien trouver | ||
| 113 | if(!$director->makeArticleNode($json['id'])) | ||
| 114 | { | ||
| 115 | echo json_encode(['success' => true]); | ||
| 116 | 111 | ||
| 117 | // on pourrait afficher une notification "toast" | 112 | try{ |
| 113 | $entityManager->flush(); | ||
| 114 | return new Response( | ||
| 115 | '{"success": true, "message": "Article supprimé avec succès"}', | ||
| 116 | Response::HTTP_OK); // 200 | ||
| 118 | } | 117 | } |
| 119 | else{ | 118 | catch(Exception $e){ |
| 120 | http_response_code(500); | 119 | return new Response( |
| 121 | echo json_encode(['success' => false, 'message' => 'Erreur lors de la suppression de l\'article.']); | 120 | '{"success": false, "message": "Erreur: ' . $e->getMessage() . '"}', |
| 121 | Response::HTTP_INTERNAL_SERVER_ERROR); // 500 | ||
| 122 | } | 122 | } |
| 123 | die; | ||
| 124 | } | 123 | } |
| 125 | 124 | ||
| 126 | static public function switchPositions(EntityManager $entityManager, array $json): void | 125 | static public function switchPositions(EntityManager $entityManager, array $json): void |
