mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-13 09:54:19 +01:00
Add password prompt functionality and tests while uploading encrypted PDF
This commit is contained in:
1 parent
f88f872162
commit
1dbf907eeb
79 files changed
+7869
-4419
No files matched your search
@@ -3,6 +3,7 @@ import { createIcons, icons } from 'lucide';
|
||||
import { showAlert, showLoader, hideLoader } from '../ui.js';
|
||||
import { formatBytes, downloadFile } from '../utils/helpers.js';
|
||||
import { makeUniqueFileKey } from '../utils/deduplicate-filename.js';
|
||||
import { batchDecryptIfNeeded } from '../utils/password-prompt.js';
|
||||
|
||||
const embedPdfWasmUrl = new URL(
|
||||
'embedpdf-snippet/dist/pdfium.wasm',
|
||||
@@ -112,8 +113,17 @@ async function handleFiles(files: FileList) {
|
||||
|
||||
if (!pdfWrapper || !pdfContainer || !fileDisplayArea) return;
|
||||
|
||||
hideLoader();
|
||||
const decryptedFiles = await batchDecryptIfNeeded(pdfFiles);
|
||||
showLoader('Loading PDF Editor...');
|
||||
|
||||
if (decryptedFiles.length === 0) {
|
||||
hideLoader();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isViewerInitialized) {
|
||||
const firstFile = pdfFiles[0];
|
||||
const firstFile = decryptedFiles[0];
|
||||
const firstBuffer = await firstFile.arrayBuffer();
|
||||
|
||||
pdfContainer.textContent = '';
|
||||
@@ -163,7 +173,7 @@ async function handleFiles(files: FileList) {
|
||||
}
|
||||
});
|
||||
|
||||
addFileEntries(fileDisplayArea, pdfFiles);
|
||||
addFileEntries(fileDisplayArea, decryptedFiles);
|
||||
|
||||
docManagerPlugin.openDocumentBuffer({
|
||||
buffer: firstBuffer,
|
||||
@@ -171,11 +181,11 @@ async function handleFiles(files: FileList) {
|
||||
autoActivate: true,
|
||||
});
|
||||
|
||||
for (let i = 1; i < pdfFiles.length; i++) {
|
||||
const buffer = await pdfFiles[i].arrayBuffer();
|
||||
for (let i = 1; i < decryptedFiles.length; i++) {
|
||||
const buffer = await decryptedFiles[i].arrayBuffer();
|
||||
docManagerPlugin.openDocumentBuffer({
|
||||
buffer,
|
||||
name: makeUniqueFileKey(i, pdfFiles[i].name),
|
||||
name: makeUniqueFileKey(i, decryptedFiles[i].name),
|
||||
autoActivate: false,
|
||||
});
|
||||
}
|
||||
@@ -214,13 +224,13 @@ async function handleFiles(files: FileList) {
|
||||
});
|
||||
}
|
||||
} else {
|
||||
addFileEntries(fileDisplayArea, pdfFiles);
|
||||
addFileEntries(fileDisplayArea, decryptedFiles);
|
||||
|
||||
for (let i = 0; i < pdfFiles.length; i++) {
|
||||
const buffer = await pdfFiles[i].arrayBuffer();
|
||||
for (let i = 0; i < decryptedFiles.length; i++) {
|
||||
const buffer = await decryptedFiles[i].arrayBuffer();
|
||||
docManagerPlugin.openDocumentBuffer({
|
||||
buffer,
|
||||
name: makeUniqueFileKey(i, pdfFiles[i].name),
|
||||
name: makeUniqueFileKey(i, decryptedFiles[i].name),
|
||||
autoActivate: true,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user