From 1d64a7f64851b9fe3d716de8e98f9294e7217c6e Mon Sep 17 00:00:00 2001
From: Alexander Jason <alexanderjason526@gmail.com>
Date: Mon, 9 Oct 2023 21:28:30 +0700
Subject: [PATCH] feat: delete page popup

---
 app/pages/admin/DeleteAuthorPage.php | 45 ++++++++++++++++++++++++++--
 app/pages/admin/DeleteBookPage.php   | 43 +++++++++++++++++++++++++-
 app/pages/admin/DeleteGenrePage.php  | 45 ++++++++++++++++++++++++++--
 app/pages/admin/DeleteUserPage.php   | 45 ++++++++++++++++++++++++++--
 4 files changed, 170 insertions(+), 8 deletions(-)

diff --git a/app/pages/admin/DeleteAuthorPage.php b/app/pages/admin/DeleteAuthorPage.php
index 0b018cf..a82bfde 100644
--- a/app/pages/admin/DeleteAuthorPage.php
+++ b/app/pages/admin/DeleteAuthorPage.php
@@ -10,6 +10,7 @@
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css">
     <!-- Navbar CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css">
+    <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css">
     <!-- Page-specific CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css">
     <title>Delete Author : <? echo $this->data['author_id'];?></title>
@@ -18,13 +19,25 @@
 <body>
     <!-- Navigation bar -->
     <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?>
+    <section>
+        <!-- Pop Up -->
+        <span class="overlay"></span>
+
+        <div class="modal-box">
+            <h2>Delete Author</h2>
+            <h3>Are you sure want to delete this Author?</h3>
+
+            <div class="buttons">
+                <button class="cancel-btn">Cancel</button>
+                <button id="deleteAuthor" class="confirm-btn-delete">Delete</button>
+            </div>
+        </div>
     <div class="wrapper-small">
         <div class="pad-40">
             <h1>Delete Author Page</h1>
             <div class="centered">
                 <form  
                     class="center-contents"
-                    action="/author/delete/<? echo $this->data['author_id']?>" method="POST" enctype="multipart/form-data"
                 >
                     <p class="form-label">Author ID : <?
                         echo $this->data['author_id'];
@@ -39,12 +52,38 @@
                     ?></p>
 
 
-                    <input type="submit" class="button green-button" value="Delete">
+                    <input type="button" class="show-modal button green-button" value="Delete">
 
                 </form>
             </div>
         </div>
     </div>
-</body>
+</section>
+<script>
+    const section = document.querySelector("section"),
+        overlay = document.querySelector(".overlay"),
+        showBtn = document.querySelector(".show-modal"),
+        closeBtn = document.querySelector(".cancel-btn"),
+        deleteAuthor = document.getElementById("deleteAuthor");
 
+        deleteAuthor.addEventListener("click", function (event) {
+            event.preventDefault();
+            const form = document.querySelector('form');
+            form.action="/author/delete/<? echo $this->data['author_id']?>";
+            form.method = "POST";
+            form.enctype = "multipart/form-data";
+            form.submit();
+        });
+
+    showBtn.addEventListener("click", ()=>section.classList.add("active"));
+
+    overlay.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+
+    closeBtn.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+</script>
+</body>
 </html>
\ No newline at end of file
diff --git a/app/pages/admin/DeleteBookPage.php b/app/pages/admin/DeleteBookPage.php
index b980aca..a59cbbc 100644
--- a/app/pages/admin/DeleteBookPage.php
+++ b/app/pages/admin/DeleteBookPage.php
@@ -10,6 +10,7 @@
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css">
     <!-- Navbar CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css">
+    <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css">
     <!-- Page-specific CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css">
     <title>Delete Book : <? echo $this->data['title'];?></title>
@@ -18,6 +19,19 @@
 <body>
     <!-- Navigation bar -->
     <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?>
+    <section>
+        <!-- Pop Up -->
+        <span class="overlay"></span>
+
+        <div class="modal-box">
+            <h2>Delete Book</h2>
+            <h3>Are you sure want to delete this Book?</h3>
+
+            <div class="buttons">
+                <button class="cancel-btn">Cancel</button>
+                <button id="deleteBook" class="confirm-btn-delete">Delete</button>
+            </div>
+        </div>
     <div class="wrapper-small">
         <div class="pad-40">
             <h1>Delete Book Page</h1>
@@ -50,12 +64,39 @@
                     ?></p>
 
 
-                    <input type="submit" class="button green-button" value="Delete">
+                    <input type="button" class="show-modal button green-button" value="Delete">
 
                 </form>
             </div>
         </div>
     </div>
+    </section>
+<script>
+    const section = document.querySelector("section"),
+        overlay = document.querySelector(".overlay"),
+        showBtn = document.querySelector(".show-modal"),
+        closeBtn = document.querySelector(".cancel-btn"),
+        deleteBook = document.getElementById("deleteBook");
+
+        deleteBook.addEventListener("click", function (event) {
+            event.preventDefault();
+            const form = document.querySelector('form');
+            form.action="/book/delete/<? echo $this->data['book_id']?>"
+            form.method = "POST";
+            form.enctype = "multipart/form-data";
+            form.submit();
+        });
+
+    showBtn.addEventListener("click", ()=>section.classList.add("active"));
+
+    overlay.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+
+    closeBtn.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+</script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/app/pages/admin/DeleteGenrePage.php b/app/pages/admin/DeleteGenrePage.php
index 4b82b48..084f469 100644
--- a/app/pages/admin/DeleteGenrePage.php
+++ b/app/pages/admin/DeleteGenrePage.php
@@ -9,6 +9,7 @@
     <!-- Global CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css">
     <!-- Navbar CSS -->
