]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1093924: Move replyToMarkdownComment() and replyToComment() out of templates
authorDavid Lawrence <dkl@mozilla.com>
Mon, 22 Dec 2014 19:18:01 +0000 (19:18 +0000)
committerDavid Lawrence <dkl@mozilla.com>
Mon, 22 Dec 2014 19:18:01 +0000 (19:18 +0000)
r=LpSolit,a=glob

js/comments.js
template/en/default/bug/comments.html.tmpl
template/en/default/bug/show-header.html.tmpl

index 43e6fe96ec7accc7ecaf79038f0f804a4f30b4ea..30baf53f4b13fcf2d707a7ab740d6047b5a306bc 100644 (file)
@@ -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) {
index 3895691d75d29be77d6d21a3771e1c3ecb458f24..0c7408a4874bc36f0bbe7b0248cfaa6d76512e83 100644 (file)
@@ -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" %]
                 [<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>]
index f41890a46fd5e02d9c98c11cad6c8913ef528905..4cd7aaa38b7ffb0db668434aadbe6c55ff501300 100644 (file)
@@ -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') %]