Repository navigation
Conversation
13e382e to
a7c89d1
Compare
78099e0 to
477a45f
Compare
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
8733e08 to
9101ab5
Compare
Chartman123
left a comment
There was a problem hiding this comment.
Two quick changes that came into my mind while watching the video :) I think "assembling" is too technical here for most users.
| <div v-if="activeUpload.assembling" class="upload-status"> | ||
| <progress | ||
| :aria-label=" | ||
| t('forms', 'Assembling file {fileName}', { |
There was a problem hiding this comment.
| t('forms', 'Assembling file {fileName}', { | |
| t('forms', 'Finishing upload for file {fileName}', { |
| fileName: activeUpload.name, | ||
| }) | ||
| " /> | ||
| {{ t('forms', 'Assembling file …') }} |
There was a problem hiding this comment.
Also no space before the ellipsis
| {{ t('forms', 'Assembling file …') }} | |
| {{ t('forms', 'Finishing upload…') }} |
|
@Chartman123 I agree with you, but this terminology comes from the original library. Should we stay consistent in naming? |
I've asked the designers :) |
There was a problem hiding this comment.
mates, that's was my very first idea. But there are few troubles with this component:
- We need to upload large files (gigabytes) with non-stable network conditions. So would be nice to have clear progressbar per file. At the same time
NcUploadPickershows only total progress that is not enough for us
-
We have slow s3 server and assembling of the file tooks some time. So, we want to explicitly show it, not sure that
NcUploadPickersupports that. -
I like consistent UI: already uploaded files are displayed more or less same way like files in progress. We have single unified list
- Lack of drop zone upload
Of course, in theory I can customize component. But what sense of using it if 80% code will be rewritten?
There was a problem hiding this comment.
@susnux could you think of bringing these things directly into the lib?
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
9101ab5 to
3b2bb04
Compare
Closes #3449.
🎥 Demo
nextcloud-chunk-upload-2026-09-28_15.26.13.mp4
What changed
File question uploads previously used a single multipart
POSTrequest perselection. Files were limited by PHP upload limits and not paralleled. Also now we're displaying progressbar during upload.
Uploads now go through a temporary public upload share and the standard
Nextcloud WebDAV endpoint, the same mechanism used by the Files app:
POST .../submissions/files/{questionId}/sharecreates a temporary folderin the form owner's storage and shares it via a create-only (file drop)
public link.
public.php/davusing the uploader from@nextcloud/files(MKCOL workspace, parallel chunk PUTs, MOVE assemble).Chunking requires the
dav.public_shares_chunkingcapability; smallerfiles are sent as a plain PUT.
POST .../submissions/files/{questionId}/registerbinds the uploaded fileto the form and question and returns
uploadedFileId+uploadToken,which are submitted as the answer exactly as before.
Behavior changes
CleanupUploadedFilesJob.API
Two new endpoints (see
docs/API_v3.md/openapi.json):POST /api/v3/forms/{formId}/submissions/files/{questionId}/sharePOST /api/v3/forms/{formId}/submissions/files/{questionId}/registerThe existing
POST .../files/{questionId}multipart endpoint is unchangedand remains supported.
Dependencies
@nextcloud/files^4.1.0(new uploader, public chunking support)@nextcloud/vue^9.12.0How to test
via a public share link.
is shown and the submission succeeds.
upload in progress.
multipart fallback still works.
🤖 AI (if applicable)