PDF: undo delete pages (30 sec window)
- Undo button appears after deleting pages - Restores original file with all pages - Re-renders all grids with restored pages - Auto-hides after 30 seconds
This commit is contained in:
parent
9711b1b3d3
commit
782149e3fa
@ -769,6 +769,7 @@
|
||||
<div class="page-grid" id="deletePageGrid"></div>
|
||||
<div class="grid-action-bar">
|
||||
<button class="grid-action-btn danger" id="btnDeleteSelected" disabled onclick="executeDeletePages()">Удалить выбранные (<span id="deleteCount">0</span>)</button>
|
||||
<button class="grid-action-btn" id="btnUndoDelete" style="display:none;background:var(--surface-600);color:var(--text-secondary);" onclick="undoDeletePages()">Отменить</button>
|
||||
<span class="page-grid-hint" id="deleteHint"></span>
|
||||
</div>
|
||||
</div>
|
||||
@ -1824,6 +1825,9 @@
|
||||
return;
|
||||
}
|
||||
clearError();
|
||||
// Save backup for undo
|
||||
const backupFile = { ...selFile };
|
||||
_deleteBackup = { file: backupFile };
|
||||
// Hide deleted pages visually
|
||||
const grid = document.getElementById('deletePageGrid');
|
||||
if (grid) {
|
||||
@ -1843,7 +1847,14 @@
|
||||
await syncAfterOperation(data);
|
||||
} catch(e) { showError(e.message); }
|
||||
document.getElementById('btnDeleteSelected').textContent = 'Удалить выбранные (0)';
|
||||
document.getElementById('btnUndoDelete').style.display = '';
|
||||
updateDeleteCount();
|
||||
// Auto-hide undo after 30 seconds
|
||||
setTimeout(() => {
|
||||
_deleteBackup = null;
|
||||
var ub = document.getElementById('btnUndoDelete');
|
||||
if (ub) ub.style.display = 'none';
|
||||
}, 30000);
|
||||
};
|
||||
|
||||
window.executeRotatePages = async function() {
|
||||
@ -2025,6 +2036,23 @@
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// ─── Undo delete ──────────────────────────────────────────────────────────
|
||||
let _deleteBackup = null; // { fileId, file object before delete }
|
||||
|
||||
window.undoDeletePages = function() {
|
||||
if (!_deleteBackup) return;
|
||||
// Restore the backed-up file
|
||||
const old = _deleteBackup;
|
||||
state.files = state.files.map(f => f.id === state.selectedFileId ? old.file : f);
|
||||
state.selectedFileId = old.file.id;
|
||||
_deleteBackup = null;
|
||||
document.getElementById('btnUndoDelete').style.display = 'none';
|
||||
stepResult.style.display = 'none';
|
||||
downloadLink.style.display = 'none';
|
||||
renderFileList();
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user