Added auto-update download progress bar

This commit is contained in:
Joel Collins 2020-03-30 12:16:32 +01:00
parent 3c32dab014
commit 5fb1a887d9
3 changed files with 45 additions and 4 deletions

View file

@ -4,6 +4,7 @@ const { dialog } = require("electron");
const updater = require("electron-updater");
const autoUpdater = updater.autoUpdater;
const contextMenu = require("electron-context-menu");
const ProgressBar = require("electron-progressbar");
const path = require("path");
// Attach settings store
@ -26,12 +27,44 @@ autoUpdater.on("update-available", function(info) {
},
buttonIndex => {
if (buttonIndex === 0) {
autoUpdater.downloadUpdate();
console.log("Downloading update selected");
handleDownloadUpdate();
}
}
);
});
// Download, with a progress bar
function handleDownloadUpdate() {
console.log("Downloading update");
var progressBar = new ProgressBar({
indeterminate: false,
text: "Downloading update...",
detail: "Please wait...",
browserWindow: {
webPreferences: {
nodeIntegration: true
}
}
});
progressBar.on("ready", function() {
autoUpdater.on("download-progress", function(info) {
progressBar.value = info.percent;
progressBar.detail = `${Math.floor(info.percent)}% ${info.bytesPerSecond /
1000}kb/s`;
});
autoUpdater.on("update-downloaded", function() {
progressBar.close();
});
autoUpdater.on("error", function() {
progressBar.close();
});
autoUpdater.downloadUpdate();
});
}
// Trigger update installation
autoUpdater.on("update-downloaded", function(info) {
sendStatusToWindow("Update downloaded." + info);
dialog.showMessageBox(

13
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "openflexure-ev",
"version": "2.0.0-beta.6",
"version": "2.1.0-alpha",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -7168,6 +7168,14 @@
"resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.1.0.tgz",
"integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ=="
},
"electron-progressbar": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/electron-progressbar/-/electron-progressbar-1.2.0.tgz",
"integrity": "sha512-I89HaI61SF5wl8c4p62UU3RXhL0xByzl4XH/miwb1e/VNUtRj5WCe/wJ5pNikfC01+/4aAOlNsbmkfsvQjtW6Q==",
"requires": {
"extend": "^3.0.1"
}
},
"electron-publish": {
"version": "21.2.0",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-21.2.0.tgz",
@ -8018,8 +8026,7 @@
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extend-shallow": {
"version": "3.0.2",

View file

@ -30,6 +30,7 @@
"about-window": "^1.13.2",
"custom-electron-titlebar": "^3.2.2",
"electron-context-menu": "^0.15.2",
"electron-progressbar": "^1.2.0",
"electron-store": "^5.1.1",
"electron-updater": "^4.2.2",
"material-design-icons": "^3.0.1"