+    <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css">
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css">
     <!-- Page-specific CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css">
@@ -18,13 +19,26 @@
 <body>
     <!-- Navigation bar -->
     <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?>
+    <section>
+        <!-- Pop Up -->
+        <span class="overlay"></span>
+
+        <div class="modal-box">
+            <h2>Delete Genre</h2>
+            <h3>Are you sure want to delete this Genre?</h3>
+
+            <div class="buttons">
+                <button class="cancel-btn">Cancel</button>
+                <button id="deleteGenre" class="confirm-btn-delete">Delete</button>
+            </div>
+        </div>
     <div class="wrapper-small">
         <div class="pad-40">
             <h1>Delete Genre Page</h1>
             <div class="centered">
                 <form  
                     class="center-contents"
-                    action="/genre/delete/<? echo $this->data['genre_id']?>" method="POST" enctype="multipart/form-data"
+                    enctype="multipart/form-data"
                 >
                     <p class="form-label">Genre ID : <?
                         echo $this->data['genre_id'];
@@ -34,12 +48,39 @@
                         echo $this->data['name'];
                     ?></p>
 
-                    <input type="submit" class="button green-button" value="Delete">
+                    <input type="button" class="show-modal button green-button" value="Delete">
 
                 </form>
             </div>
         </div>
     </div>
+    </section>
+<script>
+    const section = document.querySelector("section"),
+        overlay = document.querySelector(".overlay"),
+        showBtn = document.querySelector(".show-modal"),
+        closeBtn = document.querySelector(".cancel-btn"),
+        deleteGenre = document.getElementById("deleteGenre");
+
+        deleteGenre.addEventListener("click", function (event) {
+            event.preventDefault();
+            const form = document.querySelector('form');
+            form.action="/genre/delete/<? echo $this->data['genre_id']?>"
+            form.method = "POST";
+            form.enctype = "multipart/form-data";
+            form.submit();
+        });
+
+    showBtn.addEventListener("click", ()=>section.classList.add("active"));
+
+    overlay.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+
+    closeBtn.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+</script>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/app/pages/admin/DeleteUserPage.php b/app/pages/admin/DeleteUserPage.php
index 4c593c1..81f076c 100644
--- a/app/pages/admin/DeleteUserPage.php
+++ b/app/pages/admin/DeleteUserPage.php
@@ -9,6 +9,7 @@
     <!-- Global CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/globals.css">
     <!-- Navbar CSS -->
+    <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/popup.css">
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/template/navbar.css">
     <!-- Page-specific CSS -->
     <link rel="stylesheet" type="text/css" href="<?= BASE_URL ?>/styles/admin/list.css">
@@ -18,13 +19,26 @@
 <body>
     <!-- Navigation bar -->
     <?php include(dirname(__DIR__) . '../../components/Navbar.php') ?>
+    <section>
+        <!-- Pop Up -->
+        <span class="overlay"></span>
+
+        <div class="modal-box">
+            <h2>Delete User</h2>
+            <h3>Are you sure want to delete this User?</h3>
+
+            <div class="buttons">
+                <button class="cancel-btn">Cancel</button>
+                <button id="deleteUser" class="confirm-btn-delete">Delete</button>
+            </div>
+        </div>
     <div class="wrapper-small">
         <div class="pad-40">
             <h1>Delete User Page</h1>
             <div class="centered">
                 <form  
                     class="center-contents"
-                    action="/user/delete/<? echo $this->data['username']?>" method="POST" enctype="multipart/form-data"
+                    enctype="multipart/form-data"
                 >
                     <p class="form-label">Username : <?
                         echo $this->data['username'];
@@ -35,12 +49,39 @@
                     ?></p>
 
 
-                    <input type="submit" class="button green-button" value="Delete">
+                    <input type="button" class="show-modal button green-button" value="Delete">
 
                 </form>
             </div>
         </div>
     </div>
+    </section>
+<script>
+    const section = document.querySelector("section"),
+        overlay = document.querySelector(".overlay"),
+        showBtn = document.querySelector(".show-modal"),
+        closeBtn = document.querySelector(".cancel-btn"),
+        deleteUser = document.getElementById("deleteUser");
+
+        deleteUser.addEventListener("click", function (event) {
+            event.preventDefault();
+            const form = document.querySelector('form');
+            form.action="/user/delete/<? echo $this->data['username']?>" 
+            form.method = "POST";
+            form.enctype = "multipart/form-data";
+            form.submit();
+        });
+
+    showBtn.addEventListener("click", ()=>section.classList.add("active"));
+
+    overlay.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+
+    closeBtn.addEventListener("click", () =>
+        section.classList.remove("active")
+    );
+</script>
 </body>
 
 </html>
\ No newline at end of file
-- 
GitLab