- Marlin Configurator
- Select presets (coming soon), modify, and download.
-
-
-
-
-
-
-
-
diff --git a/Marlin/configurator/js/FileSaver.min.js b/Marlin/configurator/js/FileSaver.min.js
deleted file mode 100755
index f7319603d..000000000
--- a/Marlin/configurator/js/FileSaver.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
-var saveAs=saveAs||typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(view){"use strict";if(typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var doc=view.document,get_URL=function(){return view.URL||view.webkitURL||view},save_link=doc.createElementNS("http://www.w3.org/1999/xhtml","a"),can_use_save_link="download"in save_link,click=function(node){var event=doc.createEvent("MouseEvents");event.initMouseEvent("click",true,false,view,0,0,0,0,0,false,false,false,false,0,null);node.dispatchEvent(event)},webkit_req_fs=view.webkitRequestFileSystem,req_fs=view.requestFileSystem||webkit_req_fs||view.mozRequestFileSystem,throw_outside=function(ex){(view.setImmediate||view.setTimeout)(function(){throw ex},0)},force_saveable_type="application/octet-stream",fs_min_size=0,arbitrary_revoke_timeout=500,revoke=function(file){var revoker=function(){if(typeof file==="string"){get_URL().revokeObjectURL(file)}else{file.remove()}};if(view.chrome){revoker()}else{setTimeout(revoker,arbitrary_revoke_timeout)}},dispatch=function(filesaver,event_types,event){event_types=[].concat(event_types);var i=event_types.length;while(i--){var listener=filesaver["on"+event_types[i]];if(typeof listener==="function"){try{listener.call(filesaver,event||filesaver)}catch(ex){throw_outside(ex)}}}},FileSaver=function(blob,name){var filesaver=this,type=blob.type,blob_changed=false,object_url,target_view,dispatch_all=function(){dispatch(filesaver,"writestart progress write writeend".split(" "))},fs_error=function(){if(blob_changed||!object_url){object_url=get_URL().createObjectURL(blob)}if(target_view){target_view.location.href=object_url}else{var new_tab=view.open(object_url,"_blank");if(new_tab==undefined&&typeof safari!=="undefined"){view.location.href=object_url}}filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url)},abortable=function(func){return function(){if(filesaver.readyState!==filesaver.DONE){return func.apply(this,arguments)}}},create_if_not_found={create:true,exclusive:false},slice;filesaver.readyState=filesaver.INIT;if(!name){name="download"}if(can_use_save_link){object_url=get_URL().createObjectURL(blob);save_link.href=object_url;save_link.download=name;click(save_link);filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);return}if(view.chrome&&type&&type!==force_saveable_type){slice=blob.slice||blob.webkitSlice;blob=slice.call(blob,0,blob.size,force_saveable_type);blob_changed=true}if(webkit_req_fs&&name!=="download"){name+=".download"}if(type===force_saveable_type||webkit_req_fs){target_view=view}if(!req_fs){fs_error();return}fs_min_size+=blob.size;req_fs(view.TEMPORARY,fs_min_size,abortable(function(fs){fs.root.getDirectory("saved",create_if_not_found,abortable(function(dir){var save=function(){dir.getFile(name,create_if_not_found,abortable(function(file){file.createWriter(abortable(function(writer){writer.onwriteend=function(event){target_view.location.href=file.toURL();filesaver.readyState=filesaver.DONE;dispatch(filesaver,"writeend",event);revoke(file)};writer.onerror=function(){var error=writer.error;if(error.code!==error.ABORT_ERR){fs_error()}};"writestart progress write abort".split(" ").forEach(function(event){writer["on"+event]=filesaver["on"+event]});writer.write(blob);filesaver.abort=function(){writer.abort();filesaver.readyState=filesaver.DONE};filesaver.readyState=filesaver.WRITING}),fs_error)}),fs_error)};dir.getFile(name,{create:false},abortable(function(file){file.remove();save()}),abortable(function(ex){if(ex.code===ex.NOT_FOUND_ERR){save()}else{fs_error()}}))}),fs_error)}),fs_error)},FS_proto=FileSaver.prototype,saveAs=function(blob,name){return new FileSaver(blob,name)};FS_proto.abort=function(){var filesaver=this;filesaver.readyState=filesaver.DONE;dispatch(filesaver,"abort")};FS_proto.readyState=FS_proto.INIT=0;FS_proto.WRITING=1;FS_proto.DONE=2;FS_proto.error=FS_proto.onwritestart=FS_proto.onprogress=FS_proto.onwrite=FS_proto.onabort=FS_proto.onerror=FS_proto.onwriteend=null;return saveAs}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!=null){define([],function(){return saveAs})}
diff --git a/Marlin/configurator/js/binaryfileuploader.js b/Marlin/configurator/js/binaryfileuploader.js
deleted file mode 100644
index 0a1f38f3d..000000000
--- a/Marlin/configurator/js/binaryfileuploader.js
+++ /dev/null
@@ -1,79 +0,0 @@
-function BinaryFileUploader(o) {
- this.options = null;
-
-
- this._defaultOptions = {
- element: null, // HTML file element
- onFileLoad: function(file) {
- console.log(file.toString());
- }
- };
-
-
- this._init = function(o) {
- if (!this.hasFileUploaderSupport()) return;
-
- this._verifyDependencies();
-
- this.options = this._mergeObjects(this._defaultOptions, o);
- this._verifyOptions();
-
- this.addFileChangeListener();
- }
-
-
- this.hasFileUploaderSupport = function() {
- return !!(window.File && window.FileReader && window.FileList && window.Blob);
- }
-
- this.addFileChangeListener = function() {
- this.options.element.addEventListener(
- 'change',
- this._bind(this, this.onFileChange)
- );
- }
-
- this.onFileChange = function(e) {
- // TODO accept multiple files
- var file = e.target.files[0],
- reader = new FileReader();
-
- reader.onload = this._bind(this, this.onFileLoad);
- reader.readAsBinaryString(file);
- }
-
- this.onFileLoad = function(e) {
- var content = e.target.result,
- string = new BinaryString(content);
- this.options.onFileLoad(string);
- }
-
-
- this._mergeObjects = function(starting, override) {
- var merged = starting;
- for (key in override) merged[key] = override[key];
-
- return merged;
- }
-
- this._verifyOptions = function() {
- if (!(this.options.element && this.options.element.type && this.options.element.type === 'file')) {
- throw 'Invalid element param in options. Must be a file upload DOM element';
- }
-
- if (typeof this.options.onFileLoad !== 'function') {
- throw 'Invalid onFileLoad param in options. Must be a function';
- }
- }
-
- this._verifyDependencies = function() {
- if (!window.BinaryString) throw 'BinaryString is missing. Check that you\'ve correctly included it';
- }
-
- // helper function for binding methods to objects
- this._bind = function(object, method) {
- return function() {return method.apply(object, arguments);};
- }
-
- this._init(o);
-}
diff --git a/Marlin/configurator/js/binarystring.js b/Marlin/configurator/js/binarystring.js
deleted file mode 100644
index 06af64fe2..000000000
--- a/Marlin/configurator/js/binarystring.js
+++ /dev/null
@@ -1,168 +0,0 @@
-function BinaryString(source) {
- this._source = null;
- this._bytes = [];
- this._pos = 0;
- this._length = 0;
-
- this._init = function(source) {
- this._source = source;
- this._bytes = this._stringToBytes(this._source);
- this._length = this._bytes.length;
- }
-
- this.current = function() {return this._pos;}
-
- this.rewind = function() {return this.jump(0);}
- this.end = function() {return this.jump(this.length() - 1);}
- this.next = function() {return this.jump(this.current() + 1);}
- this.prev = function() {return this.jump(this.current() - 1);}
-
- this.jump = function(pos) {
- if (pos < 0 || pos >= this.length()) return false;
-
- this._pos = pos;
- return true;
- }
-
- this.readByte = function(pos) {
- pos = (typeof pos == 'number') ? pos : this.current();
- return this.readBytes(1, pos)[0];
- }
-
- this.readBytes = function(length, pos) {
- length = length || 1;
- pos = (typeof pos == 'number') ? pos : this.current();
-
- if (pos > this.length() ||
- pos < 0 ||
- length <= 0 ||
- pos + length > this.length() ||
- pos + length < 0
- ) {
- return false;
- }
-
- var bytes = [];
-
- for (var i = pos; i < pos + length; i++) {
- bytes.push(this._bytes[i]);
- }
-
- return bytes;
- }
-
- this.length = function() {return this._length;}
-
- this.toString = function() {
- var string = '',
- length = this.length();
-
- for (var i = 0; i < length; i++) {
- string += String.fromCharCode(this.readByte(i));
- }
-
- return string;
- }
-
- this.toUtf8 = function() {
- var inc = 0,
- string = '',
- length = this.length();
-
- // determine if first 3 characters are the BOM
- // then skip them in output if so
- if (length >= 3 &&
- this.readByte(0) === 0xEF &&
- this.readByte(1) === 0xBB &&
- this.readByte(2) === 0xBF
- ) {
- inc = 3;
- }
-
- for (; inc < length; inc++) {
- var byte1 = this.readByte(inc),
- byte2 = 0,
- byte3 = 0,
- byte4 = 0,
- code1 = 0,
- code2 = 0,
- point = 0;
-
- switch (true) {
- // single byte character; same as ascii
- case (byte1 < 0x80):
- code1 = byte1;
- break;
-
- // 2 byte character
- case (byte1 >= 0xC2 && byte1 < 0xE0):
- byte2 = this.readByte(++inc);
-
- code1 = ((byte1 & 0x1F) << 6) +
- (byte2 & 0x3F);
- break;
-
- // 3 byte character
- case (byte1 >= 0xE0 && byte1 < 0xF0):
- byte2 = this.readByte(++inc);
- byte3 = this.readByte(++inc);
-
- code1 = ((byte1 & 0xFF) << 12) +
- ((byte2 & 0x3F) << 6) +
- (byte3 & 0x3F);
- break;
-
- // 4 byte character
- case (byte1 >= 0xF0 && byte1 < 0xF5):
- byte2 = this.readByte(++inc);
- byte3 = this.readByte(++inc);
- byte4 = this.readByte(++inc);
-
- point = ((byte1 & 0x07) << 18) +
- ((byte2 & 0x3F) << 12) +
- ((byte3 & 0x3F) << 6) +
- (byte4 & 0x3F)
- point -= 0x10000;
-
- code1 = (point >> 10) + 0xD800;
- code2 = (point & 0x3FF) + 0xDC00;
- break;
-
- default:
- throw 'Invalid byte ' + this._byteToString(byte1) + ' whilst converting to UTF-8';
- break;
- }
-
- string += (code2) ? String.fromCharCode(code1, code2)
- : String.fromCharCode(code1);
- }
-
- return string;
- }
-
- this.toArray = function() {return this.readBytes(this.length() - 1, 0);}
-
-
- this._stringToBytes = function(str) {
- var bytes = [],
- chr = 0;
-
- for (var i = 0; i < str.length; i++) {
- chr = str.charCodeAt(i);
- bytes.push(chr & 0xFF);
- }
-
- return bytes;
- }
-
- this._byteToString = function(byte) {
- var asString = byte.toString(16).toUpperCase();
- while (asString.length < 2) {
- asString = '0' + asString;
- }
-
- return '0x' + asString;
- }
-
- this._init(source);
-}
diff --git a/Marlin/configurator/js/configurator.js b/Marlin/configurator/js/configurator.js
deleted file mode 100644
index 1a0da92ab..000000000
--- a/Marlin/configurator/js/configurator.js
+++ /dev/null
@@ -1,1432 +0,0 @@
-/**
- * configurator.js
- *
- * Marlin Configuration Utility
- * - Web form for entering configuration options
- * - A reprap calculator to calculate movement values
- * - Uses HTML5 to generate downloadables in Javascript
- * - Reads and parses standard configuration files from local folders
- *
- * Supporting functions
- * - Parser to read Marlin Configuration.h and Configuration_adv.h files
- * - Utilities to replace values in configuration files
- */
-
-"use strict";
-
-$(function(){
-
-/**
- * Github API useful GET paths. (Start with "https://api.github.com/repos/:owner/:repo/")
- *
- * contributors Get a list of contributors
- * tags Get a list of tags
- * contents/[path]?ref=branch/tag/commit Get the contents of a file
- */
-
- // GitHub
- // Warning! Limited to 60 requests per hour!
-var config = {
- type: 'github',
- host: 'https://api.github.com',
- owner: 'MarlinFirmware',
- repo: 'Marlin',
- ref: 'Development',
- path: 'Marlin/configurator/config'
-};
-/**/
-
-/* // Remote
-var config = {
- type: 'remote',
- host: 'http://www.thinkyhead.com',
- path: '_marlin/config'
-};
-/**/
-
-/* // Local
-var config = {
- type: 'local',
- path: 'config'
-};
-/**/
-
-function github_command(conf, command, path) {
- var req = conf.host+'/repos/'+conf.owner+'/'+conf.repo+'/'+command;
- if (path) req += '/' + path;
- return req;
-}
-function config_path(item) {
- var path = '', ref = '';
- switch(config.type) {
- case 'github':
- path = github_command(config, 'contents', config.path);
- if (config.ref !== undefined) ref = '?ref=' + config.ref;
- break;
- case 'remote':
- path = config.host + '/' + config.path + '/';
- break;
- case 'local':
- path = config.path + '/';
- break;
- }
- return path + '/' + item + ref;
-}
-
-// Extend builtins
-String.prototype.lpad = function(len, chr) {
- if (chr === undefined) { chr = ' '; }
- var s = this+'', need = len - s.length;
- if (need > 0) { s = new Array(need+1).join(chr) + s; }
- return s;
-};
-
-String.prototype.prePad = function(len, chr) { return len ? this.lpad(len, chr) : this; };
-String.prototype.zeroPad = function(len) { return this.prePad(len, '0'); };
-String.prototype.toHTML = function() { return jQuery('