wbstr / vaadin-multifileupload

12 stars 23 forks source link

Refresh Upload Multiple File Button #48

Open jortuzar opened 7 years ago

jortuzar commented 7 years ago

Hi,

I'm using a UploadFinishedHandler attached to a MultiFileUpload object. Everything works great with Drag & Drop wrapper. When I click the "Upload Button" from the MultiFileUpload object everything works great if I select multiple files. If I select just one file, the UploadFinishedHandler gets called correctly and does exactly the same procedure as in the other cases since it is the same handler.

The difference is that my View seems frozen after the UploadFinishedHandler is finished, meaning it seems as if nothing had happened (file list not refreshed, no notification message, nothing). If I refresh the Browser (F5) all of the sudden my file list gets refreshed and my notification message that is located inside the UploadFinishedHandler gets shown.

I have a hunch it could be something on the client side of the component, since it works fine in all other cases. Even dragging and dropping a single file works fine.

Thanks,

Julio

jortuzar commented 7 years ago

BTW, using 3.0.1

markusweisssiemens commented 5 years ago

I'm facing the similar behavior also with 4.0 version and Vaadin 8.5.2 and 8.6.1. I've attached a test project: vaadinmultiupload.zip which reproduces this. If you after the selection of one file click on the "Test" button all of a sudden the Upload notification is shown.

@jortuzar : have you found a solution in the meantime because we cannot use the component because of this problem?

Update: This issue only occurs if you don't enable push or pull so that the UI is properly updated. After enabling one of this it's working as designed.

mehmetkaradeniz commented 1 year ago

I'm facing the same issue on 4.0 version with vaadin 8. @jortuzar @markusweisssiemens have you guys found any solution?

futaz commented 1 year ago

Hey, @mehmetkaradeniz!

@markusweisssiemens' comment has an update at the end, stating that enabling push or pull (vaadin feature) will solve the issue. If it's not appropriate for your project, try to play with poll intervals: if a UI has at least one upload component, set the poll interval something like 1000 ms, so in every second the UI will be refreshed if any change happened.

You can set poll interval in event handlers, so may be possible to shorten the poll interval when an upload starts and reset to default when it ends, but it depends on the context (on your project).

Btw you can query the current poll interval with UI.getCurrent().getPollInterval() and set it with UI.getCurrent().setPollInterval(int ms).

mehmetkaradeniz commented 1 year ago

Hey, @futaz. PollInterval solution worked for me. Appreciate the quick response!