blob: dde06a5d585660c0dd173216c454c57e79f6f95d [file] [log] [blame]
<html>
<head>
<title>comments-sk demo</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="/res/common/js/common.js"></script>
<script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<script type="text/javascript" charset="utf-8">
// Comments to display.
var comments = [
{
id: 0,
user: "user@google.com",
time: 15000000,
message: "Hi! Check this out: http://www.google.com skia:4253",
extraBool: true,
extraText: "extra",
},
{
id: 1,
user: "me@google.com",
time: 140000,
message: "Helloworld",
extraBool: true,
extraText: "extra",
},
{
id: 2,
user: "user@google.com",
time: 1500002330,
message: "asdfkl",
extraBool: false,
extraText: "extra",
},
{
id: 3,
user: "user@google.com",
time: 15000000,
message: "Hdsfai!",
extraBool: true,
extraText: "extra",
},
{
id: 4,
user: "user@google.com",
time: 15000000,
message: "Hi42!",
extraBool: false,
extraText: "extra",
},
{
id: 5,
user: "user@google.com",
time: 15000000,
message: "Hiasdkfj24390r8934!",
extraBool: true,
extraText: "extra",
},
{
id: 6,
user: "user@google.com",
time: 15000000,
message: "H42094532985439849!",
extraBool: true,
extraText: "extra",
}
];
function updateDemos() {
comments = comments.slice();
var commentBoxes = $$("comments-sk");
for (var i = 0; i < commentBoxes.length; i++) {
commentBoxes[i].comments = comments;
}
}
function deleteComment(id) {
for (var i = 0; i < comments.length; i++) {
if (comments[i].id == id) {
comments.splice(i, 1);
updateDemos();
return true;
}
}
return false;
}
function addComment(comment) {
var maxId = 0;
for (var i = 0; i < comments.length; i++) {
if (comments[i].id > maxId) {
maxId = comments[i].id;
}
}
comment.id = maxId + 1,
comment.user = "YOU@google.com",
comment.time = 15000000,
comment.message = comment.comment,
comments.push(comment);
updateDemos();
}
// Mock out sk.get() to return the login info.
sk.get = function(url) {
return new Promise(function (resolve, reject) {
resolve('{"Email":"user@google.com","LoginURL":"https://accounts.google.com/"}');
});
};
// Mock out sk.post() and sk.delete() to pretend to support adding and
// deleting comments.
sk.post = function(url, body) {
return new Promise(function (resolve, reject) {
addComment(JSON.parse(body));
resolve("Added the comment.");
});
}
sk.delete = function(url) {
return new Promise(function (resolve, reject) {
var split = url.split("/");
var id = split[split.length - 1];
if (deleteComment(id)) {
resolve("");
} else {
reject("Failed to delete the comment.");
}
});
};
</script>
<link rel="import" href="comments-sk.html">
<link rel="import" href="error-toast-sk.html">
<link rel="import" href="login.html">
<style>
div.demo {
background-color: #EEEEEE;
padding: 10px;
margin: 10px;
}
comments-sk {
width: 100%;
}
</style>
</head>
<body>
<h1>comments-sk demo</h1>
<login-sk style="display:none;"></login-sk>
<hr/>
<h2>Simple</h2>
<comments-sk></comments-sk>
<hr/>
<h2>Allow Add Comments</h2>
<comments-sk allow_add_comment></comments-sk>
<hr/>
<h2>Allow Delete Comments</h2>
<comments-sk allow_delete_comment></comments-sk>
<hr/>
<h2>Allow Add and Delete</h2>
<comments-sk allow_add_comment allow_delete_comment></comments-sk>
<hr/>
<h2>Collapsible</h2>
<comments-sk collapsible></comments-sk>
<hr/>
<h2>Extra Fields</h2>
<comments-sk allow_add_comment extra_fields='[{"name":"extraText","label":"Extra Text","type":"text"},{"name":"extraBool","label":"Extra Bool","type":"bool"}]'></comments-sk>
<error-toast-sk></error-toast-sk>
<script type="text/javascript" charset="utf-8">
updateDemos();
</script>
</body>
</html>