nice
This commit is contained in:
parent
dee38ad8dc
commit
3b6d99c825
@ -90,6 +90,7 @@
|
|||||||
.time-entry-form {
|
.time-entry-form {
|
||||||
background-color: #f8f9fa;
|
background-color: #f8f9fa;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
border: 1px solid var(--accent);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -256,13 +256,6 @@ const TimeClockPage = () => {
|
|||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{scanResult && (
|
|
||||||
<div className="alert alert-success scan-success">
|
|
||||||
QR code détecté : <strong>{scanResult}</strong>
|
|
||||||
<span>Le pointage sera relié à votre session dans la prochaine étape.</span>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Time tracking section */}
|
{/* Time tracking section */}
|
||||||
<div className="time-tracking-section">
|
<div className="time-tracking-section">
|
||||||
|
|
||||||
@ -271,42 +264,83 @@ const TimeClockPage = () => {
|
|||||||
<p>Heure actuelle: {currentTime.toLocaleTimeString('fr-FR')}</p>
|
<p>Heure actuelle: {currentTime.toLocaleTimeString('fr-FR')}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Add new entry form */}
|
{ (isAdmin && editingEntry) ?
|
||||||
{isAdmin && (
|
(
|
||||||
<div className="time-entry-form">
|
<div className="time-entry-form">
|
||||||
<h4>Ajouter un pointage manuel</h4>
|
<h4>Modifier le pointage du {formatDate(editingEntry.date)}</h4>
|
||||||
<form onSubmit={handleAddEntry}>
|
<form onSubmit={handleUpdateEntry}>
|
||||||
<div className="form-group">
|
<div className="form-group">
|
||||||
<label>Date:</label>
|
<label htmlFor="edit-start-time">Heure d'entrée :</label>
|
||||||
<input
|
<input
|
||||||
type="date"
|
id="edit-start-time"
|
||||||
value={newEntry.date}
|
type="time"
|
||||||
onChange={(e) => setNewEntry({...newEntry, date: e.target.value})}
|
value={editForm.start_time}
|
||||||
required
|
onChange={(e) => setEditForm({ ...editForm, start_time: e.target.value })}
|
||||||
/>
|
required
|
||||||
</div>
|
/>
|
||||||
<div className="form-group">
|
</div>
|
||||||
<label>Heure d'entrée:</label>
|
<div className="form-group">
|
||||||
<input
|
<label htmlFor="edit-end-time">Heure de sortie :</label>
|
||||||
type="time"
|
<input
|
||||||
value={newEntry.start_time}
|
id="edit-end-time"
|
||||||
onChange={(e) => setNewEntry({...newEntry, start_time: e.target.value})}
|
type="time"
|
||||||
required
|
value={editForm.end_time}
|
||||||
/>
|
onChange={(e) => setEditForm({ ...editForm, end_time: e.target.value })}
|
||||||
</div>
|
required
|
||||||
<div className="form-group">
|
/>
|
||||||
<label>Heure de sortie:</label>
|
</div>
|
||||||
<input
|
<div className="btn-group">
|
||||||
type="time"
|
<button type="submit" className="btn btn-primary">Enregistrer</button>
|
||||||
value={newEntry.end_time}
|
<button type="button" className="btn btn-secondary" onClick={() => setEditingEntry(null)}>
|
||||||
onChange={(e) => setNewEntry({...newEntry, end_time: e.target.value})}
|
Annuler
|
||||||
required
|
</button>
|
||||||
/>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<button type="submit" className="btn btn-primary">Ajouter le pointage</button>
|
</div>
|
||||||
</form>
|
)
|
||||||
</div>
|
:
|
||||||
)}
|
(
|
||||||
|
<div>
|
||||||
|
{isAdmin &&
|
||||||
|
(
|
||||||
|
<div className="time-entry-form">
|
||||||
|
<h4>Ajouter un pointage manuel</h4>
|
||||||
|
<form onSubmit={handleAddEntry}>
|
||||||
|
<div className="form-group">
|
||||||
|
<label>Date:</label>
|
||||||
|
<input
|
||||||
|
type="date"
|
||||||
|
value={newEntry.date}
|
||||||
|
onChange={(e) => setNewEntry({...newEntry, date: e.target.value})}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="form-group">
|
||||||
|
<label>Heure d'entrée:</label>
|
||||||
|
<input
|
||||||
|
type="time"
|
||||||
|
value={newEntry.start_time}
|
||||||
|
onChange={(e) => setNewEntry({...newEntry, start_time: e.target.value})}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="form-group">
|
||||||
|
<label>Heure de sortie:</label>
|
||||||
|
<input
|
||||||
|
type="time"
|
||||||
|
value={newEntry.end_time}
|
||||||
|
onChange={(e) => setNewEntry({...newEntry, end_time: e.target.value})}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button type="submit" className="btn btn-primary">Ajouter le pointage</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
{/* Time entries list */}
|
{/* Time entries list */}
|
||||||
<div className="time-entries-list">
|
<div className="time-entries-list">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user