HTML Builder
by alvaroveliz
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<div class="container-fluid">
<div class="row">
<div class="col-xs-6">
<div id="internal-iframe">
<div class="tpl-container">
<div class="tpl-element">
<div class="tpl-toolbar"><a class="tpl-toolbar-handle btn btn-link"><i class="fa fa-arrows"></i></a><a class="btn btn-link pull-right"><i class="fa fa-trash"></i></a><a class="btn btn-link pull-right"><i class="fa fa-clone"></i></a><a class="btn btn-link pull-right"><i class="fa fa-pencil"></i></a></div>
<div class="tpl-text">Edit this text....</div>
</div>
<div class="tpl-element">
<div class="tpl-toolbar"><a class="tpl-toolbar-handle btn btn-link"><i class="fa fa-arrows"></i></a><a class="btn btn-link pull-right"><i class="fa fa-trash"></i></a><a class="btn btn-link pull-right"><i class="fa fa-clone"></i></a><a class="btn btn-link pull-right"><i class="fa fa-pencil"></i></a></div>
<div class="tpl-text-box">Edit this text....</div>
</div>
<div class="tpl-element">
<div class="tpl-toolbar"><a class="tpl-toolbar-handle btn btn-link"><i class="fa fa-arrows"></i></a><a class="btn btn-link pull-right"><i class="fa fa-trash"></i></a><a class="btn btn-link pull-right"><i class="fa fa-clone"></i></a><a class="btn btn-link pull-right"><i class="fa fa-pencil"></i></a></div>
<div class="tpl-image"><img src="http://placehold.it/200x100?text=upload+or+drop">
...
SCSS
#internal-iframe {
background: #F9F9F9;
margin: 2px;
height: 100vh;
padding: 20px;
.tpl-container {
height: 100vh;
&.over {
border: 2px solid #66B3F6;
}
}
.tpl-new-block {
background: #66B3F6;
color: #FFF;
font-weight: bold;
padding: 20px;
text-align: center;
}
}
.tool-block {
border: 1px solid #EEE;
height: 120px;
padding: 10px;
margin: 10px;
position: relative;
background: #FEFEFE;
box-shadow: 0 1px 1px #DDD;
&:hover {
box-shadow: 0 1px 4px #CCC;
}
.tool-block-title {
position: absolute;
bottom: 0;
text-align: center;
display: block;
width: 80%;
padding: 10px;
font-size: 10px;
font-weight: bold;
}
}
.tpl-title {
color: #DDD;
}
.tpl-text {
padding: 10px;
}
.tpl-text-box {
background: #DDD;
color: #000;
padding: 10px;
text-align:center;
}
.tpl-divider {
hr {
border: 1px solid #CCC;
}
}
.tpl-image {
padding: 10px;
text-align: center;
}
.tpl-image-group {
overflow:hidden;
.tpl-image-group-2 {
width: 50%;
float: left;
text-align:center;
padding: 10px;
}
}
.tpl-image-caption {
text-align:center;
padding: 10px;
.tpl-caption {
background: #444;
text-align: center;
color: #FFF;
padding: 10px;
}
}
.tpl-share {
text-align: center;
a {
color: #444;
.fa {
color: #444;
padding: 10px;
}
}
}
.tpl-button {
padding: 10px;
text-align: center;
}
.tpl-footer {
padding: 10px;
color: #999;
font-size: 12px;
}
.tpl-video {
text-align:center;
padding: 10px;
.tpl-caption {
background: #444;
text-align: center;
color: #FFF;
padding: 10px;
}
}
.tpl-element {
position: relative;
.tpl-toolbar {
display: none;
}
&:hover {
border: 2px solid #444;
.tpl-toolbar {
display: inherit;
background: rgba(0, 0, 0, 0.5);
height: 35px;
position: absolute;
width: 100%;
.btn {
color: #FFF;
...
JavaScript
$('#blocks').find('.tool-block').draggable({
helper: 'clone'
})
$('#internal-iframe').droppable({
accept: '.tool-block',
over: function(event, ui) {
$('.tpl-container').addClass('over');
$('.tpl-container').append('<div class="tpl-new-block">Drop block here</div>');
},
drop: function(event, ui) {
$('.tpl-container').removeClass('over');
$('.tpl-new-block').remove();
$element = '<div class="tpl-element"><div class="tpl-toolbar"><a class="tpl-toolbar-handle btn btn-link"><i class="fa fa-arrows"></i></a><a class="btn btn-link pull-right"><i class="fa fa-trash"></i></a><a class="btn btn-link pull-right"><i class="fa fa-clone"></i></a><a class="btn btn-link pull-right"><i class="fa fa-pencil"></i></a></div>'+$(ui.draggable).data('template')+'</div>';
$('.tpl-container').append($element);
}
});
$('#internal-iframe').sortable({
handle: '.tpl-toolbar-handle'
});