client-side draft using qwery, bean, bonzo and domReady
This commit is contained in:
parent
efa334de39
commit
9aeed1a47e
3134
isso/static/ender.js
Normal file
3134
isso/static/ender.js
Normal file
File diff suppressed because it is too large
Load Diff
165
isso/static/post.html
Normal file
165
isso/static/post.html
Normal file
@ -0,0 +1,165 @@
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
|
||||
<title>Hello World</title>
|
||||
<meta charset="utf-8" />
|
||||
<script type="text/javascript" src="/static/ender.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var initialize = function(thread) {
|
||||
|
||||
var comments = '<ul id="comments"></ul>';
|
||||
var form =
|
||||
'<div id="comment_form">' +
|
||||
'<div>' +
|
||||
' <input type="text" name="name" id="author" value="" placeholder="Name">' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
' <input type="email" name="email" id="email" value="" placeholder="Email">' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
'<input type="url" name="website" id="website" value="" placeholder="Website URL">' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
' <textarea rows="10" name="comment" id="comment" placeholder="Comment"></textarea>' +
|
||||
'</div>' +
|
||||
'<div>' +
|
||||
'<input type="submit" name="submit" value="Add Comment">' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
// load our css
|
||||
$('head').append('<link rel="stylesheet" href="/static/style.css" />');
|
||||
|
||||
// append our HTML
|
||||
thread.append(comments)
|
||||
thread.append(form);
|
||||
|
||||
// register events
|
||||
$('input[type="submit"]').on('click', function() {
|
||||
|
||||
var text = $('textarea[id="comment"]').val() || null;
|
||||
|
||||
if (text == null) {
|
||||
// alert("You must write a comment!");
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: '/comment/' + encodeURIComponent(window.location.pathname) + '/new',
|
||||
method: 'POST',
|
||||
type: 'json',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: JSON.stringify({
|
||||
text: text,
|
||||
author: $('input[id="author"]').val() || null,
|
||||
email: $('input[id="email"]').val() || null,
|
||||
website: $('input[id="website"]').val() || null
|
||||
}),
|
||||
error: function(resp) {
|
||||
alert("Mööp.");
|
||||
},
|
||||
success: function(rv) {
|
||||
//$('#isso_thread').html(resp.content);
|
||||
insert(thread, rv)
|
||||
},
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
var insert = function(thread, post) {
|
||||
|
||||
post['author'] = post['author'] || 'Anonymous';
|
||||
|
||||
$('ul', thread).append(
|
||||
'<article class="comment">' +
|
||||
' <header><em>' + post['author'] + '</em> schrieb am <em>1234567</em>' +
|
||||
' </header>' + post['text'] +
|
||||
'</article>');
|
||||
};
|
||||
|
||||
var fetch = function(thread) {
|
||||
var rv = $.ajax({
|
||||
url: '/comment/' + encodeURIComponent(window.location.pathname) + '/',
|
||||
method: 'GET',
|
||||
type: 'json',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
error: function(resp) {
|
||||
return;
|
||||
},
|
||||
success: function(resp) {
|
||||
console.log(resp);
|
||||
for (var item in resp) {
|
||||
insert(thread, resp[item]);
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.domReady(function() {
|
||||
|
||||
// initialize comment form and css
|
||||
initialize($('#isso_thread'));
|
||||
|
||||
// fetch comments for path
|
||||
fetch($('#isso_thread'));
|
||||
|
||||
// REMOVE ME
|
||||
$('input[id="author"]').val("Peter");
|
||||
$('textarea[id="comment"]').val("Lorem ipsum ...");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 0 auto;
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background-image: -moz-linear-gradient(left, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<article>
|
||||
|
||||
<header>
|
||||
<h1>Hello World. Finally!</h1>
|
||||
</header>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
||||
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
||||
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
|
||||
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
||||
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
||||
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
|
||||
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
||||
|
||||
<footer>
|
||||
<hr />
|
||||
<div id="isso_thread"></div>
|
||||
<noscript>
|
||||
<p>Please enable JavaScript to view the comments powered by Isso™.</a></p>
|
||||
</noscript>
|
||||
</footer>
|
||||
|
||||
</article>
|
||||
|
||||
</body>
|
48
isso/static/style.css
Normal file
48
isso/static/style.css
Normal file
@ -0,0 +1,48 @@
|
||||
#comment_form input, #comment_form textarea {
|
||||
border: 4px solid rgba(0,0,0,0.1);
|
||||
padding: 8px 10px;
|
||||
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
#comment_form textarea {
|
||||
width: 350px;
|
||||
}
|
||||
|
||||
#comment_form input[type="submit"] {
|
||||
cursor: pointer;
|
||||
background: -webkit-linear-gradient(top, #efefef, #ddd);
|
||||
background: -moz-linear-gradient(top, #efefef, #ddd);
|
||||
background: -ms-linear-gradient(top, #efefef, #ddd);
|
||||
background: -o-linear-gradient(top, #efefef, #ddd);
|
||||
background: linear-gradient(top, #efefef, #ddd);
|
||||
color: #333;
|
||||
text-shadow: 0px 1px 1px rgba(255,255,255,1);
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
#comment_form input[type="submit"]:hover {
|
||||
background: -webkit-linear-gradient(top, #eee, #ccc);
|
||||
background: -moz-linear-gradient(top, #eee, #ccc);
|
||||
background: -ms-linear-gradient(top, #eee, #ccc);
|
||||
background: -o-linear-gradient(top, #eee, #ccc);
|
||||
background: linear-gradient(top, #eee, #ccc);
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
|
||||
#comment_form input[type="submit"]:active {
|
||||
background: -webkit-linear-gradient(top, #ddd, #aaa);
|
||||
background: -moz-linear-gradient(top, #ddd, #aaa);
|
||||
background: -ms-linear-gradient(top, #ddd, #aaa);
|
||||
background: -o-linear-gradient(top, #ddd, #aaa);
|
||||
background: linear-gradient(top, #ddd, #aaa);
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
#comment_form div {
|
||||
margin-bottom: 8px;
|
||||
}
|
Loading…
Reference in New Issue
Block a user