From 72c660f688ea43576bc491855c8c29b672054f8e Mon Sep 17 00:00:00 2001 From: Arthur Wambst Date: Mon, 20 Oct 2025 16:37:29 +0200 Subject: [PATCH] merged list and create ji in one page --- src/App.tsx | 4 +- src/pages/admin/CreateJi.tsx | 122 --------------------- src/pages/admin/Jis.tsx | 200 +++++++++++++++++++++++++++++++++++ src/pages/admin/ListJi.tsx | 75 ------------- 4 files changed, 202 insertions(+), 199 deletions(-) delete mode 100644 src/pages/admin/CreateJi.tsx create mode 100644 src/pages/admin/Jis.tsx delete mode 100644 src/pages/admin/ListJi.tsx diff --git a/src/App.tsx b/src/App.tsx index da91a93..287bcb0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -10,7 +10,7 @@ import LoginPage from "./pages/Login"; import PageTest from "./pages/PageTest"; import CreateTp from "./pages/admin/CreateTp"; import CreateSite from "./pages/admin/CreateSite"; -import CreateJi from "./pages/admin/CreateJi"; +import Jis from "./pages/admin/Jis"; import BulkUsers from "./pages/admin/BulkCreateUser"; import Users from "./pages/admin/Users"; import Sites from "./pages/admin/Sites"; @@ -34,7 +34,7 @@ function App() { } /> } /> } /> - } /> + } /> } /> } /> } /> diff --git a/src/pages/admin/CreateJi.tsx b/src/pages/admin/CreateJi.tsx deleted file mode 100644 index 1dbf442..0000000 --- a/src/pages/admin/CreateJi.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import axios from "axios"; -import { useState } from "react"; -import { useNavigate } from "react-router-dom"; - -function CreateJi() { - const [ji, setJi] = useState({ - name: "", - respo: "", - site_id: "", - date: "", - }); - const navigate = useNavigate(); - - const handleInputChange = ( - e: React.ChangeEvent< - HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement - >, - ) => { - const { name, value } = e.target; - setJi({ ...ji, [name]: value }); - }; - - const handleSubmit = (e: React.FormEvent) => { - e.preventDefault(); - - // Créer les query parameters - const params = new URLSearchParams({ - name: ji.name, - respo: ji.respo, - site_id: ji.site_id, - date: ji.date, - }); - - axios.post(`/api/ji/create?${params.toString()}`).then((res) => { - if (res.status === 200) { - navigate(`/immersion/${res.data.id}`); - } - }); - }; - return ( -
-
-

- Create Ji -

- -
-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
-
-
-
- ); -} - -export default CreateJi; diff --git a/src/pages/admin/Jis.tsx b/src/pages/admin/Jis.tsx new file mode 100644 index 0000000..ae06430 --- /dev/null +++ b/src/pages/admin/Jis.tsx @@ -0,0 +1,200 @@ +import axios from "axios"; +import { useEffect, useState } from "react"; +import { Ji } from "../../type/JiType"; + +function Jis() { + const [jis, setJis] = useState([]); + const [reload, setReload] = useState(0); + const [showCreateForm, setShowCreateForm] = useState(false); + const [newJi, setNewJi] = useState({ + name: "", + desc: "", + respo: "", + site_id: "", + date: "", + }); + + useEffect(() => { + axios.get("/api/ji/listall").then((res) => { + setJis(res.data); + }); + }, [reload]); + + const handleEditJi = (jiId: number) => { + alert(`Edit ji with ID: ${jiId}`); + }; + + const handleInputChange = ( + e: React.ChangeEvent + ) => { + const { name, value } = e.target; + setNewJi({ ...newJi, [name]: value }); + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + const params = new URLSearchParams({ + name: newJi.name, + respo: newJi.respo, + site_id: newJi.site_id, + date: newJi.date, + }); + + axios.post(`/api/ji/create?${params.toString()}`).then((res) => { + if (res.status === 200) { + setNewJi({ name: "", desc: "", respo: "", site_id: "", date: "" }); + setShowCreateForm(false); + setReload(reload + 1); + } + }); + }; + + return ( +
+
+
+

+ Manage JIs +

+ +
+ + {/* Create JI Form */} + {showCreateForm && ( +
+

+ Create New JI +

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
+ )} + + {/* JIs Table */} +
+ + + + + + + + + + + + + {jis.map((ji: Ji, index: number) => ( + + + + + + + + + ))} + +
#NameResponsableSite IDDateActions
{index + 1}{ji.name}{ji.respo}{ji.site_id}{ji.date} + +
+
+
+
+ ); +} + +export default Jis; diff --git a/src/pages/admin/ListJi.tsx b/src/pages/admin/ListJi.tsx deleted file mode 100644 index ed3decf..0000000 --- a/src/pages/admin/ListJi.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import axios from "axios"; -import { useEffect, useState } from "react"; -import { Ji } from "../../type/JiType"; - -function ListJI() { - const [jis, setJis] = useState([]); - const [reload, setReload] = useState(0); - - useEffect(() => { - axios.get("/api/ji/listall").then((res) => { - setJis(res.data); - }); - }, [reload]); - - const handleEditJi = (jiId: number) => { - alert(`Edit ji with ID: ${siteId}`); - }; - - /*const deleteJis = () => { - axios.delete("/api/jis").then(() => { - setReload(reload + 1); - }); - };*/ - - return ( -
-
-
-

- Manage Jis -

- {/**/} -
- - {/* Users Table */} -
- - - - - - - - - - - - - {jis.map((site: Ji, index: number) => ( - - - - - - - - ))} - -
#NameAddressRolesInstancesActions
{index + 1}{ji.name}{ji.address}{ji.listJi} - -
-
-
-
- ); -} - -export default Jis;