aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/comments.js88
-rw-r--r--template/en/default/bug/comments.html.tmpl76
2 files changed, 92 insertions, 72 deletions
diff --git a/js/comments.js b/js/comments.js
new file mode 100644
index 000000000..79bdae855
--- /dev/null
+++ b/js/comments.js
@@ -0,0 +1,88 @@
+/* The contents of this file are subject to the Mozilla Public
+ * License Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * The Original Code is the Bugzilla Bug Tracking System.
+ *
+ * The Initial Developer of the Original Code is Netscape Communications
+ * Corporation. Portions created by Netscape are
+ * Copyright (C) 1998 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+ * Max Kanat-Alexander <mkanat@bugzilla.org>
+ * Edmund Wong <ewong@pw-wspx.org>
+ */
+
+function updateCommentPrivacy(checkbox, id) {
+ var comment_elem = document.getElementById('comment_text_'+id).parentNode;
+ if (checkbox.checked) {
+ if (!comment_elem.className.match('bz_private')) {
+ comment_elem.className = comment_elem.className.concat(' bz_private');
+ }
+ }
+ else {
+ comment_elem.className =
+ comment_elem.className.replace(/(\s*|^)bz_private(\s*|$)/, '$2');
+ }
+}
+
+/* The functions below expand and collapse comments */
+
+function toggle_comment_display(link, comment_id) {
+ var comment = document.getElementById('comment_text_' + comment_id);
+ var re = new RegExp(/\bcollapsed\b/);
+ if (comment.className.match(re))
+ expand_comment(link, comment);
+ else
+ collapse_comment(link, comment);
+}
+
+function toggle_all_comments(action, comments_size) {
+ var num_comments = comments_size;
+
+ // If for some given ID the comment doesn't exist, this doesn't mean
+ // there are no more comments, but that the comment is private and
+ // the user is not allowed to view it.
+
+ for (var id = 0; id < num_comments; id++) {
+ var comment = document.getElementById('comment_text_' + id);
+ if (!comment)
+ continue;
+
+ var link = document.getElementById('comment_link_' + id);
+ if (action == 'collapse')
+ collapse_comment(link, comment);
+ else
+ expand_comment(link, comment);
+ }
+}
+
+function collapse_comment(link, comment) {
+ link.innerHTML = "[+]";
+ link.title = "Expand the comment.";
+ YAHOO.util.Dom.addClass(comment, 'collapsed');
+}
+
+function expand_comment(link, comment) {
+ link.innerHTML = "[-]";
+ link.title = "Collapse the comment";
+ YAHOO.util.Dom.removeClass(comment, 'collapsed');
+}
+
+/* This way, we are sure that browsers which do not support JS
+ * won't display this link */
+
+function addCollapseLink(count) {
+ document.write(' <a href="#" class="bz_collapse_comment"' +
+ ' id="comment_link_' + count +
+ '" onclick="toggle_comment_display(this, ' + count +
+ '); return false;" title="Collapse the comment.">[-]<\/a> ');
+}
+
diff --git a/template/en/default/bug/comments.html.tmpl b/template/en/default/bug/comments.html.tmpl
index 93b954e87..2f42bbcb7 100644
--- a/template/en/default/bug/comments.html.tmpl
+++ b/template/en/default/bug/comments.html.tmpl
@@ -22,76 +22,8 @@
[% PROCESS bug/time.html.tmpl %]
- <script type="text/javascript">
- <!--
- function updateCommentPrivacy(checkbox, id) {
- var comment_elem = document.getElementById('comment_text_'+id).parentNode;
- if (checkbox.checked) {
- if (!comment_elem.className.match('bz_private')) {
- comment_elem.className = comment_elem.className.concat(' bz_private');
- }
- }
- else {
- comment_elem.className =
- comment_elem.className.replace(/(\s*|^)bz_private(\s*|$)/, '$2');
- }
- }
-
- /* The functions below expand and collapse comments */
-
- function toggle_comment_display(link, comment_id) {
- var comment = document.getElementById('comment_text_' + comment_id);
- var re = new RegExp(/\bcollapsed\b/);
- if (comment.className.match(re))
- expand_comment(link, comment);
- else
- collapse_comment(link, comment);
- }
-
- function toggle_all_comments(action) {
- var num_comments = [% comments.size FILTER html %];
-
- // If for some given ID the comment doesn't exist, this doesn't mean
- // there are no more comments, but that the comment is private and
- // the user is not allowed to view it.
-
- for (var id = 0; id < num_comments; id++) {
- var comment = document.getElementById('comment_text_' + id);
- if (!comment)
- continue;
-
- var link = document.getElementById('comment_link_' + id);
- if (action == 'collapse')
- collapse_comment(link, comment);
- else
- expand_comment(link, comment);
- }
- }
-
- function collapse_comment(link, comment) {
- link.innerHTML = "[+]";
- link.title = "Expand the comment.";
- YAHOO.util.Dom.addClass(comment, 'collapsed');
- }
-
- function expand_comment(link, comment) {
- link.innerHTML = "[-]";
- link.title = "Collapse the comment";
- YAHOO.util.Dom.removeClass(comment, 'collapsed');
- }
-
- /* This way, we are sure that browsers which do not support JS
- * won't display this link */
-
- function addCollapseLink(count) {
- document.write(' <a href="#" class="bz_collapse_comment"' +
- ' id="comment_link_' + count +
- '" onclick="toggle_comment_display(this, ' + count +
- '); return false;" title="Collapse the comment.">[-]<\/a> ');
- }
- //-->
- </script>
-
+<script src="js/comments.js" type="text/javascript">
+</script>
[% DEFAULT start_at = 0 mode = "show" %]
[% sort_order = user.settings.comment_sort_order.value %]
@@ -142,9 +74,9 @@
<td>
[% IF mode == "edit" %]
<ul class="bz_collapse_expand_comments">
- <li><a href="#" onclick="toggle_all_comments('collapse');
+ <li><a href="#" onclick="toggle_all_comments('collapse', [% comments.size %]);
return false;">Collapse All Comments</a></li>
- <li><a href="#" onclick="toggle_all_comments('expand');
+ <li><a href="#" onclick="toggle_all_comments('expand', [% comments.size %]);
return false;">Expand All Comments</a></li>
</ul>
[% END %]