diff --git a/app.jsx b/app.jsx index fb81282..87c5f70 100644 --- a/app.jsx +++ b/app.jsx @@ -145,6 +145,17 @@ function App() { } }; + const reopenTask = async (taskId) => { + try { + await api.updateTask(taskId, { status: 'open' }); + await api.addAudit({ actor: meId, action: 'task_reopened', summary: 'Reopened task', target: taskId }); + setOpenTaskId(null); + } catch(e) { + console.error(e); + alert("Failed to reopen task: " + e.message); + } + }; + const dismissHU = (id) => setHeadsUp(h => h.filter(x => x.id !== id)); const openTaskFromAnywhere = (id) => { setOpenTaskId(id); setShowLogs(false); }; @@ -202,7 +213,7 @@ function App() { setAdding(null)} onSubmit={addTask} defaultAssignee={adding} me={me} /> {mappedOpenTask && ( - setOpenTaskId(null)} onMove={moveTask} onPriority={setPriority} onComplete={() => completeTask(mappedOpenTask.id)} /> + setOpenTaskId(null)} onMove={moveTask} onPriority={setPriority} onComplete={() => completeTask(mappedOpenTask.id)} onReopen={() => reopenTask(mappedOpenTask.id)} /> )} {showLogs && ( setShowLogs(false)} wide> diff --git a/dashy.db b/dashy.db index 729c86f..7bdfeef 100644 Binary files a/dashy.db and b/dashy.db differ diff --git a/screens.jsx b/screens.jsx index db26f90..b183688 100644 --- a/screens.jsx +++ b/screens.jsx @@ -407,7 +407,7 @@ function Modal({ children, onClose, title, eyebrow, wide = false }) { ); } -function TaskDetail({ task, allAudit = [], onClose, onMove, onPriority, onComplete }) { +function TaskDetail({ task, allAudit = [], onClose, onMove, onPriority, onComplete, onReopen }) { if (!task) return null; const assignee = findUser(task.assignee); const author = findUser(task.addedBy); @@ -487,9 +487,15 @@ function TaskDetail({ task, allAudit = [], onClose, onMove, onPriority, onComple