Fixed a few minor bugs
This commit is contained in:
@@ -3,14 +3,18 @@
|
||||
import { buildResume, resumeToText } from '../lib/resume.js';
|
||||
import { go } from '../lib/router.svelte.js';
|
||||
import { settings } from '../lib/settings.svelte.js';
|
||||
import { fmtDuration, weekday } from '../lib/time.js';
|
||||
import { fmtDayLabel, fmtDuration, weekday } from '../lib/time.js';
|
||||
|
||||
let copied = $state(false);
|
||||
let selectedDate = $state('');
|
||||
let reopening = $state(false);
|
||||
let error = $state('');
|
||||
const selectedDay = $derived(dayState.closedDays.find((d) => d.date === selectedDate) ?? dayState.lastClosed);
|
||||
|
||||
const resume = $derived(
|
||||
buildResume(
|
||||
dayState.lastClosed,
|
||||
dayState.lastClosedEntries,
|
||||
selectedDay,
|
||||
dayState.historyEntries.filter((e) => e.date === selectedDay?.date),
|
||||
settings.roundingMinutes,
|
||||
),
|
||||
);
|
||||
@@ -22,7 +26,16 @@
|
||||
settings.workdays.includes(weekday(dayState.today)) ? settings.dayStart : null,
|
||||
);
|
||||
|
||||
const closedToday = $derived(dayState.lastClosed?.date === dayState.today);
|
||||
const closedToday = $derived(selectedDay?.date === dayState.today && !dayState.day);
|
||||
|
||||
async function reopen() {
|
||||
if (reopening) return;
|
||||
reopening = true;
|
||||
error = '';
|
||||
try { await reopenToday(); go('today'); }
|
||||
catch (cause) { error = `Reprise impossible : ${cause.message}`; }
|
||||
finally { reopening = false; }
|
||||
}
|
||||
|
||||
async function copy() {
|
||||
try {
|
||||
@@ -37,6 +50,17 @@
|
||||
</script>
|
||||
|
||||
<div class="screen">
|
||||
{#if error}<p role="alert">{error}</p>{/if}
|
||||
{#if dayState.closedDays.length > 1}
|
||||
<label class="stack">
|
||||
<span>Journée à consulter</span>
|
||||
<select value={selectedDay?.date} onchange={(event) => { selectedDate = event.currentTarget.value; copied = false; }}>
|
||||
{#each dayState.closedDays as day (day.date)}
|
||||
<option value={day.date}>{fmtDayLabel(day.date)} {day.date.slice(0, 4)}</option>
|
||||
{/each}
|
||||
</select>
|
||||
</label>
|
||||
{/if}
|
||||
{#if !resume}
|
||||
<div class="card center stack">
|
||||
<h2>Aucune journée enregistrée</h2>
|
||||
@@ -101,16 +125,15 @@
|
||||
{#if closedToday}
|
||||
<button
|
||||
type="button"
|
||||
onclick={async () => {
|
||||
await reopenToday();
|
||||
go('today');
|
||||
}}>Reprendre la journée</button
|
||||
disabled={reopening}
|
||||
onclick={reopen}>Reprendre la journée</button
|
||||
>
|
||||
{:else if startsAt}
|
||||
<p class="dim small">Annule la clôture et continue la dernière tâche depuis l’arrêt.</p>
|
||||
{:else if !dayState.day && !dayState.todayRecord && startsAt}
|
||||
<p class="dim center small">
|
||||
La journée démarrera automatiquement à {startsAt}.
|
||||
</p>
|
||||
{:else}
|
||||
{:else if !dayState.day && !dayState.todayRecord}
|
||||
<p class="dim center small">Aujourd'hui n'est pas un jour travaillé.</p>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user