diff options
-rw-r--r-- | js/comments.js | 63 | ||||
-rw-r--r-- | template/en/default/bug/comments.html.tmpl | 81 | ||||
-rw-r--r-- | template/en/default/bug/show-header.html.tmpl | 2 |
3 files changed, 73 insertions, 73 deletions
diff --git a/js/comments.js b/js/comments.js index 43e6fe96e..30baf53f4 100644 --- a/js/comments.js +++ b/js/comments.js @@ -6,6 +6,69 @@ * defined by the Mozilla Public License, v. 2.0. */ +/* Adds the reply text to the 'comment' textarea */ +function replyToComment(id, real_id, replyto_header, text) { + var replytext = ""; + if (replyCommentConfig.quote_replies == 'quoted_reply') { + /* pre id="comment_name_N" */ + if (text == null) { + var text_elem = document.getElementById('comment_text_'+id); + text = getText(text_elem); + } + replytext = replyto_header + "\n" + wrapReplyText(text); + } else if (replyCommentConfig.quote_replies == 'simple_reply') { + replytext = replyto_header + "\n"; + } + + if (replyCommentConfig.is_insider) { + if (document.getElementById('isprivate_' + real_id).checked) { + document.getElementById('newcommentprivacy').checked = 'checked'; + updateCommentTagControl(document.getElementById('newcommentprivacy'), 'comment'); + } + } + + /* <textarea id="comment"> */ + var textarea = document.getElementById('comment'); + if (textarea.value != replytext) { + textarea.value += replytext; + } + + textarea.focus(); +} + +function replyToMarkdownComment(id, real_id, replyto_header) { + var textarea = document.getElementById('comment'); + var comment = textarea.value; + textarea.value += replyCommentConfig.markdown_fetching_comment; + YAHOO.util.Connect.setDefaultPostHeader('application/json', true); + YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi', + { + success: function(res) { + var data = YAHOO.lang.JSON.parse(res.responseText); + if (!data.error) { + textarea.value = comment; + var text = data.result.comments[real_id].text; + replyToComment(id, real_id, replyto_header, text); + } else { + replyToComment(id, real_id, replyto_header); + } + }, + failure: function(res) { + /* On failure, quote the comment as plain-text */ + replyToComment(id, real_id, replyto_header); + } + }, + YAHOO.lang.JSON.stringify({ + version: "1.1", + method: "Bug.comments", + params: { + Bugzilla_api_token: BUGZILLA.api_token, + comment_ids: [real_id], + } + }) + ); +} + function updateCommentPrivacy(checkbox, id) { var comment_elem = document.getElementById('comment_text_'+id).parentNode; if (checkbox.checked) { diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl index 3895691d7..0c7408a48 100644 --- a/template/en/default/bug/comments.html.tmpl +++ b/template/en/default/bug/comments.html.tmpl @@ -8,76 +8,12 @@ [% PROCESS bug/time.html.tmpl %] -<script src="[% 'js/comments.js' FILTER mtime %]" type="text/javascript"> -</script> - <script type="text/javascript"> -<!-- - /* Adds the reply text to the 'comment' textarea */ - function replyToComment(id, real_id, name, text) { - var prefix = "(In reply to " + name + " from comment #" + id + ")\n"; - var replytext = ""; - [% IF user.settings.quote_replies.value == 'quoted_reply' %] - /* pre id="comment_name_N" */ - - if (text == null) { - var text_elem = document.getElementById('comment_text_'+id); - text = getText(text_elem); - } - replytext = prefix + wrapReplyText(text); - [% ELSIF user.settings.quote_replies.value == 'simple_reply' %] - replytext = prefix; - [% END %] - - [% IF user.is_insider %] - if (document.getElementById('isprivate_' + real_id).checked) { - document.getElementById('newcommentprivacy').checked = 'checked'; - updateCommentTagControl(document.getElementById('newcommentprivacy'), 'comment'); - } - [% END %] - - /* <textarea id="comment"> */ - var textarea = document.getElementById('comment'); - if (textarea.value != replytext) { - textarea.value += replytext; - } - - textarea.focus(); - } - - function replyToMarkdownComment(id, real_id, name) { - var textarea = document.getElementById('comment'); - var comment = textarea.value; - textarea.value += "Fetching comment..."; - YAHOO.util.Connect.setDefaultPostHeader('application/json', true); - YAHOO.util.Connect.asyncRequest('POST', 'jsonrpc.cgi', - { - success: function(res) { - var data = YAHOO.lang.JSON.parse(res.responseText); - if (!data.error) { - textarea.value = comment; - var text = data.result.comments[real_id].text; - replyToComment(id, real_id, name, text); - } else { - replyToComment(id, real_id, name, null); - } - }, - failure: function(res) { - /* On failure, quote the comment as plain-text */ - replyToComment(id, real_id, name, null); - } - }, - YAHOO.lang.JSON.stringify({ - version: "1.1", - method: "Bug.comments", - params: { - Bugzilla_api_token: BUGZILLA.api_token, - comment_ids: [real_id], - } - }) - ); - } -//--> + var replyCommentConfig = { + quote_replies : "[% user.settings.quote_replies.value FILTER js %]", + is_insider : [% user.is_insider ? 1 : 0 %], + markdown_fetching_comment : "Fetching comment..." + }; </script> [% DEFAULT mode = "show" %] @@ -160,14 +96,15 @@ [<a href="#" onclick="YAHOO.bugzilla.commentTagging.toggle([% comment.id %], [% comment.count %]);return false">tag</a>] [% END %] + [% replyto_author = comment.author.name || comment.author.nick FILTER html %] + [% replyto_header = "(In reply to $replyto_author from comment #$comment.count)" %] [<a class="bz_reply_link" href="#add_comment" [% IF user.settings.quote_replies.value != 'off' %] onclick=" [% IF feature_enabled('jsonrpc') && comment.is_markdown %] - replyToMarkdownComment('[% comment.count %]', '[% comment.id %]', '[% comment.author.name || comment.author.nick FILTER html FILTER js %]'); return false;" + replyToMarkdownComment('[% comment.count %]', '[% comment.id %]', '[% replyto_header FILTER js %]'); return false;" [% ELSE %] - replyToComment('[% comment.count %]', '[% comment.id %]', '[% comment.author.name || comment.author.nick FILTER html FILTER js %]', null); return false;" - + replyToComment('[% comment.count %]', '[% comment.id %]', '[% replyto_header FILTER js %]', null); return false;" [% END %] [% END %] >reply</a>] diff --git a/template/en/default/bug/show-header.html.tmpl b/template/en/default/bug/show-header.html.tmpl index f41890a46..4cd7aaa38 100644 --- a/template/en/default/bug/show-header.html.tmpl +++ b/template/en/default/bug/show-header.html.tmpl @@ -25,7 +25,7 @@ [% title = title _ filtered_desc %] [% yui = ['autocomplete', 'calendar'] %] [% yui.push('container') IF user.can_tag_comments %] -[% javascript_urls = [ "js/util.js", "js/field.js" ] %] +[% javascript_urls = [ "js/util.js", "js/field.js", "js/comments.js" ] %] [% javascript_urls.push("js/bug.js") IF user.id %] [% javascript_urls.push('js/comment-tagging.js') IF user.id && Param('comment_taggers_group') %] |