From d959c89d5fed3b88e0a5a338bfb2850876072a8d Mon Sep 17 00:00:00 2001 From: NPS Agent Date: Mon, 11 May 2026 14:33:14 +0930 Subject: [PATCH] Made reopen button for completed tasks --- app.jsx | 13 ++++++++++++- dashy.db | Bin 61440 -> 61440 bytes screens.jsx | 14 ++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) 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 729c86f0df2da63795aa0cd68cf3792fc2711d9e..7bdfeeffd731e6df952b4a6476ac910ee83b1fc0 100644 GIT binary patch delta 361 zcmZp8z})bFd4e>f<3t%}M#qf_OZ=IYS^X!o2RO2^zGPj*>c4R!Bdd0xGP|O&xTdXO zV!WZTNs>`YVv3Q0k(sW6sji`+f`O@(fuWVDWnyJfe%|DHVH)+WN+9*>>Ol3z1_p*^ z78WL$>P^AwOA?E-DWS|K!odHF|1