diff --git a/js/Keyboard.js b/js/Keyboard.js index a8c9e10..7559414 100644 --- a/js/Keyboard.js +++ b/js/Keyboard.js @@ -49,8 +49,8 @@ function initKeyboard() { var ch = String.fromCharCode(event.which); switch (ch) { - case 'c': clearDoodle(); break; - case 'n': clearDoodle(); break; + case 'c': newSketch(); break; + case 'n': newSketch(); break; case 'p': print(); break; case 'u': oopsUndo(); break; case 'g': settingsWindow.downloadGcode(); break; @@ -59,8 +59,8 @@ function initKeyboard() { case 'h': previewUp(true); break; case 'H': previewDown(true); break; case 's': saveSketch(); break; - case 'L': nextDoodle(); break; - case 'l': prevDoodle(); break; + case 'L': nextSketch(); break; + case 'l': prevSketch(); break; case '[': previewTwistLeft(); break; case ']': previewTwistRight(); break; case '|': resetTwist(); break; diff --git a/js/Svg.js b/js/Svg.js index b93c90f..1f93ac6 100644 --- a/js/Svg.js +++ b/js/Svg.js @@ -56,6 +56,8 @@ function loadFromSvg(svgData) { clearDoodle(); + svgData = svgData.replace("M0,0 ",""); //RC: hack + var p = svgData.indexOf(" numSavedSketches) currentSketchId = numSavedSketches; - if (currentSketchId < 1) currentSketchId = 1; - - //update textbox - //$("#txtSketch").val(currentSketchId); - - updatePrevNextButtonState(); -} - -function updatePrevNextButtonStateOnClear() { - if (numSavedSketches > 0) btnPrevious.enable(); - btnNext.disable(); - currentSketchId = numSavedSketches+1; //after the end of the list - btnSave.disable(); -} - -function updatePrevNextButtonState() { - - //btnPrevious state - if (numSavedSketches==0 || currentSketchId < 2) { - btnPrevious.disable(); - } else { - btnPrevious.enable(); + if (isModified) { + btnSave.enable(); + } + else { + btnSave.disable(); } - //btnNext state - if (numSavedSketches==0 || currentSketchId >= numSavedSketches) { - btnNext.disable(); - } else { + if (curSketch0) { + btnPrevious.enable(); + } else { + btnPrevious.disable(); + } + } -function loadSketch(sketchId) { +function loadSketch(_curSketch) { + curSketch = _curSketch; - $.ajax({ - url: wifiboxURL + "/sketch/" + sketchId, - dataType: 'json', - type: 'GET', -// timeout: this.timeoutTime, - success: function(response) { - if (response.status == 'error' || response.status == 'fail') { - console.log("loadSketch fail/error: " + response.msg + " -- ", response); - } else { - console.log("loadSketch success: loaded id #" + response.data.id, response); - //console.log("sketch content:\n" + response.data.data); - if (loadFromSvg(response.data.data)) { - setSketchModified(false, true); - setCurrentSketchId(response.data.id); - } - } + if (curSketch<0) curSketch=0; + if (curSketch>sketches.length-1) curSketch=sketches.length-1; + + var id = sketches[curSketch]; + + console.log('sketch: loadSketch curSketch',curSketch,'id',id); + + $.get(wifiboxURL + "/sketch", {id:id}, function(response) { + if (response.status=='success') { + console.log('sketch: loaded',response); + var svgData = response.data.data; + loadFromSvg(svgData); + setSketchModified(false); + } else { + console.log('error loading sketch: ',response); + listSketches(); } - }).fail(function() { - console.log("loadSketch failed: ", response); - }); + + }) } function saveSketch() { - svg = saveToSvg(); - console.log("generated SVG [" + _points.length + " points, " + svg.length + " bytes]:\n" + svg); + console.log("sketch: saveSketch"); + var svgData = saveToSvg(); + + $.post(wifiboxURL + "/sketch", {data: svgData}, function(response) { + console.log("sketch: saveSketch: response",response); + listSketches(); + }) - $.ajax({ - url: wifiboxURL + "/sketch", - dataType: 'json', - type: 'POST', - data: { data: svg }, - //timeout: this.timeoutTime, - success: function(response) { - if (response.status == 'error' || response.status == 'fail') { - console.log("saveSketch fail/error: " + response.msg + " -- ", response); - } else { - console.log("saveSketch success: saved with id #" + response.data.id, response); - setSketchModified(false, true); - numSavedSketches = response.data.id; - setCurrentSketchId(response.data.id); - } - } - }).fail(function() { - console.log("saveSketch failed: ", response); - }); -} - -function prevDoodle(e) { - console.log("f:prevDoodle(): " + currentSketchId + " / " + numSavedSketches); - //alert('prev ' + numSavedSketches); - //return; - - //TODO: if (enabled) { - var sketchId = (currentSketchId > 0) ? currentSketchId : numSavedSketches; - if (sketchId > 1) sketchId--; - - - //alert(sketchId); - - loadSketch(sketchId); - //} -} - -function nextDoodle(e) { - console.log("f:nextDoodle()"); - //alert('next ' + numSavedSketches); - //return; - - //TODO: if (enabled) { - var sketchId = (currentSketchId > 0) ? currentSketchId : numSavedSketches; - if (sketchId < numSavedSketches) sketchId++; - loadSketch(sketchId); - //} } diff --git a/www/viewer/css/style.css b/www/filemanager/css/style.css similarity index 100% rename from www/viewer/css/style.css rename to www/filemanager/css/style.css diff --git a/www/viewer/index.html b/www/filemanager/index.html similarity index 71% rename from www/viewer/index.html rename to www/filemanager/index.html index edcc86b..e99cc96 100644 --- a/www/viewer/index.html +++ b/www/filemanager/index.html @@ -6,14 +6,14 @@ -
+
-
+
diff --git a/www/viewer/js/main.js b/www/filemanager/js/main.js similarity index 83% rename from www/viewer/js/main.js rename to www/filemanager/js/main.js index fe9c867..6d060f5 100644 --- a/www/viewer/js/main.js +++ b/www/filemanager/js/main.js @@ -1,31 +1,40 @@ -var api = 'http://10.0.0.40/d3dapi/sketch/'; +/* + * This file is part of the Doodle3D project (http://doodle3d.com). + * + * Copyright (c) 2014, Doodle3D + * This software is licensed under the terms of the GNU GPL v2 or later. + * See file LICENSE.txt or visit http://www.gnu.org/licenses/gpl.html for full license details. + */ + +// http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery +function getURLParameter(name) { + return decodeURI((new RegExp('[&?]'+name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]); +} + +var wifiboxURL = ""; + +if (getURLParameter("r") != "null") wifiboxURL = 'http://192.168.5.1'; +if (getURLParameter("wifiboxURL") != "null") wifiboxURL = getURLParameter("wifiboxURL"); + +var api = wifiboxURL+'/d3dapi/sketch/'; $("#btnDelete").click(deleteSelectedSketches); $("#btnSelectAll").click(selectAll); $("#btnDeselectAll").click(deselectAll); -// $("#btnUpload").click(upload); $("#uploads").change(upload); $("#btnDownload").click(download); -$("#btnUpload").click(function() { - console.log('trigger') +$("#btnUpload").click(function(e) { + e.preventDefault(); $("#uploads").trigger('click'); }); -// $("a").on("click", function () { -// var d = new Date().toISOString().slice(0, 19).replace(/-/g, ""); -// $(this).attr("href", "data:application/octet-stream;"+encodeURIComponent("test")).attr("download", "file-" + d + ".svg"); -// }); - - var isBusy = true; -// var statusMessage = ""; -// updateFreeSpace(); updateButtonStates(); $.get(api+'list', function(data) { //?id=00003 - + if (data.status=='success') { var list = data.data.list; // list.reverse(); @@ -38,7 +47,6 @@ $.get(api+'list', function(data) { //?id=00003 console.log('done'); isBusy = false; updateFreeSpace(); - //updateStatusMessage('loading '+list.length+' sketches...'); updateButtonStates(); }); @@ -46,6 +54,9 @@ $.get(api+'list', function(data) { //?id=00003 console.log('failure',data) } +}).fail(function(status) { + alert("Error ("+status.status+") connecting to "+api+'list'); + console.log(status); }); function loadSketch(list,cb) { @@ -77,7 +88,7 @@ function addItem(id,svgData,doPrepend) { else if (svgData.indexOf("CDATA")==-1) path = ""; else path = svgData.split('d="')[1].split('"')[0]; - var item = $('
'); + var item = $('
'); var svg = ''; item.click(function() { @@ -170,7 +181,6 @@ function uploadFile(files, index, next) { //process file var svg = convertSvg(evt.target.result); - // setTimeout(function() { $.post(api, {data:svg}, function(data) { if (data.status=='success') { var id = data.data.id; @@ -183,11 +193,8 @@ function uploadFile(files, index, next) { } else { next(); //no more files, call back } - } }); - // },500); - } @@ -237,7 +244,11 @@ function convertSvg(svg) { var re = /([a-zA-Z])\s?([0-9]{1,}) ([0-9]{1,})/g; svg = svg.replace(re,"$1$2,$3"); re = /<\/svg>/g; - return svg.replace(re,"\n"); + svg = svg.replace(re,"\n"); + + svg = svg.replace("M0,0 ",""); //RC: hack + + return svg; } function download() { diff --git a/www/settings.html b/www/settings.html index b3418bd..1131770 100644 --- a/www/settings.html +++ b/www/settings.html @@ -173,14 +173,20 @@ -
- Debug - +
+ Sketches + -
- -
+
+ +
+ Debug + +
+ +
Restore