Skip to content

Feat 151 Document-based export#196

Open
melolw wants to merge 10 commits into
devfrom
feat-68-extract_submissions-151-extract_reviews
Open

Feat 151 Document-based export#196
melolw wants to merge 10 commits into
devfrom
feat-68-extract_submissions-151-extract_reviews

Conversation

@melolw
Copy link
Copy Markdown
Collaborator

@melolw melolw commented May 5, 2026

This feature adds a way to export all (for now, filtering will be possible later) of the documents part of a project with the relevant files using the streaming download introduced with Feat #68 .

The exported ZIP only contains documents owned by users that did agree to data sharing, it follows this structure:

{exportName}/
{docHash}/
document_data.json (all types)
document.pdf (type 0 - PDF)
annotations.json (type 0 - PDF)
comments.json (type 0 - PDF, includes votes)
edits.json (type 1/2 - HTML/Modal)
html.html (type 1/2 - HTML/Modal)
text.txt (type 1/2 - HTML/Modal)
document.zip (type 4 - ZIP)

In the frontend, "export documents" was added, with a simple next step stating that all documents will be downloaded.
In the backend, a new case was added in the export route to handle documents.

@melolw melolw marked this pull request as ready for review May 25, 2026 21:34
Copy link
Copy Markdown
Collaborator

@dennis-zyska dennis-zyska left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some comments, there are also merge conflicts

Comment thread backend/webserver/routes/export.js Outdated
userIds = [];
}

try {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this only used for the function processDocumentBasedExport? Can we move it into that function to make the code cleaner?

* @param {object|array} deltaOrOps - Quill Delta ({ ops: [...] }) or ops array
* @returns {string} A full HTML document string
*/
function deltaToHtml(deltaOrOps) {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is an old package, but did you see that: https://www.npmjs.com/package/quill-delta-to-html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants