summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2014-12-22 20:18:01 +0100
committerDavid Lawrence <dkl@mozilla.com>2014-12-22 20:18:01 +0100
commitbe26c119991e5e4e6ec28a881bc0860a4cd9aefc (patch)
tree419eb01f943babf2b6b86f1daa8ef5bce0bfb1bd
parent0bc389f1ea11fac82b3c783e03408900eddf269d (diff)
downloadbugzilla-be26c119991e5e4e6ec28a881bc0860a4cd9aefc.tar.gz
bugzilla-be26c119991e5e4e6ec28a881bc0860a4cd9aefc.tar.xz
Bug 1093924: Move replyToMarkdownComment() and replyToComment() out of templates
r=LpSolit,a=glob
-rw-r--r--js/comments.js63
-rw-r--r--template/en/default/bug/comments.html.tmpl81
-rw-r--r--template/en/default/bug/show-header.html.tmpl2
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') %]