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?
There was a problem hiding this comment.
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 NcUploadPicker shows only total progress that is not enough for us
I would say that should be aligned with design directly in the library.
There is no good reason to only add such things to Forms, instead all apps should share the same component and design here.
We have slow s3 server and assembling of the file tooks some time. So, we want to explicitly show it, not sure that NcUploadPicker supports that.
Sure we show assembling progress.
I think best in sense of cleanest and most consistent would be that forms just uses NcUploadPicker and does not add their own UI over it. Of cause showing the uploaded files as a list is something that should happen here as this is not part of the uploadpicker itself.
But any design changes to the uploading progress should be aligned with the designers and be implemented for the upload picker itself.
I can bring this up tomorrow with our designers if you like.
There was a problem hiding this comment.
(sorry for the late response currently very limited time)
There was a problem hiding this comment.
@susnux yeah, please ask designers as well
9101ab5 to
3b2bb04
Compare
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>
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
3b2bb04 to
34a1dd9
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)