summaryrefslogtreecommitdiffstats
path: root/extensions/InlineImages/template/en/default/hook/bug/comments-aftercomments.html.tmpl
blob: 531c18981c1242aa4d72706d768375c70c7cca33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[%#
# 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 InlineImages Bugzilla Extension.
#
# The Initial Developer of the Original Code is Guy Pyrzak
# Portions created by the Initial Developer are Copyright (C) 2010 the
# Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Guy Pyrzak <guy.pyrzak@gmail.com> 
#   Gervase Markham <gerv@gerv.net>
#%]

[% IF Param("allow_attachment_display") %]
<script>
  YAHOO.util.Event.onDOMReady(function() {
    var Dom = YAHOO.util.Dom;
      
    // Don't bother doing this if there are no images as attachments
    if (Dom.getElementsByClassName("is_image", "a", "comments").length == 0) {
      return;
    }
    
    var comments_expand_collapse = 
        Dom.getElementsByClassName('bz_collapse_expand_comments', 
                                   'ul', 
                                   'comments');
     
    // Check that what we're looking for is here      
    if (comments_expand_collapse.length == 0) {
      // Find the table we're looking for
      var commentsTable = Dom.getElementsByClassName("bz_comment_table", 
                                                     "table", 
                                                     "comments");
      secondColumn = commentsTable[0].getElementsByTagName("td")[1];
      var newUL = document.createElement("ul");
      if (secondColumn) {
        secondColumn.appendChild(newUL);
        comments_expand_collapse[0] = newUL;
      }
    }
    
    // Insert the li into the dom
    var li = document.createElement("li");
    var link = document.createElement("a");
    link.id = "toggle_images";
    link.href = "#";
    link.innerHTML = "Show Inline Images";
    link.onclick = YAHOO.bz_ext_inlineImage.toggleImages;
    li.appendChild(link);
    if (comments_expand_collapse.length > 0) {
      comments_expand_collapse[0].appendChild(li);
    }
    
    // Check to see if user has the inlineImagesCookie == on.
    // If it is, go ahead and show images for the user   
    var inlineImagesCookie = YAHOO.util.Cookie.get("inlineImagesCookie");
    if (inlineImagesCookie && inlineImagesCookie == "on") {
      YAHOO.bz_ext_inlineImage.toggleImages();
    }
  });
  
  var Dom = YAHOO.util.Dom;
  YAHOO.namespace("bz_ext_inlineImage");
  YAHOO.bz_ext_inlineImage.toggleImages = function(event) {
    var imgs = Dom.getElementsByClassName("inline_image", "img", "comments");
    var toggle_link_text = "";
    
    if (imgs.length == 0) {
      // Show inline images
        
      var alinks = Dom.getElementsByClassName("is_image", "a", "comments");
      for (var i = 0; i < alinks.length; i++) {
        var img = document.createElement("img");
        img.src = alinks[i].href;
        // Might want to add some support to hide obsolete images
        img.className = "inline_image";
        img.style.display = "block";
        Dom.insertAfter(img, alinks[i].parentNode);
      }
      
      YAHOO.util.Cookie.set("inlineImagesCookie", "on");
      toggle_link_text = "Hide Inline Images";
    } 
    else {
      // Hide inline images
        
      for (var i = 0; i < imgs.length; i++) {
        imgs[i].parentNode.removeChild(imgs[i]);
      }
      
      YAHOO.util.Cookie.set("inlineImagesCookie", "off");
      toggle_link_text = "Show Inline Images";
    }
    
    var link = document.getElementById("toggle_images");
    link.innerHTML = toggle_link_text;
    
    return false;
  }
</script>
[% END %]