Commit 5fb1a887 authored by Joel Collins's avatar Joel Collins
Browse files

Added auto-update download progress bar

parent 3c32dab0
Loading
Loading
Loading
Loading
+34 −1
Original line number Diff line number Diff line
@@ -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(
+10 −3
Original line number Diff line number Diff line
{
  "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",
+1 −0
Original line number Diff line number Diff line
@@ -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"