Sfoglia il codice sorgente

added deletion of a division

Плотников Роман Вячеславович 3 anni fa
parent
commit
b3b9e6244b
4 ha cambiato i file con 27 aggiunte e 7 eliminazioni
  1. 19 1
      app/Controller/Site.php
  2. 2 1
      routes/web.php
  3. 5 4
      views/site/delete_division.php
  4. 1 1
      views/site/hello.php

+ 19 - 1
app/Controller/Site.php

@@ -149,7 +149,7 @@ class Site
 
         try {
             if (User::create($request->all())) {
-                app()->route->redirect('/hello');
+                return (new View)->render('site.create_new_user', ['states' => $states, 'error' => 'Успешно создан юзер с логином ' . $post['login']]);
             }
         } catch (QueryException $e) {
             return new View('site.create_new_user', ['error' => 'Логин занят.', 'states' => $states]);
@@ -264,4 +264,22 @@ class Site
             return $view->render('site.delete_state', ['states' => $states, 'message' => 'Удалён успешно']);
         }
     }
+
+    public function deleteDivision(Request $request): string
+    {
+        $divisions = Division::all();
+        $view = new View();
+        if ($request->method === 'GET') return $view->render('site.delete_division', ['divisions' => $divisions]);
+
+        $post = $request->post;
+
+        if($post['id'] === 'fake') return $view->render('site.delete_division', ['divisions' => $divisions, 'message' => 'Выберите подразделение']);
+
+        $division = Division::where('id', $post['id'])->first();
+
+        if ($division->delete()) {
+            $divisions = Division::all();
+            return $view->render('site.delete_division', ['divisions' => $divisions, 'message' => 'Удалён успешно']);
+        }
+    }
 }

+ 2 - 1
routes/web.php

@@ -21,4 +21,5 @@ Route::add(['GET', 'POST'], '/createNewUser', [Controller\Site::class, 'createNe
 Route::add(['GET', 'POST'], '/createNewState', [Site::class, 'createnewState']);
 Route::add(['GET', 'POST'], '/createNewDivision', [Site::class, 'createNewDivision']);
 Route::add(['GET', 'POST'], '/deleteUser', [Site::class, 'deleteUser']);
-Route::add(['GET', 'POST'], '/deleteState', [Site::class, 'deleteState']);
+Route::add(['GET', 'POST'], '/deleteState', [Site::class, 'deleteState']);
+Route::add(['GET', 'POST'], '/deleteDivision', [Site::class, 'deleteDivision']);

+ 5 - 4
views/site/delete_division.php

@@ -1,14 +1,15 @@
 <div class="staff-wrapper">
 <form method="POST">
-    <select name="login" id="" required> 
-        <option value="fake">Логин пользователя</option> <?php
+    <select name="id" id="" required> 
+        <option value="fake">Название подразделения</option> <?php
 
-        foreach($users as $user) { ?>
-            <option value="<?= $user->id ?>"><?= $user->login ?></option> <?php
+        foreach($divisions as $division) { ?>
+            <option value="<?= $division->id ?>"><?= $division->name ?></option> <?php
         } ?>
         
     </select>
     <input type="submit" value="Удалить">
+    <p><?= $message ?? '' ?></p>
 </form>
     
 </div>

+ 1 - 1
views/site/hello.php

@@ -22,7 +22,7 @@ if ($isAdmin) { ?>
         <div class="admin-actions">
             <a href="<?= app()->route->getUrl('/deleteUser') ?>" class="add-new">Удалить пользователя</a>
             <a href="<?= app()->route->getUrl('/deleteState') ?>" class="add-new">Удалить штат</a>
-            <a href="" class="add-new">Удалить подразделение</a>
+            <a href="<?= app()->route->getUrl('/deleteDivision') ?>" class="add-new">Удалить подразделение</a>
         </div>
     </div>