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 %]
|