Browse Source

implemented updating timetrack table on stopping/starting timetrack

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
module/timetracking
Stephan Richter 3 days ago
parent
commit
374f85ee1d
  1. 1
      frontend/src/Components/TimeRecorder.svelte
  2. 15
      frontend/src/routes/time/Index.svelte

1
frontend/src/Components/TimeRecorder.svelte

@ -19,6 +19,7 @@
body : now() body : now()
}); });
if (resp.ok){ if (resp.ok){
timetrack.stopped = await resp.json();
timetrack.running = null; timetrack.running = null;
timetrack.elapsed = null; timetrack.elapsed = null;
timetrack.start = null; timetrack.start = null;

15
frontend/src/routes/time/Index.svelte

@ -32,6 +32,14 @@
let selectionSum = $derived(sortedTimes.filter(time => selected[time.id]).map(time => time.duration).reduce((acc, a) => acc + a, 0)); let selectionSum = $derived(sortedTimes.filter(time => selected[time.id]).map(time => time.duration).reduce((acc, a) => acc + a, 0));
let users = null; let users = null;
$effect(() => {
if (timetrack.running) {
show(timetrack.running);
} else {
show(timetrack.stopped);
}
});
async function addTime(task_id){ async function addTime(task_id){
const url = api(`time/track_task/${task_id}`); const url = api(`time/track_task/${task_id}`);
const resp = await post(url,now()); // create new time or return time with assigned tasks const resp = await post(url,now()); // create new time or return time with assigned tasks
@ -144,7 +152,6 @@
} }
async function multi_update(changeSet){ async function multi_update(changeSet){
console.log({ids:Object.keys(selected),patch:patch});
changeSet.ids = Object.keys(selected).map(id => +id); changeSet.ids = Object.keys(selected).map(id => +id);
const url = api('time'); const url = api('time');
const res = await patch(url,changeSet); const res = await patch(url,changeSet);
@ -167,6 +174,11 @@
loadTimes(); loadTimes();
} }
function show(track){
if (times && track) times[track.id] = track;
}
function toggleRange(range){ function toggleRange(range){
let affected = sortedTimes.filter(time => time.start.startsWith(range)); let affected = sortedTimes.filter(time => time.start.startsWith(range));
if (ranges[range]){ if (ranges[range]){
@ -214,6 +226,7 @@
<title>Umbrella – {t('timetracking')}</title> <title>Umbrella – {t('timetracking')}</title>
</svelte:head> </svelte:head>
<h1>{t('timetracking')}</h1> <h1>{t('timetracking')}</h1>
{#if times} {#if times}
{#if selectionSum} {#if selectionSum}

Loading…
Cancel
Save