feat: admin sidebar

This commit is contained in:
Malo BEAUCHAMPS 2024-10-16 14:01:33 +02:00
parent 723285c140
commit 8d43e34be4
3 changed files with 40 additions and 12 deletions

View File

@ -23,7 +23,7 @@ function App() {
<Route path="/instances" element={<Instances />} /> <Route path="/instances" element={<Instances />} />
<Route path="/profile" element={<PageTest />} /> <Route path="/profile" element={<PageTest />} />
<Route path="/login" element={<LoginPage />} /> <Route path="/login" element={<LoginPage />} />
<Route path="/admin" element={<BulkUsers />} /> <Route path="/admin/jdmi" element={<BulkUsers />} />
<Route path="/admin/tps" element={<CreateTp />} /> <Route path="/admin/tps" element={<CreateTp />} />
<Route path="/settings" element={<CreateTp />} /> <Route path="/settings" element={<CreateTp />} />
</Routes> </Routes>

View File

@ -77,7 +77,7 @@ const Navigation: React.FC<NavigationProps> = ({
<div className="drawer-side"> <div className="drawer-side">
<div className="drawer-overlay" onClick={toggleDrawer}></div> <div className="drawer-overlay" onClick={toggleDrawer}></div>
<div className="h-full menu bg-base-200 text-base-content w-80"> <div className="h-full menu bg-base-200 text-base-content w-80">
{user ? ( {user.username.trim() !== "" ? (
<li> <li>
<div className="dropdown dropdown-bottom h-full"> <div className="dropdown dropdown-bottom h-full">
<div <div
@ -113,21 +113,48 @@ const Navigation: React.FC<NavigationProps> = ({
) : ( ) : (
<li> <li>
<Link to="login" onClick={toggleDrawer}> <Link to="login" onClick={toggleDrawer}>
Log Out Log In
</Link> </Link>
</li> </li>
)} )}
{user && user.roles.includes("root") && ( {user && user.roles.includes("root") && (
<li>
<details open={false}>
<summary>Admin</summary>
<ul>
<li> <li>
<div> <div>
<ChartPieIcon className="size-6" />
<Link to="/admin" onClick={toggleDrawer}> <Link to="/admin" onClick={toggleDrawer}>
Admin Admin
</Link> </Link>
</div> </div>
</li> </li>
<li>
<div>
<Link to="/admin/tps" onClick={toggleDrawer}>
Create Tp
</Link>
</div>
</li>
<li>
<div>
<Link to="/admin/tps" onClick={toggleDrawer}>
Create User
</Link>
</div>
</li>
<li>
<div>
<Link to="/admin/jdmi" onClick={toggleDrawer}>
Bulk user creation
</Link>
</div>
</li>
</ul>
</details>
</li>
)} )}
{user && ( {user && user.username.trim() !== "" && (
<> <>
<li> <li>
<div> <div>

View File

@ -1,10 +1,12 @@
import axios from "axios"; import axios from "axios";
import { useState } from "react"; import { useState } from "react";
import { useNavigate } from "react-router-dom";
function BulkUsers() { function BulkUsers() {
const [file, setFile] = useState(null); const [file, setFile] = useState(null);
const [userData, setUserData] = useState([]); const [userData, setUserData] = useState([]);
const [practical, setPractical] = useState("0"); const [practical, setPractical] = useState("0");
const navigate = useNavigate();
const handlePracticalChange = (e) => { const handlePracticalChange = (e) => {
setPractical(e.target.value); setPractical(e.target.value);
@ -37,8 +39,7 @@ function BulkUsers() {
const handleSubmit = () => { const handleSubmit = () => {
// Handle submission logic (e.g., sending data to the backend) // Handle submission logic (e.g., sending data to the backend)
console.log('Submitting data:', userData.filter(user => user.name !== "")); axios.post("/api/users/jdmi", userData.filter(user => user.name !== "")).then(res => navigate(`/tps/${res.data.id}`));
axios.post("/api/users/jdmi", userData.filter(user => user.name !== "")).then(res => console.log(res));
}; };
return ( return (