diff --git a/src/blocks/caesar.js b/src/blocks/caesar.js index 4dfec60..0ccecbb 100644 --- a/src/blocks/caesar.js +++ b/src/blocks/caesar.js @@ -11,7 +11,8 @@ module.exports = { name: "Shift", type: "number", required: true, - inline: true + inline: true, + default: "0" } }, output: true, diff --git a/src/blocks/hexToAscii.js b/src/blocks/hexToAscii.js index 21bea8b..66dc26e 100644 --- a/src/blocks/hexToAscii.js +++ b/src/blocks/hexToAscii.js @@ -25,7 +25,7 @@ module.exports = { .filter((pair)=>(pair.length == 2)) .map((pair)=>(parseInt(pair, 16))) .map((int)=>(String.fromCharCode(int))) - .join("") + .join(""); }, pageBlock: { html: "", diff --git a/src/blocks/lettersToNums.js b/src/blocks/lettersToNums.js index b0bc52b..4d9fb1b 100644 --- a/src/blocks/lettersToNums.js +++ b/src/blocks/lettersToNums.js @@ -10,19 +10,13 @@ module.exports = { offset: { name: "Offset", type: "text", - required: true, - inline: false + required: false, + inline: false, + default: "0" } }, output: true, execute: function({letters, offset}, elem){ - if(!offset){ - offset = 0; - } - else{ - offset = parseInt(offset); - } - return letters .split("") .map((char)=>(char.charCodeAt(0))) @@ -35,7 +29,7 @@ module.exports = { return asciiVal - 97; } }) - .map((num)=>(num + offset)) + .map((num)=>(num + parseInt(offset))) .map((num)=>(((num%26)+26)%26)) .join(","); }, diff --git a/src/blocks/numsToLetters.js b/src/blocks/numsToLetters.js index 0677018..6e41319 100644 --- a/src/blocks/numsToLetters.js +++ b/src/blocks/numsToLetters.js @@ -10,34 +10,20 @@ module.exports = { offset: { name: "Offset", type: "text", - required: true, - inline: false + required: false, + inline: false, + default: "0" } }, output: true, execute: function({nums, offset}, elem){ - if(!offset){ - offset = 0; - } - else{ - offset = parseInt(offset); - } - return nums .split(",") .filter((num)=>(num)) .map((num)=>(parseInt(num))) .filter((num)=>(!isNaN(num))) - .map((num)=>(num - offset)) - .map((num)=>(num%52)) - .map((num)=>{ - if(num < 0){ - return 52 + num; - } - else{ - return num; - } - }) + .map((num)=>(num - parseInt(offset))) + .map((num)=>((num%52)+52)%52) .map((num)=>{ if(num < 26){ asciiOffset = 97; diff --git a/src/outputCalculation.js b/src/outputCalculation.js index 9fc1976..ab0f76a 100644 --- a/src/outputCalculation.js +++ b/src/outputCalculation.js @@ -5,7 +5,7 @@ var blocks = require("./blocks"); function resolveOutput(block, cache){ try{ var inputValues = {}; - var error = ""; + $(block.elem).find(".error").html(""); for(var input in block.inputs){ if(block.inputs[input].joined){ //if it's joined to something else if(block.inputs[input].joined in cache){ //if output of other block is already in cache @@ -19,8 +19,13 @@ function resolveOutput(block, cache){ else if(block.inputs[input].value){ //if value is already set, just save that inputValues[input] = block.inputs[input].value; } - if(blocks[block.type].inputs[input].required && !(inputValues[input])){ //if input is required and is missing - throw "A required input is missing"; + if(!inputValues[input]){ //if currently missing/blank + if(blocks[block.type].inputs[input].default){ //if a default is present, use that + inputValues[input] = blocks[block.type].inputs[input].default; + } + else if(blocks[block.type].inputs[input].required){ //otherwise, throw an error + throw "A required input is missing"; + } } } @@ -28,8 +33,8 @@ function resolveOutput(block, cache){ cache[block.id] = output; return output; } - catch(err){ - console.log("ERROR", err); + catch(err){ //if there is an error, display it + $(block.elem).find(".error").html(err); return ""; } } diff --git a/src/pageInteraction/block.hbs b/src/pageInteraction/block.hbs index 5b20b82..12ffbe2 100644 --- a/src/pageInteraction/block.hbs +++ b/src/pageInteraction/block.hbs @@ -12,6 +12,7 @@
{{block.name}}
+
{{{block.pageBlock.html}}}
diff --git a/src/styles.scss b/src/styles.scss index 4616eaa..ef228b2 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -61,6 +61,10 @@ body{ >.title{ text-align: center; } + >.error{ + color: red; + text-align: center; + } } } >.output{