Dynamic blocks
This commit is contained in:
parent
39457fd4e8
commit
af9a0f4bfa
4
client/src/blocks/index.js
Normal file
4
client/src/blocks/index.js
Normal file
@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
input: require("./input.js"),
|
||||
output: require("./output.js")
|
||||
}
|
13
client/src/blocks/input.js
Normal file
13
client/src/blocks/input.js
Normal file
@ -0,0 +1,13 @@
|
||||
module.exports = {
|
||||
name: "Input",
|
||||
inputs: {
|
||||
},
|
||||
output: true,
|
||||
execute: function({}, block){
|
||||
block.find("input[name='input']").val();
|
||||
},
|
||||
pageBlock: {
|
||||
html: "<input type='text' name='input'></input>",
|
||||
js: function(){}
|
||||
}
|
||||
}
|
14
client/src/blocks/output.js
Normal file
14
client/src/blocks/output.js
Normal file
@ -0,0 +1,14 @@
|
||||
module.exports = {
|
||||
name: "Output",
|
||||
inputs: {
|
||||
input: "Input"
|
||||
},
|
||||
output: false,
|
||||
execute: function({input}, block){
|
||||
$(elem).find("div.output").html(input1);
|
||||
},
|
||||
pageBlock: {
|
||||
html: "<span class='output'></span>",
|
||||
js: function(){}
|
||||
}
|
||||
}
|
15
client/src/blocks/template.js
Normal file
15
client/src/blocks/template.js
Normal file
@ -0,0 +1,15 @@
|
||||
module.exports = {
|
||||
name: "Example Block",
|
||||
inputs: {
|
||||
input1: "Input 1"
|
||||
},
|
||||
output: true,
|
||||
execute: function({input1}, elem){
|
||||
$(elem).find("div.input1").html(input1);
|
||||
return (output = parseInt(input1) + 1).toString();
|
||||
},
|
||||
pageBlock: {
|
||||
html: "<div class='input1'></div>",
|
||||
js: function(){}
|
||||
}
|
||||
}
|
1
client/src/document.js
Normal file
1
client/src/document.js
Normal file
@ -0,0 +1 @@
|
||||
module.exports = {};
|
@ -7,38 +7,8 @@
|
||||
Header will go here
|
||||
</div>
|
||||
<div id="blocks">
|
||||
<div class="block">
|
||||
<div class="inputs">
|
||||
<div id="input1">Input 1</div>
|
||||
<div id="input2">Input 2</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div>
|
||||
<div class="title">Test Block</div>
|
||||
<div class="content">Custom code will go here</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="output">
|
||||
Output
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="workspace">
|
||||
<div class="block">
|
||||
<div class="inputs">
|
||||
<div id="input1">Input 1</div>
|
||||
<div id="input2">Input 2</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div>
|
||||
<div class="title">Test Block</div>
|
||||
<div class="content">Custom code will go here</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="output">
|
||||
Output
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1 +1,2 @@
|
||||
require("./styles.scss");
|
||||
require("./pageInteraction");
|
||||
|
18
client/src/pageInteraction/block.hbs
Normal file
18
client/src/pageInteraction/block.hbs
Normal file
@ -0,0 +1,18 @@
|
||||
<div class="block">
|
||||
<div class="inputs">
|
||||
{{#each inputs as |desc name|}}
|
||||
<div id="{{name}}">{{desc}}</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="main">
|
||||
<div>
|
||||
<div class="title">{{name}}</div>
|
||||
{{{pageBlock.html}}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if output}}
|
||||
<div class="output">
|
||||
Output
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
0
client/src/pageInteraction/dragDrop.js
Normal file
0
client/src/pageInteraction/dragDrop.js
Normal file
1
client/src/pageInteraction/index.js
Normal file
1
client/src/pageInteraction/index.js
Normal file
@ -0,0 +1 @@
|
||||
require("./setupBlocks.js");
|
5
client/src/pageInteraction/setupBlocks.js
Normal file
5
client/src/pageInteraction/setupBlocks.js
Normal file
@ -0,0 +1,5 @@
|
||||
var $ = require("jquery");
|
||||
var blocks = require("../blocks");
|
||||
for(var block of Object.keys(blocks)){
|
||||
$("#blocks").append(require("./block.hbs")(blocks[block]));
|
||||
}
|
@ -9,6 +9,14 @@ body{
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#blocks{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
.block{
|
||||
margin: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.block{
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
@ -19,6 +27,7 @@ body{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
>div{
|
||||
font-weight: bold;
|
||||
border: 1px solid black;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
@ -37,6 +46,7 @@ body{
|
||||
}
|
||||
}
|
||||
>.output{
|
||||
font-weight: bold;
|
||||
border: 1px solid black;
|
||||
text-align: center;
|
||||
padding-top: 5px;
|
||||
@ -48,7 +58,5 @@ body{
|
||||
position: relative;
|
||||
.block{
|
||||
position: absolute;
|
||||
top: 40px;
|
||||
left: 40px;
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,14 @@ module.exports = {
|
||||
}, {
|
||||
loader: "sass-loader"
|
||||
}]
|
||||
},
|
||||
{
|
||||
test: /\.hbs$/,
|
||||
use: [
|
||||
{
|
||||
loader: "handlebars-loader"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -19,7 +19,10 @@
|
||||
"homepage": "https://github.com/TimStallard/CryptoAssist#readme",
|
||||
"devDependencies": {
|
||||
"css-loader": "^0.26.1",
|
||||
"handlebars": "^4.0.6",
|
||||
"handlebars-loader": "^1.4.0",
|
||||
"html-webpack-plugin": "^2.28.0",
|
||||
"jquery": "^3.1.1",
|
||||
"node-sass": "^4.5.0",
|
||||
"sass-loader": "^6.0.1",
|
||||
"style-loader": "^0.13.1",
|
||||
|
Loading…
x
Reference in New Issue
Block a user