summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormyk%mozilla.org <>2002-01-30 23:14:10 +0100
committermyk%mozilla.org <>2002-01-30 23:14:10 +0100
commit429456196dd7ce8ef7e0876b7e57cdc394a228ba (patch)
tree9822db1683ca3910e53f3a4b3e3d7501ae8f8b42
parent9704bcdf20dfc01b491d4a7c76f469c9a6190685 (diff)
downloadbugzilla-429456196dd7ce8ef7e0876b7e57cdc394a228ba.tar.gz
bugzilla-429456196dd7ce8ef7e0876b7e57cdc394a228ba.tar.xz
Fix for bug 104521: Removes old attachment interface in favor of new attachment tracker.
Patch by Myk Melez <myk@mozilla.org>. r=bbaetz,kiko
-rw-r--r--CGI.pl4
-rw-r--r--bug_form.pl27
-rwxr-xr-xchecksetup.pl4
-rw-r--r--defparams.pl15
-rw-r--r--globals.pl4
-rwxr-xr-xprocessmail6
-rwxr-xr-xshowattachment.cgi43
7 files changed, 31 insertions, 72 deletions
diff --git a/CGI.pl b/CGI.pl
index 90217db18..eb8f5f037 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -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";
diff --git a/bug_form.pl b/bug_form.pl
index 97491772d..76c7cc242 100644
--- a/bug_form.pl
+++ b/bug_form.pl
@@ -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) = (@_);
diff --git a/checksetup.pl b/checksetup.pl
index d793879ff..125b18a6c 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -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} =
'
diff --git a/defparams.pl b/defparams.pl
index 76fb77777..819013341 100644
--- a/defparams.pl
+++ b/defparams.pl
@@ -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
diff --git a/globals.pl b/globals.pl
index d8e5672e0..86478b03c 100644
--- a/globals.pl
+++ b/globals.pl
@@ -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;
}
diff --git a/processmail b/processmail
index f47d27e3e..844942728 100755
--- a/processmail
+++ b/processmail
@@ -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');
diff --git a/showattachment.cgi b/showattachment.cgi
index 70f5c6d66..4aaf6f17d 100755
--- a/showattachment.cgi
+++ b/showattachment.cgi
@@ -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;
+