OpenBuilds-CONTROL/app/js/main.js

179 wiersze
4.2 KiB
JavaScript
Czysty Zwykły widok Historia

2018-06-21 21:04:41 +00:00
var gcode;
2018-08-24 19:00:03 +00:00
var editor;
2018-08-28 15:09:20 +00:00
var isJogWidget = false;
2018-06-21 21:04:41 +00:00
2018-06-21 20:02:40 +00:00
$(document).ready(function() {
2018-08-28 15:09:20 +00:00
if (!isJogWidget) {
init3D();
}
2018-06-22 19:49:51 +00:00
2018-08-24 19:00:03 +00:00
if (typeof ace !== 'undefined') {
editor = ace.edit("editor");
editor.$blockScrolling = Infinity;
editor.session.setMode("ace/mode/cncpro");
editor.setTheme('ace/theme/sqlserver')
// editor.setOption('printMarginColumn', 0)
editor.setAutoScrollEditorIntoView(true);
editor.session.setValue('; No GCODE yet - please Load a GCODE file from the Open GCODE button'); // from samplefile.js
editor.setShowPrintMargin(false);
2018-08-28 15:09:20 +00:00
editor.getSession().on('change', function() {
2018-09-06 17:50:01 +00:00
// parseGcodeInWebWorker(editor.getValue())
2018-08-28 15:09:20 +00:00
});
2018-08-24 19:00:03 +00:00
}
2018-09-06 21:08:06 +00:00
function setposition(e) {
var bodyOffsets = document.body.getBoundingClientRect();
tempX = e.pageX //- bodyOffsets.left;
tempY = e.pageY;
// console.log(tempX);
var offset = $("#editorContextMenu").offset();
console.log(offset)
$("#editorContextMenu").css({
display: 'block',
left: e.pageX,
top: e.pageY
});
console.log(e.pageX, e.pageY)
}
editor.container.addEventListener("contextmenu", function(e) {
console.log("context", e)
setposition(e);
e.preventDefault();
$('#linenumber').html((editor.getSelectionRange().start.row + 1));
// alert('success! - rightclicked line ' + (editor.getSelectionRange().start.row + 1));
}, false);
2018-06-22 19:49:51 +00:00
2018-06-21 20:02:40 +00:00
document.addEventListener('keydown', function(evt) {
if (evt.which === 123) {
try {
var focusedWindow = require('electron').remote.getCurrentWindow();
if (focusedWindow.isDevToolsOpened()) {
focusedWindow.closeDevTools();
} else {
focusedWindow.openDevTools();
}
} catch (error) {
console.warn(error);
}
} else if (evt.which === 116) {
location.reload();
}
});
2018-06-21 21:04:41 +00:00
var fileOpen = document.getElementById('file');
2018-08-24 19:00:03 +00:00
if (fileOpen) {
fileOpen.addEventListener('change', readFile, false);
}
2018-08-08 20:46:11 +00:00
2018-08-29 08:11:14 +00:00
$.get("/gcode").done(function(data) {
console.log(data.length)
if (data.length > 2) {
editor.session.setValue(data);
2018-09-06 17:50:01 +00:00
parseGcodeInWebWorker(data)
$('#controlTab').click()
if (webgl) {
$('#gcodeviewertab').click();
} else {
$('#gcodeeditortab').click()
}
2018-08-29 08:11:14 +00:00
}
2018-08-29 08:11:14 +00:00
});
2018-09-18 14:34:11 +00:00
setTimeout(function() {
$('#splash').fadeOut(500);
}, 10)
2018-08-29 08:11:14 +00:00
2018-06-21 21:04:41 +00:00
});
function readFile(evt) {
console.group("New FileOpen Event:");
console.log(evt);
console.groupEnd();
// Close the menu
$("#drop1").dropdown("toggle");
// Files
var files = evt.target.files || evt.dataTransfer.files;
for (var i = 0; i < files.length; i++) {
loadFile(files[i]);
}
2018-09-18 14:09:11 +00:00
document.getElementById('file').value = '';
2018-06-21 21:04:41 +00:00
}
// load file
function loadFile(f) {
// Filereader
if (f) {
var r = new FileReader();
// if (f.name.match(/.gcode$/i)) {
r.readAsText(f);
r.onload = function(event) {
// cleanupThree();
2018-06-22 19:49:51 +00:00
// gcode = this.result;
editor.session.setValue(this.result);
2018-09-06 17:50:01 +00:00
parseGcodeInWebWorker(this.result)
printLog('GCODE Opened: ');
2018-06-21 21:04:41 +00:00
};
// }
}
2018-08-08 20:46:11 +00:00
}
function versionCompare(v1, v2, options) {
var lexicographical = options && options.lexicographical,
zeroExtend = options && options.zeroExtend,
v1parts = v1.split('.'),
v2parts = v2.split('.');
function isValidPart(x) {
return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x);
}
if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {
return NaN;
}
if (zeroExtend) {
while (v1parts.length < v2parts.length) v1parts.push("0");
while (v2parts.length < v1parts.length) v2parts.push("0");
}
if (!lexicographical) {
v1parts = v1parts.map(Number);
v2parts = v2parts.map(Number);
}
for (var i = 0; i < v1parts.length; ++i) {
if (v2parts.length == i) {
return 1;
}
if (v1parts[i] == v2parts[i]) {
continue;
} else if (v1parts[i] > v2parts[i]) {
return 1;
} else {
return -1;
}
}
if (v1parts.length != v2parts.length) {
return -1;
}
return 0;
2018-08-28 15:22:12 +00:00
}
var webgl = (function() {
try {
return !!window.WebGLRenderingContext && !!document.createElement('canvas').getContext('experimental-webgl');
} catch (e) {
return false;
}
})();