Commit 42945619 authored by myk%mozilla.org's avatar myk%mozilla.org

Fix for bug 104521: Removes old attachment interface in favor of new attachment tracker.

Patch by Myk Melez <myk@mozilla.org>. r=bbaetz,kiko
parent 9704bcdf
......@@ -1270,7 +1270,7 @@ sub DumpBugActivity {
while (@row = FetchSQLData()) {
my ($field,$attachid,$when,$removed,$added,$who) = (@row);
$field =~ s/^Attachment/<a href="attachment.cgi?id=$attachid&amp;action=view">Attachment #$attachid<\/a>/
if (Param('useattachmenttracker') && $attachid);
if $attachid;
$removed = html_quote($removed);
$added = html_quote($added);
$removed = "&nbsp;" if $removed eq "";
......@@ -1349,7 +1349,7 @@ Edit <a href="userprefs.cgi">prefs</a>
if (UserInGroup("editcomponents")) {
$html .= ", <a href=\"editproducts.cgi\">products</a>\n";
$html .= ", <a href=\"editattachstatuses.cgi\">
attachment&nbsp;statuses</a>\n" if Param('useattachmenttracker');
attachment&nbsp;statuses</a>\n";
}
if (UserInGroup("creategroups")) {
$html .= ", <a href=\"editgroups.cgi\">groups</a>\n";
......
......@@ -25,6 +25,9 @@ use strict;
use RelationSet;
# Use the Attachment module to display attachments for the bug.
use Attachment;
# Shut up misguided -w warnings about "used only once". For some reason,
# "use vars" chokes on me when I try it here.
......@@ -324,28 +327,10 @@ if (@::legal_keywords) {
};
}
# 2001-05-16 myk@mozilla.org: use the attachment tracker to display attachments
# if this installation has enabled use of the attachment tracker.
if (Param('useattachmenttracker')) {
print "</table>\n";
use Attachment;
&Attachment::list($id);
} else {
print "<tr><td align=right><B>Attachments:</b></td>\n";
SendSQL("select attach_id, creation_ts, mimetype, description from attachments where bug_id = $id");
while (MoreSQLData()) {
my ($attachid, $date, $mimetype, $desc) = (FetchSQLData());
if ($date =~ /^(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) {
$date = "$3/$4/$2 $5:$6";
}
my $link = "showattachment.cgi?attach_id=$attachid";
$desc = value_quote($desc);
$mimetype = html_quote($mimetype);
print qq{<td><a href="$link">$date</a></td><td colspan=6>$desc&nbsp;&nbsp;&nbsp;($mimetype)</td></tr><tr><td></td>};
}
print "<td colspan=7><a href=\"createattachment.cgi?id=$id\">Create a new attachment</a> (proposed patch, testcase, etc.)</td></tr></table>\n";
}
print "</TABLE>\n";
# Display attachments for this bug (if any).
&Attachment::list($id);
sub EmitDependList {
my ($desc, $myfield, $targetfield) = (@_);
......
......@@ -934,11 +934,9 @@ $table{attachments} =
index(bug_id),
index(creation_ts)';
# 2001-05-05 myk@mozilla.org: Tables to support the attachment tracker.
# 2001-05-05 myk@mozilla.org: Tables to support attachment statuses.
# "attachstatuses" stores one record for each status on each attachment.
# "attachstatusdefs" defines the statuses that can be set on attachments.
# Note: These tables are only used if the parameter "useattachmenttracker"
# is turned on via editparameters.cgi.
$table{attachstatuses} =
'
......
......@@ -54,6 +54,16 @@ sub WriteParams {
}
}
}
# If Bugzilla has been upgraded since the last time parameters were edited,
# and some parameters have been removed in the new version of Bugzilla,
# remove them from the parameters file.
foreach my $item (keys %::param) {
if (!grep($_ eq $item, @::param_list) && $item ne "version") {
print "The <em>$item</em> parameter is no longer used in Bugzilla
and has been removed from your parameters file.<br>";
delete $::param{$item};
}
}
mkdir("data", 0777);
chmod 0777, "data";
my $tmpname = "data/params.$$";
......@@ -674,11 +684,6 @@ DefParam("moved-default-component",
"t",
'');
DefParam("useattachmenttracker",
"Whether or not to use the attachment tracker that adds additional features for tracking bug attachments.",
"b",
0);
# The maximum size (in bytes) for patches and non-patch attachments.
# The default limit is 1000KB, which is 24KB less than mysql's default
# maximum packet size (which determines how much data can be sent in a
......
......@@ -1039,7 +1039,7 @@ sub quoteUrls {
my $num = $2;
$item = value_quote($item); # Not really necessary, since we know
# there's no special chars in it.
$item = qq{<A HREF="showattachment.cgi?attach_id=$num">$item</A>};
$item = qq{<A HREF="attachment.cgi?id=$num&action=view">$item</A>};
$things[$count++] = $item;
}
while ($text =~ s/\*\*\* This bug has been marked as a duplicate of (\d+) \*\*\*/"##$count##"/ei) {
......@@ -1054,7 +1054,7 @@ sub quoteUrls {
my $item = $&;
my $num = $1;
if ($knownattachments->{$num}) {
$item = qq{<A HREF="showattachment.cgi?attach_id=$num">$item</A>};
$item = qq{<A HREF="attachment.cgi?id=$num&action=view">$item</A>};
}
$things[$count++] = $item;
}
......
......@@ -160,7 +160,7 @@ sub ProcessOneBug {
$difftext .= FormatTriple("What ", "Removed", "Added");
$difftext .= ('-' x 76) . "\n";
}
$what =~ s/^Attachment/Attachment #$attachid/ if (Param('useattachmenttracker') && $attachid);
$what =~ s/^Attachment/Attachment #$attachid/ if $attachid;
$difftext .= FormatTriple($what, $old, $new);
}
......@@ -737,9 +737,9 @@ sub NewProcessOnePerson ($$$$$$$$$$$$) {
if ( $newcomments =~ /Created an attachment \(/ ) {
my $showattachurlbase =
Param('urlbase') . "showattachment.cgi?attach_id=";
Param('urlbase') . "attachment.cgi?id=";
$newcomments =~ s/(Created an attachment \(id=([0-9]+)\))/$1\n --> \(${showattachurlbase}$2\)/g;
$newcomments =~ s/(Created an attachment \(id=([0-9]+)\))/$1\n --> \(${showattachurlbase}$2&action=view\)/g;
}
$person .= Param('emailsuffix');
......
......@@ -28,39 +28,10 @@ use lib qw(.);
require "CGI.pl";
if (!defined $::FORM{'attach_id'}) {
print "Content-type: text/html\n";
print "\n";
PutHeader("Search by attachment number");
print "<FORM METHOD=GET ACTION=\"showattachment.cgi\">\n";
print "You may view a single attachment by entering its id here: \n";
print "<INPUT NAME=attach_id>\n";
print "<INPUT TYPE=\"submit\" VALUE=\"Show Me This Attachment\">\n";
print "</FORM>\n";
PutFooter();
exit;
}
ConnectToDatabase();
quietly_check_login();
if (!detaint_natural($::FORM{attach_id})) {
DisplayError("Attachment ID should be numeric.");
exit;
}
SendSQL("select bug_id, mimetype, thedata from attachments where attach_id = $::FORM{'attach_id'}");
my ($bug_id, $mimetype, $thedata) = FetchSQLData();
if (!$bug_id) {
DisplayError("Attachment $::FORM{attach_id} does not exist.");
exit;
}
# Make sure the user can see the bug to which this file is attached
ValidateBugID($bug_id);
print qq{Content-type: $mimetype\n\n$thedata};
# Redirect to the new interface for displaying attachments.
detaint_natural($::FORM{'attach_id'}) if defined($::FORM{'attach_id'});
my $id = $::FORM{'attach_id'} || "";
print "Status: 301 Permanent Redirect\n";
print "Location: attachment.cgi?id=$id&action=view\n\n";
exit;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment