Browse Source

Merge remote-tracking branch 'origin'

feature/global_error_display
Stephan Richter 1 month ago
parent
commit
9c4c71f7dd
  1. 26
      frontend/src/routes/time/Index.svelte

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

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@
<script>
import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
import { display } from '../../time.svelte.js';
import { api } from '../../urls.svelte.js';
import { t } from '../../translations.svelte.js';
import { timetrack } from '../../user.svelte.js';
import { display } from '../../time.svelte.js';
import { now } from '../../time.svelte';
import TimeEditor from '../../Components/TimeRecordEditor.svelte';
@ -25,6 +27,21 @@ @@ -25,6 +27,21 @@
let timeMap = $derived.by(calcYearMap);
let selectionSum = $derived(sortedTimes.filter(time => selected[time.id]).map(time => time.duration).reduce((acc, a) => acc + a, 0));
async function addTime(task_id){
const url = api(`time/track_task/${task_id}`);
const resp = await fetch(url,{
credentials : 'include',
method : 'POST',
body : now()
}); // create new time or return time with assigned tasks
if (resp.ok) {
const track = await resp.json();
timetrack.running = track;
} else {
error = await resp.text();
}
}
function calcYearMap(){
let result = {
months : {},
@ -230,7 +247,7 @@ @@ -230,7 +247,7 @@
<td class="subject" onclick={e => {detail = time.id}}>
{time.subject}
</td>
<td class="tasks" onclick={e => {detail = time.id}}>
<td class="tasks">
<ul>
{#each time.task_ids as tid}
{#if tasks[tid]}
@ -239,6 +256,7 @@ @@ -239,6 +256,7 @@
<a href="/project/{tasks[tid].project_id}/view" {onclick}>{projects[tasks[tid].project_id].name}</a> /
{/if}
<a href="/task/{tid}/view" {onclick}>{tasks[tid].name}</a>
<button class="symbol" title={t('timetracking')} onclick={e => addTime(tid)}></button>
</li>
{/if}
{/each}

Loading…
Cancel
Save