screens-ingest: wire delete button on RecorderRow
This commit is contained in:
parent
ddb4cf0c51
commit
d00e1c666e
1 changed files with 11 additions and 2 deletions
|
|
@ -187,7 +187,7 @@ function _normRecorder(r) {
|
|||
if (r.status === 'recording' && r.started_at) {
|
||||
const s = Math.floor((Date.now() - new Date(r.started_at)) / 1000);
|
||||
elapsed = String(Math.floor(s / 3600)).padStart(2, '0') + ':' +
|
||||
String(Math.floor((s % 3600) / 60)).padStart(2, '0') + ':' +
|
||||
String(Math.floor((s % 3600) / 60)).padStart(2, '00') + ':' +
|
||||
String(s % 60).padStart(2, '0');
|
||||
}
|
||||
const cfg = r.source_config || {};
|
||||
|
|
@ -309,6 +309,13 @@ function RecorderRow({ recorder: initialRecorder, onRefresh }) {
|
|||
.catch(e => { setPending(false); setErr(e.message || 'Failed'); setRecorder(initialRecorder); });
|
||||
};
|
||||
|
||||
const handleDelete = () => {
|
||||
if (!window.confirm('Delete recorder "' + recorder.name + '"?\nThis will stop any active recording and cannot be undone.')) return;
|
||||
window.ZAMPP_API.fetch('/recorders/' + recorder.id, { method: 'DELETE' })
|
||||
.then(() => onRefresh())
|
||||
.catch(e => setErr(e.message || 'Delete failed'));
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={'recorder-row ' + recorder.status}>
|
||||
<div className="recorder-preview">
|
||||
|
|
@ -358,7 +365,9 @@ function RecorderRow({ recorder: initialRecorder, onRefresh }) {
|
|||
: <button className="btn subtle sm" onClick={toggle} disabled={pending}>
|
||||
{pending ? '…' : <><span className="rec-dot" style={{ background: 'var(--live)' }} />Record</>}
|
||||
</button>}
|
||||
<button className="icon-btn"><Icon name="more" /></button>
|
||||
<button className="icon-btn" onClick={handleDelete} title="Delete recorder" style={{ color: 'var(--text-3)' }}>
|
||||
<Icon name="x" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue