diff --git a/ui/src/app/pages/apps-routes/app-actions/app-actions.page.html b/ui/src/app/pages/apps-routes/app-actions/app-actions.page.html index d19da4d21..5c1e59586 100644 --- a/ui/src/app/pages/apps-routes/app-actions/app-actions.page.html +++ b/ui/src/app/pages/apps-routes/app-actions/app-actions.page.html @@ -32,7 +32,7 @@ - Actions for {{ pkg.manifest.title }} + Actions for {{ pkg.manifest.title }} -

Installing: {{ installProgress.unpackProgress }}%

+

Unpacking: {{ installProgress.unpackProgress }}%

- + Install - + @@ -63,7 +63,14 @@ Downgrade - + + + + + + + View Service + diff --git a/ui/src/app/services/package-loading.service.ts b/ui/src/app/services/package-loading.service.ts index 8da3009e2..bfcdd1a7b 100644 --- a/ui/src/app/services/package-loading.service.ts +++ b/ui/src/app/services/package-loading.service.ts @@ -10,9 +10,10 @@ export class PackageLoadingService { transform (loadData: InstallProgress): ProgressData { let { downloaded, validated, unpacked, size, 'download-complete': downloadComplete, 'validation-complete': validationComplete, 'unpack-complete': unpackComplete } = loadData - downloaded = downloadComplete ? size : downloaded - validated = validationComplete ? size : validated - unpacked = unpackComplete ? size : unpacked + // only permit 100% when "complete" == true + downloaded = downloadComplete ? size : Math.max(downloaded - 1, 0) + validated = validationComplete ? size : Math.max(validated - 1, 0) + unpacked = unpackComplete ? size : Math.max(unpacked - 1, 0) const downloadWeight = 1 const validateWeight = .2 @@ -26,10 +27,10 @@ export class PackageLoadingService { const denominator = Math.floor(size * (downloadWeight + validateWeight + unpackWeight)) return { - totalProgress: Math.round(100 * numerator / denominator), - downloadProgress: Math.round(100 * downloaded / size), - validateProgress: Math.round(100 * validated / size), - unpackProgress: Math.round(100 * unpacked / size), + totalProgress: Math.floor(100 * numerator / denominator), + downloadProgress: Math.floor(100 * downloaded / size), + validateProgress: Math.floor(100 * validated / size), + unpackProgress: Math.floor(100 * unpacked / size), isComplete: downloadComplete && validationComplete && unpackComplete, } }