From 6eafe80395c1e550ae16549d0a831df6833a47f8 Mon Sep 17 00:00:00 2001 From: Rafael Foster Date: Wed, 29 Apr 2026 05:51:52 -0300 Subject: [PATCH] feat(tasks): add archive button in list cards --- public/locales/en.json | 4 +++- public/locales/pt.json | 4 +++- public/pages/tasks.js | 15 +++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/public/locales/en.json b/public/locales/en.json index 0da3ce8..29f870b 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -153,6 +153,7 @@ "markDone": "Mark {{title}} as done", "markOpen": "Mark {{title}} as open", "editButton": "Edit task", + "archiveButton": "Archive task", "swipeOpen": "Reopen", "swipeDone": "Done", "swipeEdit": "Edit", @@ -163,6 +164,7 @@ "savedToast": "Task saved.", "createdToast": "Task created.", "deletedToast": "Task deleted.", + "archivedToast": "Task archived.", "loadError": "Task could not be loaded.", "subtaskPrompt": "Subtask:", "kanbanOpen": "Open", @@ -920,4 +922,4 @@ "birthdays": "Add birthdays — you will receive a reminder in time.", "recipes": "Create recipes and link them to your meal planner." } -} \ No newline at end of file +} diff --git a/public/locales/pt.json b/public/locales/pt.json index a684908..d4db15c 100644 --- a/public/locales/pt.json +++ b/public/locales/pt.json @@ -153,6 +153,7 @@ "markDone": "Marcar {{title}} como concluído", "markOpen": "Marcar {{title}} como pendente", "editButton": "Editar tarefa", + "archiveButton": "Arquivar tarefa", "swipeOpen": "Abrir", "swipeDone": "Concluído", "swipeEdit": "Editar", @@ -163,6 +164,7 @@ "savedToast": "Tarefa salva.", "createdToast": "Tarefa criada.", "deletedToast": "Tarefa excluída.", + "archivedToast": "Tarefa arquivada.", "loadError": "Falha ao carregar a tarefa.", "subtaskPrompt": "Subtarefa:", "kanbanOpen": "Aberto", @@ -902,4 +904,4 @@ "emptyHint": { "recipes": "Crie receitas e vincule-as ao seu planejador de refeições." } -} \ No newline at end of file +} diff --git a/public/pages/tasks.js b/public/pages/tasks.js index ebc5909..2d513b1 100644 --- a/public/pages/tasks.js +++ b/public/pages/tasks.js @@ -209,6 +209,11 @@ function renderTaskCard(task, opts = {}) { aria-label="${t('tasks.editButton')}"> + ${task.status !== 'archived' ? ` + ` : ''} ${progress !== null ? ` @@ -1511,6 +1516,16 @@ function wireTaskList(container) { } } + if (action === 'archive-task') { + try { + await api.patch(`/tasks/${id}/status`, { status: 'archived' }); + window.oikos.showToast(t('tasks.archivedToast'), 'success'); + await loadTasks(container); + } catch (err) { + window.oikos.showToast(err.message, 'danger'); + } + } + if (action === 'add-subtask') { await handleAddSubtask(target.dataset.parent, container); }