commento.js: don't recursively delete comments
This commit is contained in:
parent
3ef4a79547
commit
ee7875cc1e
@ -16,4 +16,5 @@ type comment struct {
|
||||
State string `json:"state,omitempty"`
|
||||
CreationDate time.Time `json:"creationDate"`
|
||||
Direction int `json:"direction"`
|
||||
Deleted bool `json:"deleted"`
|
||||
}
|
||||
|
@ -10,8 +10,9 @@ func commentDelete(commentHex string) error {
|
||||
}
|
||||
|
||||
statement := `
|
||||
DELETE FROM comments
|
||||
WHERE commentHex=$1;
|
||||
UPDATE comments
|
||||
SET deleted = true, markdown = '[deleted]', html = '[deleted]', commenterHex = 'anonymous'
|
||||
WHERE commentHex = $1;
|
||||
`
|
||||
_, err := db.Exec(statement, commentHex)
|
||||
|
||||
|
@ -16,6 +16,7 @@ func commentGetByCommentHex(commentHex string) (comment, error) {
|
||||
parentHex,
|
||||
score,
|
||||
state,
|
||||
deleted,
|
||||
creationDate
|
||||
FROM comments
|
||||
WHERE comments.commentHex = $1;
|
||||
@ -31,6 +32,7 @@ func commentGetByCommentHex(commentHex string) (comment, error) {
|
||||
&c.ParentHex,
|
||||
&c.Score,
|
||||
&c.State,
|
||||
&c.Deleted,
|
||||
&c.CreationDate); err != nil {
|
||||
// TODO: is this the only error?
|
||||
return c, errorNoSuchComment
|
||||
|
@ -20,6 +20,7 @@ func commentList(commenterHex string, domain string, path string, includeUnappro
|
||||
parentHex,
|
||||
score,
|
||||
state,
|
||||
deleted,
|
||||
creationDate
|
||||
FROM comments
|
||||
WHERE
|
||||
@ -66,6 +67,7 @@ func commentList(commenterHex string, domain string, path string, includeUnappro
|
||||
&c.ParentHex,
|
||||
&c.Score,
|
||||
&c.State,
|
||||
&c.Deleted,
|
||||
&c.CreationDate); err != nil {
|
||||
return nil, nil, errorInternal
|
||||
}
|
||||
|
6
db/20190913175445-delete-comments.sql
Normal file
6
db/20190913175445-delete-comments.sql
Normal file
@ -0,0 +1,6 @@
|
||||
DROP TRIGGER IF EXISTS commentsDeleteTrigger ON comments;
|
||||
|
||||
DROP FUNCTION IF EXISTS commentsDeleteTriggerFunction;
|
||||
|
||||
ALTER TABLE comments
|
||||
ADD deleted BOOLEAN NOT NULL DEFAULT false;
|
@ -764,9 +764,9 @@
|
||||
}
|
||||
|
||||
cur.sort(function(a, b) {
|
||||
if (a.commentHex === stickyCommentHex) {
|
||||
if (!a.deleted && a.commentHex === stickyCommentHex) {
|
||||
return -Infinity;
|
||||
} else if (b.commentHex === stickyCommentHex) {
|
||||
} else if (!b.deleted && b.commentHex === stickyCommentHex) {
|
||||
return Infinity;
|
||||
}
|
||||
|
||||
@ -852,7 +852,11 @@
|
||||
timeago.title = comment.creationDate.toString();
|
||||
|
||||
card.style["borderLeft"] = "2px solid " + color;
|
||||
name.innerText = commenter.name;
|
||||
if (comment.deleted) {
|
||||
name.innerText = "[deleted]";
|
||||
} else {
|
||||
name.innerText = commenter.name;
|
||||
}
|
||||
text.innerHTML = comment.html;
|
||||
timeago.innerHTML = timeDifference(curTime, comment.creationDate);
|
||||
score.innerText = scorify(comment.score);
|
||||
@ -947,20 +951,22 @@
|
||||
|
||||
append(options, collapse);
|
||||
|
||||
append(options, downvote);
|
||||
append(options, upvote);
|
||||
if (!comment.deleted) {
|
||||
append(options, downvote);
|
||||
append(options, upvote);
|
||||
}
|
||||
|
||||
if (comment.commenterHex === selfHex) {
|
||||
append(options, edit);
|
||||
} else {
|
||||
} else if (!comment.deleted) {
|
||||
append(options, reply);
|
||||
}
|
||||
|
||||
if (isModerator && parentHex === "root") {
|
||||
if (!comment.deleted && (isModerator && parentHex === "root")) {
|
||||
append(options, sticky);
|
||||
}
|
||||
|
||||
if (isModerator || comment.commenterHex === selfHex) {
|
||||
if (!comment.deleted && (isModerator || comment.commenterHex === selfHex)) {
|
||||
append(options, remove);
|
||||
}
|
||||
|
||||
@ -968,7 +974,7 @@
|
||||
append(options, approve);
|
||||
}
|
||||
|
||||
if (!isModerator && stickyCommentHex === comment.commentHex) {
|
||||
if (!comment.deleted && (!isModerator && stickyCommentHex === comment.commentHex)) {
|
||||
append(options, sticky);
|
||||
}
|
||||
|
||||
@ -1048,8 +1054,8 @@
|
||||
errorHide();
|
||||
}
|
||||
|
||||
var card = $(ID_CARD + commentHex);
|
||||
remove(card);
|
||||
var text = $(ID_TEXT + commentHex);
|
||||
text.innerText = "[deleted]";
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user