0
0
mirror of https://github.com/Doodle3D/doodle3d-client.git synced 2024-12-04 22:04:55 +01:00
This commit is contained in:
Rick Companje 2018-01-25 13:31:49 +01:00
parent c36da87a17
commit 89b57241d3
13 changed files with 250 additions and 298 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@ -193,7 +193,7 @@ function InfoReminderTour(_name) {
} }
function initHelp() { function initHelp() {
//console.log("f:initHelp()"); console.log("f:initHelp()");
// track number of visits of this user // track number of visits of this user
if ($.cookie("Doodle3DVisitCounter") == null) { if ($.cookie("Doodle3DVisitCounter") == null) {
@ -203,7 +203,7 @@ function initHelp() {
} }
// load the html file which describes the tour contents // load the html file which describes the tour contents
$("#helpContainer").load("helpcontent.html", function() { $("#helpContainer").load("http://draw.doodle3d.com/helpcontent.html", function() {
//console.log("helpContent loaded"); //console.log("helpContent loaded");
helpTours = new HelpTours(); helpTours = new HelpTours();

View File

@ -368,6 +368,9 @@ function Printer() {
} }
this.checkStatus = function() { this.checkStatus = function() {
//disble printer status check RC: 2-1-2018
return;
//console.log("Printer:checkStatus"); //console.log("Printer:checkStatus");
this.stateOverruled = false; this.stateOverruled = false;
//console.log(" stateOverruled: ",this.stateOverruled); //console.log(" stateOverruled: ",this.stateOverruled);

View File

@ -10,9 +10,9 @@ function Progressbar() {
this.currProgress = 0; // default val this.currProgress = 0; // default val
this.progressbarFGImg = new Image(); this.progressbarFGImg = new Image();
this.progressbarFGImgSrc = "img/progress_fg.png"; this.progressbarFGImgSrc = "http://draw.doodle3d.com/img/progress_fg.png";
this.progressbarBGImg = new Image(); this.progressbarBGImg = new Image();
this.progressbarBGImgSrc = "img/progress_bg.png"; this.progressbarBGImgSrc = "http://draw.doodle3d.com/img/progress_bg.png";
this.progressWidth= 93; this.progressWidth= 93;
this.progressHeight = 82; this.progressHeight = 82;

View File

@ -16,7 +16,7 @@ function Thermometer() {
this.targetTemperature = 0; // default val this.targetTemperature = 0; // default val
this.thermoOverlayImg = new Image(); this.thermoOverlayImg = new Image();
this.thermoOverlayImgSrc = "img/thermometer_fg_overlay.png"; // ../img/thermometer_fg_overlay.png this.thermoOverlayImgSrc = "http://draw.doodle3d.com/img/thermometer_fg_overlay.png"; // ../img/thermometer_fg_overlay.png
this.thermoWidth= 40; this.thermoWidth= 40;
this.thermoHeight = 100; this.thermoHeight = 100;

View File

@ -2,7 +2,7 @@ var wordArtPopup;
function initWordArt() { function initWordArt() {
$("body").append('<div id="svgfont" style="display:none"></div>'); $("body").append('<div id="svgfont" style="display:none"></div>');
$("#svgfont").load("img/font.svg?"); $("#svgfont").load("http://draw.doodle3d.com/img/font.svg?");
wordArtPopup = new Popup($("#popupWordArt"),$("#popupMask")); wordArtPopup = new Popup($("#popupWordArt"),$("#popupMask"));
$("#btnWordArtOk").on("onButtonClick",wordArtPopup.commit); $("#btnWordArtOk").on("onButtonClick",wordArtPopup.commit);

View File

@ -17,83 +17,73 @@ function ConfigAPI() {
this.init = function(wifiboxURL,wifiboxCGIBinURL) { this.init = function(wifiboxURL,wifiboxCGIBinURL) {
//console.log("ConfigAPI:init"); //console.log("ConfigAPI:init");
_wifiboxURL = wifiboxURL; _wifiboxURL = wifiboxURL;
_wifiboxCGIBinURL = wifiboxCGIBinURL; _wifiboxCGIBinURL = wifiboxCGIBinURL;
} }
this.loadAll = function(completeHandler,failedHandler) { this.loadAll = function(completeHandler,failedHandler) {
//console.log("ConfigAPI:loadAll"); //console.log("ConfigAPI:loadAll");
$.ajax({ alert('ConfigAPI.loadAll() deprecated');
url: _wifiboxURL + "/config/all",
type: "GET",
dataType: 'json',
timeout: _timeoutTime,
success: function(response){
if(response.status == "error" || response.status == "fail") {
if(failedHandler) failedHandler(response);
} else {
completeHandler(response.data);
}
}
}).fail(function() {
if(failedHandler) failedHandler();
});
}; };
this.load = function(targetSettings,completeHandler,failedHandler) { this.load = function(targetSettings,completeHandler,failedHandler) {
alert('ConfigAPI.load() deprecated');
//console.log("ConfigAPI:load"); //console.log("ConfigAPI:load");
$.ajax({ // $.ajax({
url: _wifiboxURL + "/config/", // url: _wifiboxURL + "/config/",
type: "GET", // type: "GET",
dataType: 'json', // dataType: 'json',
data: targetSettings, // data: targetSettings,
timeout: _timeoutTime, // timeout: _timeoutTime,
success: function(response){ // success: function(response){
if(response.status == "error" || response.status == "fail") { // if(response.status == "error" || response.status == "fail") {
if(failedHandler) failedHandler(response); // if(failedHandler) failedHandler(response);
} else { // } else {
completeHandler(response.data); // completeHandler(response.data);
} // }
} // }
}).fail(function() { // }).fail(function() {
if(failedHandler) failedHandler(); // if(failedHandler) failedHandler();
}); // });
}; };
this.save = function(newSettings,completeHandler,failedHandler) { this.save = function(newSettings,completeHandler,failedHandler) {
//console.log("ConfigAPI:save"); //console.log("ConfigAPI:save");
$.ajax({ alert('ConfigAPI.save() deprecated');
url: _wifiboxCGIBinURL + "/config", // $.ajax({
type: "POST", // url: _wifiboxCGIBinURL + "/config",
data: newSettings, // type: "POST",
dataType: 'json', // data: newSettings,
timeout: _saveSettingsTimeoutTime, // dataType: 'json',
success: function(response){ // timeout: _saveSettingsTimeoutTime,
//console.log("ConfigAPI:save response: ",response); // success: function(response){
if(response.status == "error" || response.status == "fail") { // //console.log("ConfigAPI:save response: ",response);
if(failedHandler) failedHandler(response); // if(response.status == "error" || response.status == "fail") {
} else { // if(failedHandler) failedHandler(response);
completeHandler(response.data); // } else {
} // completeHandler(response.data);
} // }
}).fail(function() { // }
if(failedHandler) failedHandler(); // }).fail(function() {
}); // if(failedHandler) failedHandler();
// });
}; };
this.resetAll = function(completeHandler,failedHandler) { this.resetAll = function(completeHandler,failedHandler) {
alert('ConfigAPI.resetAll() deprecated');
//console.log("ConfigAPI:resetAll"); //console.log("ConfigAPI:resetAll");
$.ajax({ // $.ajax({
url: _wifiboxCGIBinURL + "/config/resetall", // url: _wifiboxCGIBinURL + "/config/resetall",
type: "POST", // type: "POST",
dataType: 'json', // dataType: 'json',
timeout: _timeoutTime, // timeout: _timeoutTime,
success: function(response){ // success: function(response){
if(response.status == "error" || response.status == "fail") { // if(response.status == "error" || response.status == "fail") {
if(failedHandler) failedHandler(response); // if(failedHandler) failedHandler(response);
} else { // } else {
completeHandler(response.data); // completeHandler(response.data);
} // }
} // }
}).fail(function() { // }).fail(function() {
if(failedHandler) failedHandler(); // if(failedHandler) failedHandler();
}); // });
}; };
} }

View File

@ -202,67 +202,50 @@ function initButtonBehavior() {
buttonGroupAdd.fadeOut(); buttonGroupAdd.fadeOut();
} }
// btnSettings.on("onButtonClick", openSettingsWindow);
// 29-okt-2013 - we're not doing help for smartphones at the moment
// if (clientInfo.isSmartphone) {
// btnInfo.disable();
// } else {
// btnInfo.on("onButtonClick", function(e) {
// helpTours.startTour(helpTours.WELCOMETOUR);
// });
// }
} }
function stopPrint() { function stopPrint() {
console.log("stop"); // btnStop.disable();
// console.log("f:stopPrint() >> sendPrintCommands = " + sendPrintCommands); // $.get("/set?code=M104 S200\nG21\nM107\nG28 X0 Y0 Z0\nM109 S200\nG28 Z0\nG1 Z15 F9000\nG92 E0\nG91\nG1 F200 E20\nG92 E0\nG92 E0\nG1 F9000\nG90\n", function() {
// if (sendPrintCommands) printer.stop(); $.get("/set?cmd={P:X}");
// //setState(Printer.STOPPING_STATE,printer.hasControl); // });
// printer.overruleState(Printer.STOPPING_STATE);
} }
function print(e) { function print(e) {
console.log("print"); console.log("print");
// console.log("f:print() >> sendPrintCommands = " + sendPrintCommands);
// //$(".btnPrint").css("display","none"); var gcode = generate_gcode();
if (!gcode || gcode=="") {
console.log("no gcode to print");
return;
}
// if (_points.length > 2) { var blob = new Blob([gcode.join('\n')],{type: "application/octet-stream"});
var fd = new FormData();
fd.append("blob", blob, "doodle3d.gcode");
// //setState(Printer.BUFFERING_STATE,printer.hasControl); // $.get("/set?code=M104 S200", function() { //heatup
// printer.overruleState(Printer.BUFFERING_STATE); // $.get("/set?code=G28 X0 Y0", function() { //show movement
// $.get("/set?code=M563 S5", function() { //speed up Upload via WiFi
$.ajax({ //start download
type: 'POST',
url: '/upload',
cache: false,
data: fd,
processData: false,
// contentDisposition: 'form-data; name="file"; filename="doodle.gcode',
contentType: false
}).done(function(data) {
console.log(data);
// // we put the gcode generation in a little delay // setTimeout(function() {
// // so that for example the print button is disabled right away // btnStop.enable();
// clearTimeout(gcodeGenerateDelayer); // $.get("/set?code=M565"); //start printing cache.gc
// gcodeGenerateDelayer = setTimeout(function() { // },3000)
// var gcode = generate_gcode(); });
// if (sendPrintCommands) { // });
// if(gcode.length > 0) {
// printer.print(gcode);
// } else {
// printer.overruleState(Printer.IDLE_STATE);
// printer.startStatusCheckInterval();
// }
// } else {
// console.log("sendPrintCommands is false: not sending print command to 3dprinter");
// }
// // if (debugMode) {
// // $("#textdump").text("");
// // $("#textdump").text(gcode.join("\n"));
// // }
// }, gcodeGenerateDelay);
// } else {
// console.log("f:print >> not enough points!");
// }
// $.post("/doodle3d.of", { data:output }, function(data) {
// btnPrint.disabled = false;
// }); // });
} }
@ -422,58 +405,6 @@ function setState(newState,newHasControl) {
btnSave.disable(); btnSave.disable();
// /* save, next and prev buttons */
// switch(newState) {
// case Printer.WIFIBOX_DISCONNECTED_STATE:
// btnPrevious.disable();
// btnNext.disable()
// btnSave.disable();
// break;
// default:
// // updatePrevNextButtonState();
// updateSketchButtonStates();
// if (isModified) btnSave.enable();
// break;
// }
// if(connectingHintDelay && newState != Printer.CONNECTING_STATE) {
// clearTimeout(connectingHintDelay);
// connectingHintDelay = null;
// }
// if(newState == Printer.WIFIBOX_DISCONNECTED_STATE) {
// message.set("Lost connection to WiFi box",Message.ERROR);
// } else if(prevState == Printer.WIFIBOX_DISCONNECTED_STATE) {
// message.set("Connected to WiFi box",Message.INFO,true);
// } else if(newState == Printer.DISCONNECTED_STATE) {
// message.set("Printer disconnected",Message.WARNING,true);
// } else if(newState == Printer.CONNECTING_STATE) {
// message.set("Printer connecting...",Message.INFO,false);
// if (prevState != Printer.CONNECTING_STATE) { //enable 'watchdog' if we entered from a different state
// clearTimeout(connectingHintDelay);
// connectingHintDelay = setTimeout(function() {
// message.set("Printer still not connected, did you<br/>select the correct printer type?", Message.WARNING, false);
// connectingHintDelay = null;
// }, connectingHintDelayTime);
// }
// } else if(prevState == Printer.DISCONNECTED_STATE && newState == Printer.IDLE_STATE ||
// prevState == Printer.UNKNOWN_STATE && newState == Printer.IDLE_STATE ||
// prevState == Printer.CONNECTING_STATE && newState == Printer.IDLE_STATE) {
// message.set("Printer connected",Message.INFO,true);
// console.log(" preheat: ",settings["printer.heatup.enabled"]);
// if(settings["printer.heatup.enabled"]) {
// // HACK: we delay the preheat because the makerbot driver needs time to connect
// clearTimeout(preheatDelay);
// preheatDelay = setTimeout(printer.preheat,preheatDelayTime); // retry after delay
// }
// } else if(prevState == Printer.PRINTING_STATE && newState == Printer.STOPPING_STATE) {
// console.log("stopmsg show");
// message.set("Printer stopping",Message.INFO,false);
// } else if(prevState == Printer.STOPPING_STATE && newState == Printer.IDLE_STATE) {
// console.log("stopmsg hide");
// message.hide();
// }
state = newState; state = newState;
hasControl = newHasControl; hasControl = newHasControl;
} }

View File

@ -11,10 +11,8 @@ var gcode = [];
function generate_gcode() { function generate_gcode() {
console.log("f:generategcode()"); console.log("f:generategcode()");
gcode = []; gcode = [];
console.log("settings: ",settings);
var speed = settings["printer.speed"]; var speed = settings["printer.speed"];
var normalSpeed = speed; var normalSpeed = speed;
var bottomSpeed = settings["printer.bottomLayerSpeed"]; var bottomSpeed = settings["printer.bottomLayerSpeed"];
@ -61,6 +59,11 @@ function generate_gcode() {
// copy array without reference -> http://stackoverflow.com/questions/9885821/copying-of-an-array-of-objects-to-another-array-without-object-reference-in-java // copy array without reference -> http://stackoverflow.com/questions/9885821/copying-of-an-array-of-objects-to-another-array-without-object-reference-in-java
var points = JSON.parse(JSON.stringify(_points)); var points = JSON.parse(JSON.stringify(_points));
if (!points || points.length==0) {
console.log("generate_gcode: no points");
return gcode;
}
// add gcode begin commands // add gcode begin commands
gcode = gcode.concat(startCode); gcode = gcode.concat(startCode);
@ -109,19 +112,20 @@ function generate_gcode() {
pointsScale(p, layerScale, layerScale); pointsScale(p, layerScale, layerScale);
pointsRotate(p, rStepGCode * layer); pointsRotate(p, rStepGCode * layer);
if (layer == 0) { speed = layer<3 ? bottomSpeed : normalSpeed;
//gcode.push("M107"); //fan off // if (layer == 0) {
if (firstLayerSlow) { // //gcode.push("M107"); //fan off
//gcode.push("M220 S20"); //slow speed // if (firstLayerSlow) {
speed = bottomSpeed; // //gcode.push("M220 S20"); //slow speed
//console.log("> speed: ",speed); // speed = bottomSpeed;
} // //console.log("> speed: ",speed);
} else if (layer == 2) { ////////LET OP, pas bij layer 2 weer op normale snelheid ipv layer 1 // }
gcode.push("M106"); //fan on // } else if (layer == 2) { ////////LET OP, pas bij layer 2 weer op normale snelheid ipv layer 1
//gcode.push("M220 S100"); //normal speed // gcode.push("M106"); //fan on
speed = normalSpeed; // //gcode.push("M220 S100"); //normal speed
//console.log("> speed: ",speed); // speed = normalSpeed;
} // //console.log("> speed: ",speed);
// }
var curLayerCommand = 0; var curLayerCommand = 0;
var totalLayerCommands = p.length; var totalLayerCommands = p.length;
@ -250,7 +254,7 @@ function scaleFunction(percent) {
r = 1.0 - (percent * .8); r = 1.0 - (percent * .8);
break; break;
case verticalShapes.SINUS: case verticalShapes.SINUS:
r = (Math.cos(percent * Math.PI * 4) * .25) + .75; r = (Math.cos(percent * Math.PI * 12) * .25) + .75;
break; break;
} }

View File

@ -33,6 +33,52 @@ var clientInfo = {};
var POPUP_SHOW_DURATION = 175; var POPUP_SHOW_DURATION = 175;
var BUTTON_GROUP_SHOW_DURATION = 80; var BUTTON_GROUP_SHOW_DURATION = 80;
var settings = {
"doodle3d.simplify.minDistance": 3,
"doodle3d.tour.enabled": true,
"doodle3d.update.baseUrl": "http://doodle3d.com/updates",
"doodle3d.update.includeBetas": false,
"gcode.server": "http://gcodeserver.doodle3d.com",
"network.ap.address" : "192.168.10.1",
"network.ap.key" : "",
"network.ap.netmask" : "255.255.255.0",
"network.ap.ssid" : "Doodle3D-%%MAC_ADDR_TAIL%%",
"network.cl.wifiboxid": "Doodle3D-%%MAC_ADDR_TAIL%%",
"printer.baudrate": "115200",
"printer.bed.temperature": 50,
"printer.bottomEnableTraveling": true,
"printer.bottomFlowRate": 2,
"printer.bottomLayerSpeed": 35,
"printer.dimensions.x" : 120,
"printer.dimensions.y": 120,
"printer.dimensions.z": 120,
"printer.enableTraveling": true,
"printer.startcode": "M104 S220\nG21\nM107\nG28 X0 Y0 Z0\nM109 S220\nG28 Z0\nG1 Z15 F9000\nG92 E0\nG91\nG1 F200 E20\nG92 E0\nG92 E0\nG1 F9000\nG90\n",
"printer.endcode": "M107\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000\nG28 X0 Y0",
"printer.filamentThickness": 1.75,
"printer.firstLayerSlow": true,
"printer.heatedbed": false,
"printer.heatup.bed.temperature": 0,
"printer.heatup.enabled": false,
"printer.heatup.temperature": 0,
"printer.layerHeight": 0.2,
"printer.retraction.amount": 3,
"printer.retraction.enabled": true,
"printer.retraction.minDistance": 5,
"printer.retraction.speed": 50,
"printer.screenToMillimeterScale": .3,
"printer.speed": 70,
"printer.temperature": 180,
"printer.travelSpeed": 200,
"printer.type:": "marlin_generic",
"printer.useSubLayers": true,
"printer.wallThickness": 0.5,
"system.log.level": "info"
// "M104 S{printingTemp}\n{if heatedBed}M190 S{printingBedTemp}\nG21\nM107\nG28 X0 Y0\nM109 S{printingTemp}\nG28 Z0\nG1 Z15 F9000\nG92 E0\nG91\nG1 F200 E10\nG92 E0\nG92 E0\nG1 F9000\nG90\n"
//
};
$(function() { $(function() {
console.log("Doodle3D client ready"); console.log("Doodle3D client ready");
console.log("Build information - <%= build_info %>)"); console.log("Build information - <%= build_info %>)");
@ -52,17 +98,14 @@ $(function() {
wifiboxCGIBinURL = hostname+"/cgi-bin/d3dapi"; wifiboxCGIBinURL = hostname+"/cgi-bin/d3dapi";
//var api = wifiboxURL+'/d3dapi/sketch/';
// if (wifiboxIsRemote) { // setInterval(function() {
// // var hostname = "http://10.0.0.45"; // $.get("/inquiry",function(data) {
// var hostname = "http://192.168.5.1"; // console.log(data);
// wifiboxURL = hostname+"/d3dapi"; // })
// wifiboxCGIBinURL = hostname+"/cgi-bin/d3dapi"; // },2000);
// } else {
// wifiboxURL = "http://" + window.location.host + "/d3dapi";
// wifiboxCGIBinURL = "http://" + window.location.host + "/cgi-bin/d3dapi";
// }
if (!communicateWithWifibox) { if (!communicateWithWifibox) {
sendPrintCommands = false; // 'communicateWithWifibox = false' implies this sendPrintCommands = false; // 'communicateWithWifibox = false' implies this
@ -90,56 +133,13 @@ $(function() {
disableDragging(); disableDragging();
// if (!clientInfo.isSmartphone) initHelp(); if (!clientInfo.isSmartphone) initHelp();
thermometer.init($("#thermometerCanvas"), $("#thermometerContainer")); thermometer.init($("#thermometerCanvas"), $("#thermometerContainer"));
progressbar.init($("#progressbarCanvas"), $("#progressbarCanvasContainer")); progressbar.init($("#progressbarCanvas"), $("#progressbarCanvasContainer"));
message.init($("#message")); message.init($("#message"));
// printer.init();
// $(document).on(Printer.UPDATE,update);
// settingsWindow.init(wifiboxURL,wifiboxCGIBinURL);
// $(document).on(SettingsWindow.SETTINGS_LOADED, settingsLoaded);
// if(debugMode) {
// console.log("debug mode is true");
// $("body").css("overflow", "auto");
// $("#debug_textArea").css("display", "block");
// //$("#preview_tmp").css("display", "block");
// $("#debug_display").css("display", "block");
// show and hide the progressguage and thermometer
//showhideInterval = setInterval(showOrHideThermo, 2500);
// $("#debugContainer").css("display", "block");
/* TEMP CODE!! -> artificially populates the startgcode and endgcode textareas in the settings window */
// todo remove this temporary code...
/*
setTimeout(function() {
$("#startgcode").text("");
$("#startgcode").append("G21 (mm) \n");
$("#startgcode").append("G91 (relative) \n");
$("#startgcode").append("G28 X0 Y0 Z0 (physical home) \n");
$("#startgcode").append("M104 S230 (temperature) \n");
$("#startgcode").append("G1 E10 F250 (flow) \n");
$("#startgcode").append("G92 X-100 Y-100 Z0 E10 \n");
$("#startgcode").append("G1 Z3 F5000 (prevent diagonal line) \n");
$("#startgcode").append("G90 (absolute) \n");
$("#startgcode").append("M106 (fan on)");
console.log("$('#startgcode'): " + $("#startgcode").val());
$("#endgcode").text("");
$("#endgcode").append("G1 X-100 Y-100 F15000 (fast homing) \n");
$("#endgcode").append("M107 \n");
$("#endgcode").append("M84 (disable axes) \n");
console.log("$('#endgcode'): " + $("#endgcode").val());
}, 1000);
// //*/
// }
}); });
function disableDragging() { function disableDragging() {

22
js/my-new-post.txt Normal file

File diff suppressed because one or more lines are too long

View File

@ -174,7 +174,11 @@ function SettingsWindow() {
this.downloadGcode = function() { this.downloadGcode = function() {
var gcode = generate_gcode(); var gcode = generate_gcode();
if (gcode!=undefined) {
if (!gcode || gcode=="" || gcode.length==0) {
console.log("no gcode to download");
return;
} else {
var blob = new Blob([gcode.join("\n")], {type: "text/plain;charset=utf-8"}); var blob = new Blob([gcode.join("\n")], {type: "text/plain;charset=utf-8"});
saveAs(blob, "doodle3d.gcode"); saveAs(blob, "doodle3d.gcode");
} }

View File

@ -8,12 +8,12 @@
<meta name="mobile-web-app-capable" content="yes" /> <meta name="mobile-web-app-capable" content="yes" />
<meta id="Viewport" name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui"> <meta id="Viewport" name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui">
<link rel="icon" type="image/ico" href="./favicon_alt.ico"/> <link rel="icon" type="image/ico" href="http://draw.doodle3d.com/favicon_alt.ico"/>
<link rel="apple-touch-icon-precomposed" href="./img/webpage_icons/apple-touch-icon-144x144-precomposed.png"/> <link rel="apple-touch-icon-precomposed" href="http://draw.doodle3d.com/img/webpage_icons/apple-touch-icon-144x144-precomposed.png"/>
<link rel="apple-touch-icon-precomposed" href="./img/webpage_icons/apple-touch-icon-144x144-precomposed.png" sizes="144x144" /> <link rel="apple-touch-icon-precomposed" href="http://draw.doodle3d.com/img/webpage_icons/apple-touch-icon-144x144-precomposed.png" sizes="144x144" />
<link href="css/styles.min.css" rel="stylesheet" media="screen"> <link href="http://draw.doodle3d.com/css/styles.min.css" rel="stylesheet" media="screen">
<link href="css/debug.min.css" rel="stylesheet" media="screen"> <link href="http://draw.doodle3d.com/css/debug.min.css" rel="stylesheet" media="screen">
</head> </head>
<body> <body>
@ -21,34 +21,34 @@
<!-- background images --> <!-- background images -->
<div class="bgContainer"> <div class="bgContainer">
<img id="bgTop" src="img/bg_top.png" /> <img id="bgTop" src="http://draw.doodle3d.com/img/bg_top.png" />
<img id="bgMiddle" src="img/bg_middle.png" /> <img id="bgMiddle" src="http://draw.doodle3d.com/img/bg_middle.png" />
<img id="bgBottom" src="img/bg_bottom.png" /> <img id="bgBottom" src="http://draw.doodle3d.com/img/bg_bottom.png" />
</div> </div>
<!-- left panel --> <!-- left panel -->
<div id="leftpanel"> <div id="leftpanel">
<img id="btnNew" class="btn" src="img/buttons/btnNew.png" /><br/> <img id="btnNew" class="btn" src="http://draw.doodle3d.com/img/buttons/btnNew.png" /><br/>
<div id="btnsPrevNext"> <div id="btnsPrevNext">
<img id="btnPrevious" class="btn disabled" src="img/buttons/btnLeft.png"> <img id="btnPrevious" class="btn disabled" src="http://draw.doodle3d.com/img/buttons/btnLeft.png">
<img id="btnNext" class="btn disabled" src="img/buttons/btnRight.png"> <img id="btnNext" class="btn disabled" src="http://draw.doodle3d.com/img/buttons/btnRight.png">
</div> </div>
<img id="btnSave" class="btn" src="img/buttons/btnSave.png" /><br/> <img id="btnSave" class="btn" src="http://draw.doodle3d.com/img/buttons/btnSave.png" /><br/>
<img id="btnOops" class="btn" src="img/buttons/btnOops.png" /><br/> <img id="btnOops" class="btn" src="http://draw.doodle3d.com/img/buttons/btnOops.png" /><br/>
<img id="btnAdd" class="btn" src="img/buttons/btnAdd.png" /><br/> <img id="btnAdd" class="btn" src="http://draw.doodle3d.com/img/buttons/btnAdd.png" /><br/>
<div id="buttonGroupAdd" class="buttonGroup"> <div id="buttonGroupAdd" class="buttonGroup">
<img id="btnWordArt" class="btn" src="img/buttons/btnWordArt.png" /> <img id="btnWordArt" class="btn" src="http://draw.doodle3d.com/img/buttons/btnWordArt.png" />
<img id="btnShape" class="btn" src="img/buttons/btnShape.png" /> <img id="btnShape" class="btn" src="http://draw.doodle3d.com/img/buttons/btnShape.png" />
<img id="btnScan" class="btn" src="img/buttons/btnGuide.png" /> <img id="btnScan" class="btn" src="http://draw.doodle3d.com/img/buttons/btnGuide.png" />
</div> </div>
</div> </div>
<!-- right panel --> <!-- right panel -->
<div id="rightpanel"> <div id="rightpanel">
<img id="btnPrint" class="btn clearfix" src="img/buttons/btnPrint.png" /> <img id="btnPrint" class="btn clearfix" src="http://draw.doodle3d.com/img/buttons/btnPrint.png" />
<img id="btnStop" class="btn clearfix disabled" src="img/buttons/btnStop.png" /> <img id="btnStop" class="btn clearfix" src="http://draw.doodle3d.com/img/buttons/btnStop.png" />
<div id="progressbarCanvasContainerParent"> <div id="progressbarCanvasContainerParent">
<div id="progressbarCanvasContainer"> <div id="progressbarCanvasContainer">
@ -61,8 +61,8 @@
</div> </div>
</div> </div>
<div id="btnsSettingsInfo"> <div id="btnsSettingsInfo">
<img id="btnSettings" class="btn" src="img/buttons/btnSettings.png"> <img id="btnSettings" class="btn" src="http://draw.doodle3d.com/img/buttons/btnSettings.png">
<img id="btnInfo" class="btn" src="img/buttons/btnInfo.png"> <img id="btnInfo" class="btn" src="http://draw.doodle3d.com/img/buttons/btnInfo.png">
</div> </div>
</div> </div>
@ -71,8 +71,8 @@
<div id="centerpanel"> <div id="centerpanel">
<div id="logopanel" class="btn"> <div id="logopanel" class="btn">
<img id="pencil" src="img/logo/pencil.png"/> <img id="pencil" src="http://draw.doodle3d.com/img/logo/pencil.png"/>
<img id="logo" src="img/logo/doodle3d.png"/> <img id="logo" src="http://draw.doodle3d.com/img/logo/doodle3d.png"/>
</div> </div>
<div id="drawareacontainer"> <div id="drawareacontainer">
@ -81,33 +81,33 @@
<div id="mycanvasContainer"> <div id="mycanvasContainer">
<img id="imgGuide"> <img id="imgGuide">
<canvas id="mycanvas"></canvas> <canvas id="mycanvas"></canvas>
<img id="btnCloseScan" class="btn" src="img/buttons/btnClose.png" /> <img id="btnCloseScan" class="btn" src="http://draw.doodle3d.com/img/buttons/btnClose.png" />
</div> </div>
<div id="previewContainer"> <div id="previewContainer">
<canvas id="preview"></canvas> <canvas id="preview"></canvas>
<div id="buttonGroupVerticalShapes" class="buttonGroup"> <div id="buttonGroupVerticalShapes" class="buttonGroup">
<img id="btnTwist" class="btn" src="img/buttons/btnTwist.png" /> <img id="btnTwist" class="btn" src="http://draw.doodle3d.com/img/buttons/btnTwist.png" />
<img id="btnHeight" class="btn" src="img/buttons/btnHeight.png" /> <img id="btnHeight" class="btn" src="http://draw.doodle3d.com/img/buttons/btnHeight.png" />
<div id="verticalShapes"> <div id="verticalShapes">
<img id="btnConv" class="btn" src="img/buttons/btnConv.png" /> <img id="btnConv" class="btn" src="http://draw.doodle3d.com/img/buttons/btnConv.png" />
<img id="btnDiv" class="btn" src="img/buttons/btnDiv.png" /> <img id="btnDiv" class="btn" src="http://draw.doodle3d.com/img/buttons/btnDiv.png" />
<img id="btnSine" class="btn" src="img/buttons/btnSine.png" /> <img id="btnSine" class="btn" src="http://draw.doodle3d.com/img/buttons/btnSine.png" />
<img id="btnStraight" class="btn" src="img/buttons/btnStraight.png" /> <img id="btnStraight" class="btn" src="http://draw.doodle3d.com/img/buttons/btnStraight.png" />
</div> </div>
</div> </div>
<img id="btnToggleVerticalShapes" class="btn" src="img/buttons/btnArrowClose.png" /> <img id="btnToggleVerticalShapes" class="btn" src="http://draw.doodle3d.com/img/buttons/btnArrowClose.png" />
</div> </div>
</div> </div>
<canvas id="preview_tmp"></canvas> <canvas id="preview_tmp"></canvas>
<div id="buttonGroupEdit" class="buttonGroup"> <div id="buttonGroupEdit" class="buttonGroup">
<img id="btnMove" class="btn" src="img/buttons/btnMove.png" /> <img id="btnMove" class="btn" src="http://draw.doodle3d.com/img/buttons/btnMove.png" />
<img id="btnZoom" class="btn" src="img/buttons/btnZoom.png" /> <img id="btnZoom" class="btn" src="http://draw.doodle3d.com/img/buttons/btnZoom.png" />
<img id="btnRotate" class="btn" src="img/buttons/btnRotate.png" /> <img id="btnRotate" class="btn" src="http://draw.doodle3d.com/img/buttons/btnRotate.png" />
</div> </div>
<img id="btnToggleEdit" class="btn" src="img/buttons/btnArrowOpen.png" /> <img id="btnToggleEdit" class="btn" src="http://draw.doodle3d.com/img/buttons/btnArrowOpen.png" />
</div> </div>
</div> </div>
@ -125,7 +125,7 @@
<h1>Add WordArt</h1> <h1>Add WordArt</h1>
Please enter your text:<br> Please enter your text:<br>
<input id="txtWordArt" type="text"/> <input id="txtWordArt" type="text"/>
<img id="btnWordArtOk" class="btn" src="img/buttons/btnOk.png"> <img id="btnWordArtOk" class="btn" src="http://draw.doodle3d.com/img/buttons/btnOk.png">
</div> </div>
</div> </div>
@ -134,7 +134,7 @@
<h1>Use photo as a guide</h1> <h1>Use photo as a guide</h1>
<input id="fileScan" type="file"/> <input id="fileScan" type="file"/>
<!-- <input id="txtDummy" type="text"/> --> <!-- <input id="txtDummy" type="text"/> -->
<img id="btnScanOk" class="btn" src="img/buttons/btnOk.png"> <img id="btnScanOk" class="btn" src="http://draw.doodle3d.com/img/buttons/btnOk.png">
</div> </div>
</div> </div>
@ -142,11 +142,11 @@
<div class="content"> <div class="content">
<h1>Add a new shape</h1> <h1>Add a new shape</h1>
<div class="columnRight"> <div class="columnRight">
<img id="iconShapeLessPoints" src="img/shapeLessPoints.gif" /> <img id="iconShapeLessPoints" src="http://draw.doodle3d.com/img/shapeLessPoints.gif" />
<img class="btn" id="btnShapeMin" src="img/buttons/btnMin.png" /> <img class="btn" id="btnShapeMin" src="http://draw.doodle3d.com/img/buttons/btnMin.png" />
<img class="btn" id="btnShapePlus" src="img/buttons/btnPlus.png" /> <img class="btn" id="btnShapePlus" src="http://draw.doodle3d.com/img/buttons/btnPlus.png" />
<img id="iconShapeMorePoints" class="icon" src="img/shapeMorePoints.gif" /> <img id="iconShapeMorePoints" class="icon" src="http://draw.doodle3d.com/img/shapeMorePoints.gif" />
<img class="btn" id="btnShapeOk" src="img/buttons/btnOk.png"> <img class="btn" id="btnShapeOk" src="http://draw.doodle3d.com/img/buttons/btnOk.png">
</div> </div>
<canvas id="shapePreview" width="150" height="150"></canvas><br/> <canvas id="shapePreview" width="150" height="150"></canvas><br/>
<div id="lblShapeResolution"></div> <div id="lblShapeResolution"></div>
@ -155,13 +155,13 @@
<div id="popupSettings" class="popup"> <div id="popupSettings" class="popup">
<div class="toppanel"> <div class="toppanel">
<img class="title" src="img/settings_title.png" alt="settings" /> <img class="title" src="http://draw.doodle3d.com/img/settings_title.png" alt="settings" />
</div> </div>
<div class="bottompanel"> <div class="bottompanel">
<div id="settingsContainer"></div> <div id="settingsContainer"></div>
<div class="right"> <div class="right">
<div class="btnContainer"> <div class="btnContainer">
<img src="img/buttons/btnOk.png" class="btn btnOK" alt="save"/> <img src="http://draw.doodle3d.com/img/buttons/btnOk.png" class="btn btnOK" alt="save"/>
</div> </div>
</div> </div>
</div> </div>
@ -171,19 +171,17 @@
</div> </div>
<div id="portrait"> <div id="portrait">
<img id="vertImage" src="img/bg_vertical.png"/> <img id="vertImage" src="http://draw.doodle3d.com/img/bg_vertical.png"/>
</div> </div>
<div id="helpContainer"></div> <div id="helpContainer"></div>
<script src="js/libs/jquery-1-9-1.min.js"></script> <script src="http://draw.doodle3d.com/js/libs/jquery-1-9-1.min.js"></script>
<!-- <script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script> --> <script src="http://draw.doodle3d.com/js/libs/jquery-cookie.min.js"></script>
<script src="js/libs/jquery-cookie.min.js"></script> <script src="http://draw.doodle3d.com/js/libs/jquery-joyride-2-1.min.js"></script>
<script src="js/libs/jquery-joyride-2-1.min.js"></script> <script src="http://draw.doodle3d.com/js/libs/jquery-coolfieldset.min.js"></script>
<script src="js/libs/jquery-coolfieldset.min.js"></script> <script src="http://draw.doodle3d.com/js/libs/FileSaver.min.js"></script>
<script src="js/libs/FileSaver.min.js"></script> <script src="http://draw.doodle3d.com/js/libs/jquery-fastclick.min.js"></script>
<script src="js/libs/jquery-fastclick.min.js"></script> <script src="http://draw.doodle3d.com/js/doodle3d-client.js"></script>
<!-- <script src="js/doodle3d-client.min.js"></script> -->
<script src="js/doodle3d-client.js"></script>
</body> </body>
</html> </html>