{{ activeBoard.icon }}
{{ activeBoard ? activeBoard.name : t('tasks.title_all') }}
{{ t('table.empty') }}
{{ group.label }}
{{ group.tasks.length }}
{{ task.emoji }}{{ task.title }}
{{ task.subtask_completed }}/{{ task.subtask_total }}
↻ {{ recurrenceLabel(task) }}
{{ task.emoji }}{{ task.title }}
{{ task.subtask_completed }}/{{ task.subtask_total }}
↻ {{ recurrenceLabel(task) }}
{{ t('table.quick_add') }}
| {{ t('table.title') }} | {{ t('col.status') }} | {{ t('col.priority') }} | {{ t('col.category') }} | {{ t('col.board') }} | {{ t('col.due_date') }} | {{ t('col.url') }} | {{ t('col.comment') }} | {{ t('col.recurrence') }} | {{ t('col.completed_at') }} | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{ group.label }}
{{ group.tasks.length }}
|
||||||||||||
| {{ task.emoji }} {{ task.title }} {{ task.subtask_completed }}/{{ task.subtask_total }} |
{{ t('inline.none_status') }}
{{ s.name }}
|
{{ p.label }}
|
{{ task.category_name }} — | ● {{ task.board_name }} — | {{ formatDate(task.due_date) }} — | 🔗 — | — | ↻ {{ recurrenceLabel(task) }} — | ✓ {{ formatDate(task.completed_at.slice(0,10)) }} — |
|
||
| {{ t('table.loading') }} | ||||||||||||
| {{ sub.emoji }} {{ sub.title }} |
{{ t('inline.none_status') }}
{{ s.name }}
|
{{ p.label }}
|
{{ sub.category_name }} — | ● {{ sub.board_name }} — | {{ formatDate(sub.due_date) }} — | 🔗 — | — | ↻ {{ recurrenceLabel(sub) }} — | ✓ {{ formatDate(sub.completed_at.slice(0,10)) }} — |
|
||
| {{ t('table.quick_add') }} | ||||||||||||
| {{ task.emoji }} {{ task.title }} {{ task.subtask_completed }}/{{ task.subtask_total }} | {{ task.status_name }} — | {{ priorityInfo(task.priority).label }} | {{ task.category_name }} — | ● {{ task.board_name }} — | {{ formatDate(task.due_date) }} — | 🔗 — | — | ↻ {{ recurrenceLabel(task) }} — |
|
|||
| {{ t('table.loading') }} | ||||||||||||
| {{ sub.emoji }} {{ sub.title }} | {{ sub.status_name }} — | {{ priorityInfo(sub.priority).label }} | {{ sub.category_name }} — | ● {{ sub.board_name }} — | {{ formatDate(sub.due_date) }} — | 🔗 — | — | ↻ {{ recurrenceLabel(sub) }} — |
|
|||
| {{ t('table.quick_add') }} | ||||||||||||
{{ t('kanban.no_status') }}
{{ col.name }}
✓
{{ col.tasks.length }}
{{ task.emoji }}{{ task.title }}
↻ {{ recurrenceLabel(task) }}
{{ t('agenda.title') }}
{{ agendaLabel }}
{{ agendaDayTasks.length }} {{ t('agenda.day_tasks_count') }}
{{ t('agenda.no_task') }}
{{ task.emoji }}{{ task.title }}
{{ priorityInfo(task.priority).label }}
{{ task.status_name }}
{{ task.category_name }}
{{ day.label }}
{{ task.emoji }} {{ task.title }}
+{{ day.tasks.length-4 }} {{ t('agenda.more') }}
{{ d }}
{{ day.date.getDate() }}
{{ task.emoji }} {{ task.title }}
+{{ day.tasks.length-2 }}
{{ t('dash.loading') }}
{{ t('agenda.no_log') }}
{{ (agendaLogsByDay[agendaDayISO]||[]).length }} log(s)
{{ t('agenda.log_total') }} {{ formatDuration(dayTotalSeconds(agendaLogsByDay[agendaDayISO]||[])) }}
{{ log.task_emoji }}{{ log.task_title }}
{{ log.started_at.substring(11,16) }}{{ log.ended_at?' → '+log.ended_at.substring(11,16):'' }}
{{ formatDuration(logDuration(log)) }}
{{ t('agenda.log_running') }}
{{ day.label }}
{{ t('agenda.log_total') }} {{ formatDuration(dayTotalSeconds(agendaLogsByDay[day.iso]||[])) }}
{{ log.task_emoji }}{{ log.task_title }}
{{ log.started_at.substring(11,16) }}{{ log.ended_at?' → '+log.ended_at.substring(11,16):'' }}
{{ formatDuration(logDuration(log)) }}
{{ t('agenda.log_running') }}
{{ t('agenda.no_log_week') }}
{{ d }}
{{ day.date.getDate() }}
⏱ {{ formatDuration(dayTotalSeconds(agendaLogsByDay[day.iso])) }}
{{ t('dash.title') }}
{{ t('dash.loading') }}
{{ t('dash.total') }}
{{ dashData.total }}
{{ t('dash.all_boards_sub') }}
{{ t('dash.completed') }}
{{ dashData.completed }}
{{ dashData.total>0 ? Math.round(dashData.completed/dashData.total*100) : 0 }}{{ t('dash.of_total') }}
{{ t('dash.overdue') }}
{{ dashData.overdue }}
{{ t('dash.overdue_sub') }}
{{ t('dash.soon') }}
{{ dashData.due_soon }}
{{ t('dash.soon_sub') }}
{{ t('dash.chart_board') }}
{{ t('dash.chart_cat') }}
{{ t('dash.chart_status') }}
{{ t('dash.chart_line') }}
{{ t('dash.click_refresh') }}
{{ t('recap.title') }}
{{ recapCalLabel }}
{{ d }}
{{ day.date.getDate() }}
{{ t('recap.completed') }}
{{ t('recap.missed') }}
{{ t('recap.loading') }}
{{ t('recap.completed') }}
{{ recapData.completed.length }}
{{ t('recap.no_completed') }}
{{ group.board_name || t('recap.no_board') }}
{{ task.emoji ? task.emoji+' ' : '' }}{{ task.title }}
{{ task.category_name }}
✓ {{ task.completed_at.substring(11,16) }}
{{ log.started_at.substring(11,16) }}{{ log.ended_at ? ' → '+log.ended_at.substring(11,16) : '' }}
{{ log.note }}
{{ formatDuration(parseInt(log.duration_sec)) }}
{{ lang==='fr'?'Total':'Total' }}
{{ formatDuration(recapLogSec(task)) }}
{{ t('recap.missed') }}
{{ recapData.missed.length }}
{{ t('recap.no_missed') }}
{{ group.board_name || t('recap.no_board') }}
{{ task.emoji ? task.emoji+' ' : '' }}{{ task.title }}
{{ task.category_name }}
{{ task.status_name }}
{{ formatDuration(recapLogSec(task)) }}
{{ log.started_at.substring(11,16) }}{{ log.ended_at?' → '+log.ended_at.substring(11,16):'' }}
{{ log.note }}
—
{{ t('settings.title') }}
{{ t('settings.appearance') }}
{{ t('settings.language') }}
{{ t('settings.theme') }}
{{ t('settings.boards') }}Pro
⠿
{{ b.icon }}
{{ b.name }}
{{ t('settings.no_boards') }}
{{ t('settings.statuses') }}Pro
⠿
{{ s.name }}
{{ STATUS_TYPE_ICONS[s.status_type||'in_progress'] }} {{ statusTypeLabels[s.status_type||'in_progress'] }}
{{ t('settings.no_statuses') }}
{{ t('settings.categories') }}
⠿
{{ c.name }}
{{ boards.find(b=>b.id==c.board_id)?.name || 'Board #'+c.board_id }}
{{ t('settings.all_boards') }}
{{ t('settings.no_categories') }}
{{ t('settings.priorities') }}Pro
⠿
{{ p.label }}
{{ p.value }}
{{ t('settings.no_priorities') }}
{{ t('settings.fields') }}Pro
{{ f.name }} ({{ f.type }})
{{ t('settings.no_fields') }}
{{ t('settings.account') }}
{{ t('admin.title') }}
{{ t('admin.loading') }}
| {{ t('admin.name') }} | {{ t('admin.email') }} | {{ t('admin.plan') }} | {{ t('admin.role') }} | Boards | Tâches | {{ t('admin.joined') }} | Dernière connexion | {{ t('admin.actions') }} |
|---|---|---|---|---|---|---|---|---|
| {{ t('admin.no_users') }} | ||||||||
| {{ u.name }} | {{ u.email }} | {{ u.plan==='paid'?t('plan.paid'):t('plan.free') }} ({{ t('admin.activated_manual') }}) | {{ u.role }} | {{ u.board_count }} | {{ u.task_count }} | {{ u.created_at ? u.created_at.substring(0,10) : '—' }} | {{ u.last_login_at ? u.last_login_at.substring(0,10) : '—' }} |
|