Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve upload progress visualization #39912

Merged
merged 3 commits into from Aug 22, 2023
Merged

Improve upload progress visualization #39912

merged 3 commits into from Aug 22, 2023

Conversation

susnux
Copy link
Contributor

@susnux susnux commented Aug 16, 2023

Summary

Improving the upload progress bar's "Time remaining". Tested with a single large file and multiple smaller files.
Besides the existing moving average, a smoothing factor is introduced for the time remaining display as well as the bitrate.
Furthermore, half of the buffer needs to be filled before the first prediction is displayed to the user. This reduces volatile and jumping durations towards the user and improves usability.

I extended the origin PR as follows:

  • Fixed initial value of smooth* (check for undefined)
  • Only show the remaining time if the buffer is fully filled to prevent inconsistent forecasts
  • Show number of finished and total uploads, this is required if you upload many files. Otherwise you might not see any progress.

Checklist

@susnux susnux added 3. to review Waiting for reviews feature: files labels Aug 16, 2023
@susnux susnux requested review from szaimen, a team, artonge and Pytal and removed request for a team August 16, 2023 14:49
@szaimen szaimen added this to the Nextcloud 28 milestone Aug 16, 2023
Copy link
Contributor

@szaimen szaimen left a comment

Choose a reason for hiding this comment

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

Tested and seems to work in general, there might be some edge cases though that do not work perfect but that has possibly already been there before. Also didnt review the code

@susnux
Copy link
Contributor Author

susnux commented Aug 16, 2023

/backport to stable27

@susnux
Copy link
Contributor Author

susnux commented Aug 16, 2023

/backport to stable26

@susnux
Copy link
Contributor Author

susnux commented Aug 16, 2023

/backport to stable25

@susnux susnux requested a review from skjnldsv August 16, 2023 20:34
Copy link
Member

@skjnldsv skjnldsv left a comment

Choose a reason for hiding this comment

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

Let's wait for #39808 please

@susnux susnux requested a review from skjnldsv August 19, 2023 13:14
@susnux susnux dismissed skjnldsv’s stale review August 19, 2023 13:14

The PR is now merged, lets fix this so we can backport to stable27

Phlogi and others added 3 commits August 21, 2023 23:18
Besides the existing moving average, a smoothing factor is introduced for the time remaining display as well as the bitrate.
Furthermore, half of the buffer needs to be filled before the first prediction is displayed to the user. This reduces volatile and jumping durations towards the user and improves usability.

Signed-off-by: Cyrill H. <phlogi@posteo.de>
Co-authored-by: Carl Schwan <carl@carlschwan.eu>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
@skjnldsv
Copy link
Member

Shall this be done for https://github.com/nextcloud-libraries/nextcloud-upload too?

@susnux
Copy link
Contributor Author

susnux commented Aug 22, 2023

Shall this be done for https://github.com/nextcloud-libraries/nextcloud-upload too?

If it is relevant for the library then yes

@skjnldsv
Copy link
Member

If it is relevant for the library then yes

We're using a dedicated library that calculates remaining time and such 🤔 🤷

@susnux
Copy link
Contributor Author

susnux commented Aug 22, 2023

Cypress seems unrelated

@susnux susnux merged commit da3c941 into master Aug 22, 2023
39 of 41 checks passed
@susnux susnux deleted the fix/improved-upload-view branch August 22, 2023 11:03
@backportbot-nextcloud
Copy link

The backport to stable27 failed. Please do this backport manually.

# Switch to the target branch and update it
git checkout stable27
git pull origin stable27

# Create the new backport branch
git checkout -b fix/foo-stable27

# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123

# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable27

More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport

@backportbot-nextcloud
Copy link

The backport to stable26 failed. Please do this backport manually.

# Switch to the target branch and update it
git checkout stable26
git pull origin stable26

# Create the new backport branch
git checkout -b fix/foo-stable26

# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123

# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable26

More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport

@backportbot-nextcloud
Copy link

The backport to stable25 failed. Please do this backport manually.

# Switch to the target branch and update it
git checkout stable25
git pull origin stable25

# Create the new backport branch
git checkout -b fix/foo-stable25

# Cherry pick the change from the commit sha1 of the change against the default branch
# This might cause conflicts. Resolve them.
git cherry-pick abc123

# Push the cherry pick commit to the remote repository and open a pull request
git push origin fix/foo-stable25

More info at https://docs.nextcloud.com/server/latest/developer_manual/getting_started/development_process.html#manual-backport

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

Successfully merging this pull request may close these issues.

None yet

5 participants