pull/110/head
openbuilds-engineer 2018-08-10 21:42:30 +02:00
rodzic bb1444e741
commit 030e3dc88d
8 zmienionych plików z 112 dodań i 68 usunięć

Wyświetl plik

@ -26,7 +26,7 @@ before_install:
install:
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then npm install && build --linux deb rpm AppImage; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then npm install && build --linux deb AppImage; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then npm install && build --mac ; fi
before_cache:

Wyświetl plik

@ -61,8 +61,8 @@ body {
#updateconsole {
/*font-family: "Courier New", Courier, monospace;*/
/* #updateconsole {
font-family: "Lucida Console", Monaco, monospace;
max-height: calc(100vh - 260px);
height: calc(100vh - 200px);
@ -70,20 +70,18 @@ body {
overflow-y: auto;
overflow-x: none;
text-align: left;
/* background-color: #444; */
padding: 0px;
font-size: 12px;
padding-left: 20px;
white-space:normal;
margin-bottom: 0px;
-webkit-touch-callout: text; /* iOS Safari */
-webkit-user-select: text; /* Safari */
-khtml-user-select: text; /* Konqueror HTML */
-moz-user-select: text; /* Firefox */
-ms-user-select: text; /* Internet Explorer/Edge */
user-select: text; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
-webkit-touch-callout: text;
-webkit-user-select: text;
-khtml-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
} */
.pf {
margin-top: 0px;

Wyświetl plik

@ -34,7 +34,7 @@
<li><a id="controlTab" href="#section-two" onclick="manualcontrolPanel();"><i class="fas fa-fw fa-play"></i> Control</a></li>
<li id="grblSettings" style="display: none;"><a href="#section-grbl" onclick="grblPanel();"><i class="fas fa-fw fa-sliders-h"></i> Grbl Settings</a></li>
<li><a href="#section-troubleshooting" onclick="troubleshootingPanel();"><i class="fas fa-fw fa-file-medical-alt"></i> Troubleshooting</a></li>
<li><a href="#section-update" onclick="updatePanel();"><i id="updateIcon" class="fas fa-fw fa-cloud-download-alt"></i> Update <span id="updateAvailable" style="display: none;text-decoration: none !important;">new!</span></a></li>
<!-- <li><a href="#section-update" onclick="updatePanel();"><i id="updateIcon" class="fas fa-fw fa-cloud-download-alt"></i> Update <span id="updateAvailable" style="display: none;text-decoration: none !important;">new!</span></a></li> -->
</ul>
<div class="content-holder">
<div class="section" id="section-grbl">
@ -235,7 +235,7 @@
<span class="title">E-Stop</span>
</div>
</div>
<div class="section" id="section-update">
<!-- <div class="section" id="section-update">
<div class="group">
<button id="checkforupdatesbtn" class="ribbon-button" onclick="$('#updateconsole').empty(); socket.emit('checkUpdates', true)">
@ -282,7 +282,7 @@
<span class="title">E-Stop</span>
</div>
</div>
</div> -->
<div class="section" id="section-troubleshooting">
<div class="group" style="width: 100px;">
@ -726,6 +726,25 @@
</div>
</div>
</div>
<div id="hiddendivs" style="display:none;">
<div class="dialog" id="downloadUpdate" data-role="dialog" data-overlay-click-close="true" data-to-top="true">
<div class="dialog-title">Update Ready</div>
<div class="dialog-content">
Version <code><span id="availVersion">1.0.100</span></code> update ready to be installed!<br> Note that proceeding will:
<ul>
<li>Stops any running jobs</li>
<li>Shuts down this instance of the driver</li>
<li>Launches the installer for the new version</li>
</ul>
<small>You may want to wait until your machine is idle before continuing</small>
</div>
<div class="dialog-actions">
<button class="button js-dialog-close">Ask me again in 15min</button>
<button class="button success js-dialog-close" onclick="socket.emit('applyUpdate', true)">OK, Proceed with Update</button>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="lib/fontawesome5/js/all.min.js"></script>
@ -740,6 +759,7 @@
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/updates.js"></script>
<script type="text/javascript" src="js/ui.js"></script>
<script type="text/javascript" src="js/websocket.js"></script>
<script type="text/javascript" src="js/grblsettings.js"></script>

Wyświetl plik

@ -44,30 +44,6 @@ $(document).ready(function() {
var fileOpen = document.getElementById('file');
fileOpen.addEventListener('change', readFile, false);
setTimeout(function() {
console.log('checking for update')
printLog("<span class='fg-green'>Checking for Updates</span>")
$.getJSON("https://api.github.com/repos/OpenBuilds/SW-Machine-Drivers/releases/latest?client_id=fbbb80debc1197222169&client_secret=7dc6e463422e933448f9a3a4150c8d2bbdd0f87c").done(function(release) {
var availVersion = release.name.substr(1)
var currentVersion = laststatus.driver.version
console.log(versionCompare(availVersion, currentVersion), availVersion, currentVersion);
if (versionCompare(availVersion, currentVersion) == 1) {
console.log('outdated')
printLog("<span class='fg-green'>Update Available! You are running OpenBuilds Machine Driver " + currentVersion + ", and can now update to OpenBuilds Machine Driver " + availVersion + ". Click <kbd>Update</kbd> -> <kbd>Download Updates</kbd> to start the Download</span>")
printUpdateLog("<span class='fg-green'>Update Available! You are running OpenBuilds Machine Driver " + currentVersion + ", and can now update to OpenBuilds Machine Driver " + availVersion + ". Click <kbd>Download Updates</kbd> to start the Download</span>")
$('#updateAvailable').show()
$('#updateAvailable').html('to v' + availVersion)
$('#updateIcon').addClass('ani-shake')
} else {
printLog("<span class='fg-green'>You are already running OpenBuilds Machine Driver " + currentVersion + "</span>")
printUpdateLog("<span class='fg-green'>Update Available! You are already running OpenBuilds Machine Driver " + availVersion + "</span>")
$('#updateAvailable').show()
$('#updateAvailable').html('')
$('#updateIcon').removeClass('ani-shake')
}
});
}, 5000)
});

43
app/js/updates.js 100644
Wyświetl plik

@ -0,0 +1,43 @@
var time = 10
$(document).ready(function() {
setTimeout(function() {
console.log('checking for update')
printLog("<span class='fg-red'>[ update ] </span><span class='fg-green'>Checking for Updates</span>")
$.getJSON("https://api.github.com/repos/OpenBuilds/SW-Machine-Drivers/releases/latest?client_id=fbbb80debc1197222169&client_secret=7dc6e463422e933448f9a3a4150c8d2bbdd0f87c").done(function(release) {
var availVersion = release.name.substr(1)
var currentVersion = laststatus.driver.version
console.log(versionCompare(availVersion, currentVersion), availVersion, currentVersion);
if (versionCompare(availVersion, currentVersion) == 1) {
console.log('outdated')
time = 10
printLog("<span class='fg-red'>[ Update Available! ] </span><span class='fg-green'>OpenBuilds Machine Driver <code>" + availVersion + "</code>. is available now.</span>")
printLog("<span class='fg-red'>[ Update Available! ] </span><span class='fg-green'>Download will start in <span class='tally' id='countdown'>10</span> seconds (<a href='#' onclick='cancelTimer();'>cancel</a>) </span>")
printLog("<span class='fg-red'>[ Update Available! ] </span><span class='fg-green'>You will be prompted when its ready to be installed </span>")
setTimeout(function() {
updateTime();
}, 1000);
} else {
printLog("<span class='fg-red'>[ update ] </span><span class='fg-green'>You are already running OpenBuilds Machine Driver " + currentVersion + "</span>")
}
});
}, 400)
});
function updateTime() {
time--
if (time > 0) {
$('#countdown').html(time)
setTimeout(function() {
updateTime();
}, 1000);
} else if (time == 0) {
$('#countdown').html(time)
socket.emit('downloadUpdate', true)
}
}
function cancelTimer() {
time = -1
$('#countdown').html('cancelled')
printLog("<span class='fg-red'>[ Update Deferred! ] </span><span class='fg-green'>No problem, we will ask you again next time</span>")
}

Wyświetl plik

@ -58,35 +58,35 @@ function printLog(string) {
$('#console').scrollTop($("#console")[0].scrollHeight - $("#console").height());
}
function printUpdateLog(string) {
if (string.isString) {
// split(/\r\n|\n|\r/);
string = string.replace(/\r\n|\n|\r/, "<br />");
}
if ($('#console p').length > 100) {
// remove oldest if already at 300 lines
$('#console p').first().remove();
}
var template = '<p class="pf">';
var time = new Date();
template += '<span class="fg-brandColor1">[' + (time.getHours() < 10 ? '0' : '') + time.getHours() + ":" + (time.getMinutes() < 10 ? '0' : '') + time.getMinutes() + ":" + (time.getSeconds() < 10 ? '0' : '') + time.getSeconds() + ']</span> ';
template += string;
$('#updateconsole').append(template);
$('#updateconsole').scrollTop($("#updateconsole")[0].scrollHeight - $("#updateconsole").height());
}
// function printUpdateLog(string) {
// if (string.isString) {
// // split(/\r\n|\n|\r/);
// string = string.replace(/\r\n|\n|\r/, "<br />");
// }
// if ($('#console p').length > 100) {
// // remove oldest if already at 300 lines
// $('#console p').first().remove();
// }
// var template = '<p class="pf">';
// var time = new Date();
//
// template += '<span class="fg-brandColor1">[' + (time.getHours() < 10 ? '0' : '') + time.getHours() + ":" + (time.getMinutes() < 10 ? '0' : '') + time.getMinutes() + ":" + (time.getSeconds() < 10 ? '0' : '') + time.getSeconds() + ']</span> ';
// template += string;
// $('#updateconsole').append(template);
// $('#updateconsole').scrollTop($("#updateconsole")[0].scrollHeight - $("#updateconsole").height());
// }
function initSocket() {
socket = io.connect(server); // socket.io init
printLog("Bidirectional Websocket Interface Started ")
printLog("<span class='fg-red'>[ Websocket ] </span><span class='fg-brown'>Bidirectional Websocket Interface Started</span>")
setTimeout(function() {
populatePortsMenu();
}, 2000);
socket.on('disconnect', function() {
console.log("WEBSOCKET DISCONNECTED")
printLog("Websocket Disconnected. Driver probably quit or crashed")
printLog("<span class='fg-red'>[ Websocket ] </span><span class='fg-brown'> Disconnected. Driver probably quit or crashed</span>")
$("#websocketstatus").html("Disconnected")
});
@ -117,16 +117,17 @@ function initSocket() {
socket.on('updatedata', function(data) {
// console.log(data.length, data)
var toPrint = data.response;
printUpdateLog("<span class='fg-red'>[ " + data.command + " ]</span> <span class='fg-green'>" + toPrint + "</span>")
printLog("<span class='fg-red'>[ " + data.command + " ]</span> <span class='fg-green'>" + toPrint + "</span>")
});
socket.on('updateready', function(data) {
$('#applyupdatesbtn').prop('disabled', false);
$('#availVersion').html(data)
Metro.dialog.open('#downloadUpdate')
// $('#applyupdatesbtn').prop('disabled', false);
});
socket.on('updateprogress', function(data) {
$('#checkforupdatesbtn').prop('disabled', true);
$('#downloadprogress').show();
$('#downloadprogress').html(data + "%");
});

Wyświetl plik

@ -58,9 +58,10 @@ var appIcon = null,
mainWindow = null
const autoUpdater = require("electron-updater").autoUpdater
var availversion = '0.0.0'
autoUpdater.on('checking-for-update', () => {
var string = 'Checking for update...';
var string = 'Starting update... Please wait';
var output = {
'command': 'autoupdate',
'response': string
@ -75,7 +76,8 @@ autoUpdater.on('checking-for-update', () => {
}
})
autoUpdater.on('update-available', (ev, info) => {
var string = 'Update available.Installed version: ' + require('./package').version + " / Available version: " + ev.version + ". Starting Download...\n";
var string = "Starting Download: v" + ev.version;
availversion = ev.version
var output = {
'command': 'autoupdate',
'response': string
@ -145,13 +147,17 @@ autoUpdater.on('download-progress', (ev, progressObj) => {
})
autoUpdater.on('update-downloaded', (info) => {
var string = "New update ready. Click INSTALL UPDATE once you are ready. NB Note that this closes the running instance of the OpenBuilds Machine Driver, and aborts any running jobs. Only run the Update before beginning a job / once you are done working with your machine. ";
var string = "New update ready";
var output = {
'command': 'autoupdate',
'response': string
}
io.sockets.emit('updatedata', output);
io.sockets.emit('updateready', true);
io.sockets.emit('updateready', availversion);
// repeat every minute
setTimeout(function() {
io.sockets.emit('updateready', availversion);
}, 15 * 60 * 1000) // 5 mins
if (jogWindow && !jogWindow.isFocused()) {
appIcon.displayBalloon({
icon: nativeImage.createFromPath(iconPath),
@ -613,7 +619,7 @@ io.on("connection", function(socket) {
autoUpdater.quitAndInstall();
})
socket.on("checkUpdates", function(data) {
socket.on("downloadUpdate", function(data) {
autoUpdater.checkForUpdates();
})

Wyświetl plik

@ -1,6 +1,6 @@
{
"name": "OpenBuildsMachineDriver",
"version": "1.0.67",
"version": "1.0.68",
"license": "AGPL-3.0",
"description": "Machine Interface Driver for OpenBuilds",
"author": "github.com/openbuilds <webmaster@openbuilds.com>",