diff options
author | Simon Frei <freisim93@gmail.com> | 2023-12-31 23:01:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-31 23:01:16 +0100 |
commit | 2f3eacdb6c1c33650ccdd91f42e842c116200d92 (patch) | |
tree | 662a3e9fb0b0a1ef570c30f092355e46fb1aaa8a /gui | |
parent | 1ce2af1238f0c8e0fa20dfe4cd4cab46688f88d3 (diff) | |
download | syncthing-2f3eacdb6c1c33650ccdd91f42e842c116200d92.tar.gz syncthing-2f3eacdb6c1c33650ccdd91f42e842c116200d92.zip |
gui, lib/scanner: Improve scan progress indication (ref #8331) (#9308)
Diffstat (limited to 'gui')
-rwxr-xr-x | gui/default/syncthing/core/syncthingController.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gui/default/syncthing/core/syncthingController.js b/gui/default/syncthing/core/syncthingController.js index 5b761feb2..32fca420e 100755 --- a/gui/default/syncthing/core/syncthingController.js +++ b/gui/default/syncthing/core/syncthingController.js @@ -1039,18 +1039,29 @@ angular.module('syncthing.core') // Do the same thing in case we only have zero byte files to sync. return 95; } - var pct = 100 * $scope.model[folder].inSyncBytes / $scope.model[folder].globalBytes; - return Math.floor(pct); + return progressIntegerPercentage($scope.model[folder].inSyncBytes, $scope.model[folder].globalBytes); }; $scope.scanPercentage = function (folder) { if (!$scope.scanProgress[folder]) { return undefined; } - var pct = 100 * $scope.scanProgress[folder].current / $scope.scanProgress[folder].total; - return Math.floor(pct); + return progressIntegerPercentage($scope.scanProgress[folder].current, $scope.scanProgress[folder].total); }; + function progressIntegerPercentage(current, total) { + // Even after whatever is being tracked (e.g. hashed or synced + // bytes) is completed, there's likely some more work to be done to + // fully finish the process (db updates, ...). Users apparently + // don't like seeing 100%, so give them 99% to indicate "about to be + // finished". + if (current === total) { + return 99; + } + var pct = 100 * current / total; + return Math.floor(pct); + } + $scope.scanRate = function (folder) { if (!$scope.scanProgress[folder]) { return 0; |