-
Notifications
You must be signed in to change notification settings - Fork 1
/
inline_comment.js
66 lines (58 loc) · 2.33 KB
/
inline_comment.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
postile.ajax([ 'inline_comment', 'new' ],
{ post_id: this.postData.post.id, content: content, },
function(data) {
// do nothing here, handled in fayeHandler
}.bind(this));
postile.ajax(
[ 'inline_comment', 'like' ], // or unlike here
{ comment_id: commentData.inline_comment.id },
function(data) {
if (action == 'like') { // like
this.elements.likeCount_el.innerHTML =
(++commentData.likes.length);
this.elements.likeButton_el.innerHTML = 'Unlike';
} else {
this.elements.likeCount_el.innerHTML =
(--commentData.likes.length);
this.elements.likeButton_el.innerHTML = 'Like';
}
}.bind(this));
postile.ajax(
[ 'inline_comment', 'delete' ],
{ comment_id: commentData.inline_comment.id },
function(data) {
// handled by faye
});
postile.view.post_board.PostBoard.prototype.fayeHandler = function(status, data) {
switch (status) {
case postile.view.post_board.faye_status.DELETE:
var currPost = this.currentPosts[data.post.id];
if (data.post.id in this.currentPosts) {
if (!currPost.isSelfPost()) {
this.removePost(data.post.id);
}
}
break;
case postile.view.post_board.faye_status.INLINE_COMMENT:
if (data.inline_comment.post_id in this.currentPosts) {
var currPost = this.currentPosts[data.inline_comment.post_id];
currPost.postData.inline_comments.push(data);
currPost.appendInlineComment(data);
if (data.inline_comment.creator_id == localStorage.postile_user_id) { // my own comment
currPost.commentModeElements.commentList_el.scrollTop =
currPost.commentModeElements.commentList_el.scrollHeight;
}
currPost.hideNoCommentEl();
// note that this line should be put after appendInlineComment to
// get the correct count
currPost.resetCommentPreview(data);
}
break;
case postile.view.post_board.faye_status.DELETE_COMMENT:
if (data.inline_comment.post_id in this.currentPosts) {
var currPost = this.currentPosts[data.inline_comment.post_id];
currPost.removeInlineComment(data.inline_comment);
}
break;
}
}