aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/controller/ArticleController.php23
-rw-r--r--src/router.php21
-rw-r--r--src/view/NewBuilder.php26
-rw-r--r--src/view/templates/new.php1
4 files changed, 47 insertions, 24 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);
6use App\Entity\Node; 6use App\Entity\Node;
7use App\Entity\Article; 7use App\Entity\Article;
8use Doctrine\ORM\EntityManager; 8use Doctrine\ORM\EntityManager;
9use Symfony\Component\HttpFoundation\Response;
9 10
10class ArticleController 11class 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
diff --git a/src/router.php b/src/router.php
index eddd199..8aa0aa9 100644
--- a/src/router.php
+++ b/src/router.php
@@ -13,7 +13,6 @@ $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' requête AJAX xhs, non uti
13 13
14declare(strict_types=1); 14declare(strict_types=1);
15 15
16
17if($_SERVER['REQUEST_METHOD'] === 'GET'){ 16if($_SERVER['REQUEST_METHOD'] === 'GET'){
18 // table "user" vide 17 // table "user" vide
19 if(!UserController::existUsers($entityManager)){ 18 if(!UserController::existUsers($entityManager)){
@@ -95,9 +94,10 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
95 { 94 {
96 ArticleController::editorSubmit($entityManager, $json); 95 ArticleController::editorSubmit($entityManager, $json);
97 } 96 }
98 elseif($_GET['action'] === 'delete_article' && isset($json['id'])) 97 elseif($_GET['action'] === 'delete_article' && isset($json['id'])){
99 { 98 $response = ArticleController::deleteArticle($entityManager, $json); // version AJAX
100 ArticleController::deleteArticle($entityManager, $json); 99 $response->send();
100 die;
101 } 101 }
102 // inversion de la position de deux noeuds 102 // inversion de la position de deux noeuds
103 elseif($_GET['action'] === 'switch_positions' && isset($json['id1']) && isset($json['id2'])) 103 elseif($_GET['action'] === 'switch_positions' && isset($json['id1']) && isset($json['id2']))
@@ -214,8 +214,19 @@ elseif($_SERVER['REQUEST_METHOD'] === 'POST'){
214 /* -- envoi formulaire HTML -- */ 214 /* -- envoi formulaire HTML -- */
215 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded') 215 elseif($_SERVER['CONTENT_TYPE'] === 'application/x-www-form-urlencoded')
216 { 216 {
217 if($_GET['action'] === 'delete_article' && isset($_GET['id'])){
218 $response = json_decode(ArticleController::deleteArticle($entityManager, $_GET)->getContent(), true); // version formulaire
219 $url = new URL;
220 if(isset($_GET['from'])){
221 $url->addParams(['page' => $_GET['from']]);
222 }
223 $url->addParams(['success' => $response['success'], 'message' => $response['message']]);
224 header('Location: ' . $url);
225 die;
226 }
227
217 /* -- nouvelle page -- */ 228 /* -- nouvelle page -- */
218 if(isset($_POST['page_name']) && $_POST['page_name'] !== null 229 elseif(isset($_POST['page_name']) && $_POST['page_name'] !== null
219 && isset($_POST['page_name_path']) && $_POST['page_name_path'] !== null 230 && isset($_POST['page_name_path']) && $_POST['page_name_path'] !== null
220 && isset($_POST['page_location']) && $_POST['page_location'] !== null 231 && isset($_POST['page_location']) && $_POST['page_location'] !== null
221 && isset($_POST['page_description']) && $_POST['page_description'] !== null 232 && isset($_POST['page_description']) && $_POST['page_description'] !== null
diff --git a/src/view/NewBuilder.php b/src/view/NewBuilder.php
index fc6ade6..2d30d32 100644
--- a/src/view/NewBuilder.php
+++ b/src/view/NewBuilder.php
@@ -99,14 +99,28 @@ class NewBuilder extends AbstractBuilder
99 $submit_js_date = 'onclick="submitDate(\'' . $id_date . '\')"'; 99 $submit_js_date = 'onclick="submitDate(\'' . $id_date . '\')"';
100 $submit_date = '<p id="submit-' . $id_date . '" class="hidden"><button ' . $submit_js_date . '>Valider</button></p>'; 100 $submit_date = '<p id="submit-' . $id_date . '" class="hidden"><button ' . $submit_js_date . '>Valider</button></p>';
101 $date_buttons = '<div class="button_zone">' . $modify_date . $close_editor_date . $submit_date . '</div>'; 101 $date_buttons = '<div class="button_zone">' . $modify_date . $close_editor_date . $submit_date . '</div>';
102 102
103 $submit_article = ''; 103 // mode nouvel article
104 // nouvel article: bouton pour valider la création d'un nouvel article
105 if($_GET['id'][0] != 'i'){ 104 if($_GET['id'][0] != 'i'){
105 $delete_article = '';
106 // valider la création d'un nouvel article
106 $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\', \'' . Director::$page_path->getLast()->getEndOfPath() . '\')"'; 107 $submit_js = 'onclick="submitArticle(\'' . $_GET['id'] . '\', \'' . Director::$page_path->getLast()->getEndOfPath() . '\')"';
107 $submit_article = '<p id="save-' . $id . '"><button ' . $submit_js . '><img class="action_icon" src="assets/edit.svg">Tout<br>enregistrer</button></p>' . "\n"; 108 $submit_article = '<p id="save-' . $id . '"><button ' . $submit_js . '><img class="action_icon" src="assets/edit.svg"><span class="delete_button">Tout<br>enregistrer</span></button></p>' . "\n";
108 } 109 }
109 $admin_buttons = $submit_article; 110 // mode article existant
111 else{
112 // supprimer article existant
113 $url = new URL(['action' => 'delete_article', 'id' => $_GET['id'], 'from' => $_GET['from']]);
114 $delete_article = '<form id="delete-' . $id . '" method="post" onsubmit="return confirm(\'Voulez-vous vraiment supprimer cet article ?\');" action="' . $url . '">
115 <p><button type="submit">
116 <img class="action_icon" src="assets/delete-bin.svg">
117 <span class="delete_button">Supprimer<br>cet article</span>
118 </button></p>
119 </form>' . "\n";
120 $submit_article = '';
121 }
122
123 $admin_buttons = $delete_article . $from_to_button . $submit_article;
110 } 124 }
111 // page d'accueil 125 // page d'accueil
112 else{ 126 else{
@@ -126,7 +140,7 @@ class NewBuilder extends AbstractBuilder
126 140
127 $submit_article = '<p id="submit-' . $id . '" class="hidden"></p>'; 141 $submit_article = '<p id="submit-' . $id . '" class="hidden"></p>';
128 142
129 $admin_buttons = $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article; 143 $admin_buttons = $from_to_button . $modify_article . $up_button . $down_button . $delete_article . $close_editor . $submit_article;
130 } 144 }
131 } 145 }
132 146
diff --git a/src/view/templates/new.php b/src/view/templates/new.php
index 6533913..1b25eba 100644
--- a/src/view/templates/new.php
+++ b/src/view/templates/new.php
@@ -24,7 +24,6 @@
24 </div> 24 </div>
25 <?= $date_buttons ?> 25 <?= $date_buttons ?>
26 <div class="article_admin_zone"> 26 <div class="article_admin_zone">
27 <?= $from_to_button ?>
28 <?= $admin_buttons ?> 27 <?= $admin_buttons ?>
29 </div> 28 </div>
30 </div> 29 </div>