This commit is contained in:
Louis Mazin 2026-09-15 02:09:22 +02:00
parent f60eb301c1
commit d6b412bce5
4 changed files with 46 additions and 38 deletions

View File

@ -8,6 +8,7 @@ import AdminUsersPage from './pages/AdminUsersPage';
import AdminInvitePage from './pages/AdminInvitePage'; import AdminInvitePage from './pages/AdminInvitePage';
import RegisterPage from './pages/RegisterPage'; import RegisterPage from './pages/RegisterPage';
import TimeClockPage from './pages/TimeClockPage'; import TimeClockPage from './pages/TimeClockPage';
import WeeklySummaryPage from './pages/WeeklySummaryPage';
import './App.css'; import './App.css';
function App() { function App() {
@ -41,6 +42,11 @@ function App() {
<AdminInvitePage /> <AdminInvitePage />
</AdminRoute> </AdminRoute>
} /> } />
<Route path="/weekly-summary" element={
<ProtectedRoute>
<WeeklySummaryPage />
</ProtectedRoute>
} />
<Route path="*" element={<Navigate to="/" replace />} /> <Route path="*" element={<Navigate to="/" replace />} />
</Routes> </Routes>
</main> </main>

View File

@ -70,6 +70,7 @@ const Header = () => {
{user ? ( {user ? (
<> <>
<Link to="/" className="menu-link" onClick={toggleMenu}>Profil</Link> <Link to="/" className="menu-link" onClick={toggleMenu}>Profil</Link>
<Link to="/weekly-summary" className="menu-link" onClick={toggleMenu}>Resumé Hebdomadaire</Link>
<Link to="/pointage" className="menu-link" onClick={toggleMenu}>Pointage</Link> <Link to="/pointage" className="menu-link" onClick={toggleMenu}>Pointage</Link>
{user.is_admin && ( {user.is_admin && (
<> <>

View File

@ -72,10 +72,7 @@ const AdminUsersPage = () => {
<div className="admin-toolbar"> <div className="admin-toolbar">
<button className="btn btn-primary" onClick={() => navigate('/invite')}> <button className="btn btn-primary" onClick={() => navigate('/invite')}>
Nouvel utilisateur Inviter quelqu'un
</button>
<button className="btn btn-secondary">
Exporter les utilisateurs
</button> </button>
</div> </div>

View File

@ -224,7 +224,6 @@ const TimeClockPage = () => {
{/* Time tracking section */} {/* Time tracking section */}
<div className="time-tracking-section"> <div className="time-tracking-section">
<h3>Historique des pointages</h3>
{/* Current time display */} {/* Current time display */}
<div className="current-time-display"> <div className="current-time-display">
@ -232,39 +231,44 @@ const TimeClockPage = () => {
</div> </div>
{/* Add new entry form */} {/* Add new entry form */}
<div className="time-entry-form"> {user.is_admin ? (
<h4>Ajouter un pointage manuel</h4> <div className="time-entry-form">
<form onSubmit={handleAddEntry}> <h4>Ajouter un pointage manuel</h4>
<div className="form-group"> <form onSubmit={handleAddEntry}>
<label>Date:</label> <div className="form-group">
<input <label>Date:</label>
type="date" <input
value={newEntry.date} type="date"
onChange={(e) => setNewEntry({...newEntry, date: e.target.value})} value={newEntry.date}
required onChange={(e) => setNewEntry({...newEntry, date: e.target.value})}
/> required
</div> />
<div className="form-group"> </div>
<label>Heure d'entrée:</label> <div className="form-group">
<input <label>Heure d'entrée:</label>
type="time" <input
value={newEntry.start_time} type="time"
onChange={(e) => setNewEntry({...newEntry, start_time: e.target.value})} value={newEntry.start_time}
required onChange={(e) => setNewEntry({...newEntry, start_time: e.target.value})}
/> required
</div> />
<div className="form-group"> </div>
<label>Heure de sortie:</label> <div className="form-group">
<input <label>Heure de sortie:</label>
type="time" <input
value={newEntry.end_time} type="time"
onChange={(e) => setNewEntry({...newEntry, end_time: e.target.value})} value={newEntry.end_time}
required onChange={(e) => setNewEntry({...newEntry, end_time: e.target.value})}
/> required
</div> />
<button type="submit" className="btn btn-primary">Ajouter le pointage</button> </div>
</form> <button type="submit" className="btn btn-primary">Ajouter le pointage</button>
</div> </form>
</div>
) : (
<>
</>
) }
{/* Time entries list */} {/* Time entries list */}
<div className="time-entries-list"> <div className="time-entries-list">