| Index: experimental/webtry/res/js/webtry.js
|
| diff --git a/experimental/webtry/res/js/webtry.js b/experimental/webtry/res/js/webtry.js
|
| index 18190e92cb59e6de8bfeabb95b08c0cc0856b25b..022cb32ed80add1077a8fde1e02cf14eb7bf64ef 100644
|
| --- a/experimental/webtry/res/js/webtry.js
|
| +++ b/experimental/webtry/res/js/webtry.js
|
| @@ -26,7 +26,12 @@
|
| var output = document.getElementById('output');
|
| var outputWrapper = document.getElementById('output-wrapper');
|
| var gpu = document.getElementById('use-gpu');
|
| - var img = document.getElementById('img');
|
| + var raster = document.getElementById('use-raster');
|
| + var pdf = document.getElementById('use-pdf');
|
| + var rasterOutput = document.getElementById('raster-output');
|
| + var rasterImg = document.getElementById('raster-img');
|
| + var gpuOutput = document.getElementById('gpu-output');
|
| + var gpuImg = document.getElementById('gpu-img');
|
| var imageWidth = document.getElementById('image-width');
|
| var imageHeight = document.getElementById('image-height');
|
| var tryHistory = document.getElementById('tryHistory');
|
| @@ -148,6 +153,20 @@
|
| enableSource.addEventListener('click', sourceClick, true);
|
| selectedSource.addEventListener('click', sourceClick, true);
|
|
|
| + function configChange(e) {
|
| + if (!(gpu.checked || raster.checked || pdf.checked)) {
|
| + run.disabled = true;
|
| + run.innerHTML = "Choose a configuration"
|
| + } else {
|
| + run.disabled = false;
|
| + run.innerHTML = "Run"
|
| + }
|
| + }
|
| +
|
| + gpu.addEventListener('change', configChange);
|
| + raster.addEventListener('change', configChange);
|
| + pdf.addEventListener('change', configChange);
|
| +
|
|
|
| var editor = CodeMirror.fromTextArea(code, {
|
| theme: "default",
|
| @@ -217,7 +236,8 @@
|
| body = JSON.parse(e.target.response);
|
| code.value = body.code;
|
| editor.setValue(body.code);
|
| - img.src = '/i/'+body.hash+'.png';
|
| + rasterImg.src = '/i/'+body.hash+'_raster.png';
|
| + gpuImg.src = '/i/'+body.hash+'_gpu.png';
|
| imageWidth.value = body.width;
|
| imageHeight.value = body.height;
|
| gpu.checked = body.gpu;
|
| @@ -304,14 +324,23 @@
|
| outputWrapper.style.display = 'block';
|
| }
|
| }
|
| - if (body.hasOwnProperty('img')) {
|
| - img.src = 'data:image/png;base64,' + body.img;
|
| + if (body.hasOwnProperty('rasterImg') && body.rasterImg != "") {
|
| + rasterImg.src = 'data:image/png;base64,' + body.rasterImg;
|
| + rasterOutput.style.display = "inline-block";
|
| + } else {
|
| + rasterOutput.style.display = "none";
|
| + rasterImg.src = '';
|
| + }
|
| + if (body.hasOwnProperty('gpuImg') && body.gpuImg != "") {
|
| + gpuImg.src = 'data:image/png;base64,' + body.gpuImg;
|
| + gpuOutput.style.display = "inline-block";
|
| } else {
|
| - img.src = '';
|
| + gpuImg.src = '';
|
| + gpuOutput.style.display = "none";
|
| }
|
| // Add the image to the history if we are on a workspace page.
|
| if (tryHistory) {
|
| - addToHistory(body.hash, 'data:image/png;base64,' + body.img);
|
| + addToHistory(body.hash, 'data:image/png;base64,' + body.rasterImg);
|
| } else {
|
| window.history.pushState(null, null, '/c/' + body.hash);
|
| }
|
| @@ -327,7 +356,6 @@
|
| }
|
| }
|
|
|
| -
|
| function onSubmitCode() {
|
| beginWait();
|
| clearOutput();
|
| @@ -343,7 +371,9 @@
|
| 'height': parseInt(imageHeight.value),
|
| 'name': workspaceName,
|
| 'source': sourceId,
|
| - 'gpu': gpu.checked
|
| + 'gpu': gpu.checked,
|
| + 'raster': raster.checked,
|
| + 'pdf': pdf.checked
|
| }));
|
| }
|
| run.addEventListener('click', onSubmitCode);
|
| @@ -375,3 +405,26 @@
|
| }
|
|
|
| })();
|
| +
|
| +// TODO (humper) -- move the following functions out of the global
|
| +// namespace as part of a web-components based fiddle frontend rewrite.
|
| +
|
| +function collectionHas(a, b) { //helper function (see below)
|
| + for(var i = 0, len = a.length; i < len; i ++) {
|
| + if(a[i] == b) return true;
|
| + }
|
| + return false;
|
| +}
|
| +function findParentBySelector(elm, selector) {
|
| + var all = document.querySelectorAll(selector);
|
| + var cur = elm.parentNode;
|
| + while(cur && !collectionHas(all, cur)) { //keep going up until you find a match
|
| + cur = cur.parentNode; //go up
|
| + }
|
| + return cur; //will return null if not found
|
| +}
|
| +
|
| +function onLoadImage(img) {
|
| + var wrapper = findParentBySelector(img, ".image-wrapper");
|
| + wrapper.style.display = "inline-block";
|
| +}
|
|
|