Umbrella – {t('timetracking')}

{t('timetracking')}

{#if times} {#if selectionSum}
{t('sum_of_records')}: {selectionSum.toFixed(3)} {t('hours')}
{/if} {#each sortedTimes as time,line} {#if match_prj_filter(time)} {#if timeMap.years[line]} {/if} {#if timeMap.months[line]} {/if} {#if detail == time.id} {:else} {/if} {/if} {/each}
{t('year')} {t('month')} {t('start')}{t('end')} {t('duration')} {t('user')} {t('subject')} {t('projects')} / {t('tasks')} {t('state')}
toggleRange(time.start.substring(0,4))}> {time.start.substring(0,4)} toggleRange(time.start.substring(0,7))}> {time.start.substring(5,7)} toggleSelect(time.id)}> {time.start}{#if time.end_time}{time.start.startsWith(time.end_date)?time.end.substring(11):time.end}{/if} {#if line>0 && (sortedTimes[line-1].user_id == time.user_id) && (Math.abs(sortedTimes[line-1].start_time - time.end_time)<100)} {/if} {detail = time.id}}> {#if time.duration} {time.duration.toFixed(3)} h {/if} {detail = time.id}}> {users[time.user_id].name} {detail = time.id}}> {time.subject} {detail = time.id}}> {t("state_"+time.state.name.toLowerCase())} {#if time.state.name.toLowerCase() == 'pending' && docLinks[time.id]}
    {#each Object.entries(docLinks[time.id]) as [a,b]}
  • {b}
  • {/each}
{/if}
{/if}