comments: use server-side quote-stripping instead of reimplementing in js.
This commit is contained in:
@@ -18,22 +18,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Danbooru.Comment.quote_message = function(data) {
|
|
||||||
var blocks = data["body"].match(/\[\/?quote\]|.|\n|\r/gm);
|
|
||||||
var n = 0;
|
|
||||||
var stripped_body = "";
|
|
||||||
$.each(blocks, function(i, block) {
|
|
||||||
if (block === "[quote]") {
|
|
||||||
n += 1;
|
|
||||||
} else if (block == "[/quote]") {
|
|
||||||
n -= 1;
|
|
||||||
} else if (n === 0) {
|
|
||||||
stripped_body += block;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return "[quote]\n" + data["creator_name"] + " said:\n\n" + stripped_body + "\n[/quote]\n\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
Danbooru.Comment.quote = function(e) {
|
Danbooru.Comment.quote = function(e) {
|
||||||
$.get(
|
$.get(
|
||||||
"/comments/" + $(e.target).data('comment-id') + ".json",
|
"/comments/" + $(e.target).data('comment-id') + ".json",
|
||||||
@@ -41,7 +25,7 @@
|
|||||||
var $link = $(e.target);
|
var $link = $(e.target);
|
||||||
var $div = $link.closest("div.comments-for-post").find(".new-comment");
|
var $div = $link.closest("div.comments-for-post").find(".new-comment");
|
||||||
var $textarea = $div.find("textarea");
|
var $textarea = $div.find("textarea");
|
||||||
var msg = Danbooru.Comment.quote_message(data);
|
var msg = data["quoted_response"];
|
||||||
if ($textarea.val().length > 0) {
|
if ($textarea.val().length > 0) {
|
||||||
msg = $textarea.val() + "\n\n" + msg;
|
msg = $textarea.val() + "\n\n" + msg;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class CommentsController < ApplicationController
|
|||||||
|
|
||||||
def show
|
def show
|
||||||
@comment = Comment.find(params[:id])
|
@comment = Comment.find(params[:id])
|
||||||
respond_with(@comment)
|
respond_with(@comment, methods: [:quoted_response])
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ class DText
|
|||||||
CGI.escapeHTML(string)
|
CGI.escapeHTML(string)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.quote(message, creator_name)
|
||||||
|
stripped_body = DText.strip_blocks(message, "quote")
|
||||||
|
"[quote]\n#{creator_name} said:\n\n#{stripped_body}\n[/quote]\n\n"
|
||||||
|
end
|
||||||
|
|
||||||
def self.strip_blocks(string, tag)
|
def self.strip_blocks(string, tag)
|
||||||
n = 0
|
n = 0
|
||||||
stripped = ""
|
stripped = ""
|
||||||
|
|||||||
@@ -249,6 +249,10 @@ class Comment < ActiveRecord::Base
|
|||||||
def undelete!
|
def undelete!
|
||||||
update({ :is_deleted => false }, :as => CurrentUser.role)
|
update({ :is_deleted => false }, :as => CurrentUser.role)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def quoted_response
|
||||||
|
DText.quote(body, creator_name)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Comment.connection.extend(PostgresExtensions)
|
Comment.connection.extend(PostgresExtensions)
|
||||||
|
|||||||
@@ -234,8 +234,7 @@ class ForumPost < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def quoted_response
|
def quoted_response
|
||||||
stripped_body = DText.strip_blocks(body, "quote")
|
DText.quote(body, creator_name)
|
||||||
"[quote]\n#{creator_name} said:\n\n#{stripped_body}\n[/quote]\n\n"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def forum_topic_page
|
def forum_topic_page
|
||||||
|
|||||||
Reference in New Issue
Block a user