Created ability for Admins to review deleted tasks and restore them if needed

This commit is contained in:
NPS Agent
2026-05-12 09:53:51 +09:30
parent 60a1cf1b67
commit 62cfeb0da4
8 changed files with 115 additions and 24 deletions
+38
View File
@@ -120,6 +120,7 @@ function TopBar({ me, dbUsers = [], isAdmin, tab, setTab, onAdd, onLogs, onLogou
{dbUsers.map(u => (
<Tab key={u.id} id={u.id} label={u.name} tab={tab} setTab={setTab} user={u} />
))}
{isAdmin && <Tab id="deleted" label="Deleted" tab={tab} setTab={setTab} />}
</nav>
<div className="topbar__right">
@@ -1048,7 +1049,44 @@ function WorkspaceTab({ user, isAdmin, dbUsers = [], onSwitchUser, onCreateUser,
);
}
function DeletedScreen({ tasks, onRestore }) {
return (
<div className="audit">
<header className="audit__head">
<div>
<h1 className="audit__title">Trash</h1>
<p className="audit__sub">Recently deleted tasks · <span className="mono">Admins only</span></p>
</div>
</header>
<div className="audit__list">
{tasks.length === 0 ? (
<div className="column__empty" style={{ marginTop: '4rem' }}>
<span className="mono">— trash is empty —</span>
</div>
) : (
<div className="user-view__grid" style={{ padding: '0 2rem' }}>
{tasks.map(t => (
<div key={t.id} style={{ position: 'relative' }}>
<TaskCard task={t} />
<button
className="btn btn--primary btn--sm"
style={{ position: 'absolute', top: '1rem', right: '1rem', zIndex: 10 }}
onClick={() => onRestore(t.id)}
>
Restore
</button>
</div>
))}
</div>
)}
</div>
</div>
);
}
Object.assign(window, {
LoginScreen, TopBar, OverviewScreen, UserScreen, AddTaskModal, Modal, TaskDetail, AuditScreen, HeadsUp, BrandMark,
SettingsScreen,
DeletedScreen,
});