Permalink
Browse files

Actually commit changes files as well as removed ones!

  • Loading branch information...
Gervase Markham
Gervase Markham committed Mar 4, 2011
1 parent 84852a9 commit ecb0ff6048a6ef266624bccdef57c189eb4f78cb
Showing with 96 additions and 76 deletions.
  1. +19 −24 InlineImages/Extension.pm
  2. +76 −51 InlineImages/template/en/default/hook/bug/comments-aftercomments.html.tmpl
  3. +1 −1 README
View
@@ -18,51 +18,46 @@
#
# Contributor(s):
# Guy Pyrzak <guy.pyrzak@gmail.com>
+# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::InlineImages;
use strict;
use base qw(Bugzilla::Extension);
use Bugzilla::Template;
-# This code for this is in ./extensions/InlineImages/lib/Util.pm
-use Bugzilla::Extension::InlineImages::Util;
+use constant NAME => 'InlineImages';
-our $VERSION = '0.01';
-
-# See the documentation of Bugzilla::Hook ("perldoc Bugzilla::Hook"
-# in the bugzilla directory) for a list of all available hooks.
-sub install_update_db {
- my ($self, $args) = @_;
-
-
-}
+our $VERSION = '0.2';
sub bug_format_comment {
- my ($self, $args) = @_;
- my $regexes = $args->{'regexes'};
- my $replacer = {
- match => qr~\b(attachment\s*\#?\s*(\d+))~,
- replace => \&_inlineAttachments
- };
- push( @$regexes, $replacer );
+ my ($self, $args) = @_;
+ my $regexes = $args->{'regexes'};
+
+ push(@$regexes, {
+ match => qr~\b(attachment\s*\#?\s*(\d+))~,
+ replace => \&_inlineAttachments
+ });
}
sub _inlineAttachments {
my $args = shift @_;
my $attachment_id = $args->{matches}->[1];
my $attachment_string = $args->{matches}->[0];
- # we need to call get_attachment_link because otherwise it will be skipped
- my $attachment_msg = Bugzilla::Template::get_attachment_link( $attachment_id, $attachment_string);
+
+ # We need to call get_attachment_link because otherwise it will be skipped
+ my $msg = Bugzilla::Template::get_attachment_link($attachment_id,
+ $attachment_string);
my $dbh = Bugzilla->dbh;
my ($mimetype) =
$dbh->selectrow_array('SELECT mimetype
FROM attachments WHERE attach_id = ?',
undef, $attachment_id);
- if( $mimetype =~ m/image\/(gif|png|jpeg)/ ) {
- $attachment_msg =~ s/(?=name="attach_)/ class="is_image" /;
+ if ($mimetype =~ /^image\/(gif|png|jpeg)$/) {
+ $msg =~ s/(?=name="attach_)/ class="is_image" /;
}
- return $attachment_msg;
+
+ return $msg;
};
-__PACKAGE__->NAME;
+__PACKAGE__->NAME;
@@ -17,69 +17,94 @@
#
# 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 comments_expand_collapse = YAHOO.util.Dom.getElementsByClassName('bz_collapse_expand_comments', 'ul', 'comments');
- // don't bother doing this if there are no images as attachments
- if( YAHOO.util.Dom.getElementsByClassName("is_image", "a", "comments").length == 0 ) return;
+ 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 = YAHOO.util.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 ){
- if( inlineImagesCookie == "on"){
- YAHOO.bz_ext_inlineImage.toggleImages( );
- }
+ // 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 link = document.getElementById("toggle_images");
- var p = YAHOO.util.Dom.getElementsByClassName("inline_image", "img", "comments");
- var toggle_link_text = "Show Inline Images";
- for( var i = 0; i < p.length; i++){
- p[i].parentNode.removeChild(p[i]);
- }
- if( p.length == 0 ){
- toggle_link_text = "Hide Inline Images";
- p = YAHOO.util.Dom.getElementsByClassName("is_image", "a", "comments");
- for( var i = 0; i < p.length; i++){
+ 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 = p[i].href;
- // might want to add some support to hide obsolete images
+ img.src = alinks[i].href;
+ // Might want to add some support to hide obsolete images
img.className = "inline_image";
img.style.display = "block";
- YAHOO.util.Dom.insertAfter(img, p[i].parentNode);
- YAHOO.util.Cookie.set("inlineImagesCookie", "on");
- }
- }else{
+ 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>
View
2 README
@@ -1,3 +1,3 @@
To install:
-copy and paste the InlineImages directory into the extension directory in your Bugzilla instance
+Copy the InlineImages directory into the extension directory of your Bugzilla instance.

0 comments on commit ecb0ff6

Please sign in to comment.