From aba1aab698fdbdb347f76e123d53985378b9b893 Mon Sep 17 00:00:00 2001 From: "myk%mozilla.org" Date: Wed, 30 Jan 2002 14:14:12 +0000 Subject: [PATCH] Fix for bug 104521: Removes old attachment interface in favor of new attachment tracker. Patch by Myk Melez . r=bbaetz,kiko --- webtools/bugzilla/CGI.pl | 4 +-- webtools/bugzilla/bug_form.pl | 27 ++++------------- webtools/bugzilla/checksetup.pl | 4 +-- webtools/bugzilla/defparams.pl | 15 ++++++---- webtools/bugzilla/globals.pl | 4 +-- webtools/bugzilla/processmail | 6 ++-- webtools/bugzilla/showattachment.cgi | 43 +++++----------------------- 7 files changed, 31 insertions(+), 72 deletions(-) diff --git a/webtools/bugzilla/CGI.pl b/webtools/bugzilla/CGI.pl index 90217db18313..eb8f5f037259 100644 --- a/webtools/bugzilla/CGI.pl +++ b/webtools/bugzilla/CGI.pl @@ -1270,7 +1270,7 @@ sub DumpBugActivity { while (@row = FetchSQLData()) { my ($field,$attachid,$when,$removed,$added,$who) = (@row); $field =~ s/^Attachment/Attachment #$attachid<\/a>/ - if (Param('useattachmenttracker') && $attachid); + if $attachid; $removed = html_quote($removed); $added = html_quote($added); $removed = " " if $removed eq ""; @@ -1349,7 +1349,7 @@ Edit prefs if (UserInGroup("editcomponents")) { $html .= ", products\n"; $html .= ", - attachment statuses\n" if Param('useattachmenttracker'); + attachment statuses\n"; } if (UserInGroup("creategroups")) { $html .= ", groups\n"; diff --git a/webtools/bugzilla/bug_form.pl b/webtools/bugzilla/bug_form.pl index 97491772d06c..76c7cc242288 100644 --- a/webtools/bugzilla/bug_form.pl +++ b/webtools/bugzilla/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 "\n"; - use Attachment; - &Attachment::list($id); -} else { - print "Attachments:\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{$date$desc   ($mimetype)}; - } - print "Create a new attachment (proposed patch, testcase, etc.)\n"; -} +print "\n"; +# Display attachments for this bug (if any). +&Attachment::list($id); sub EmitDependList { my ($desc, $myfield, $targetfield) = (@_); diff --git a/webtools/bugzilla/checksetup.pl b/webtools/bugzilla/checksetup.pl index d793879ff775..125b18a6cfbe 100755 --- a/webtools/bugzilla/checksetup.pl +++ b/webtools/bugzilla/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/webtools/bugzilla/defparams.pl b/webtools/bugzilla/defparams.pl index 76fb777779ad..819013341596 100644 --- a/webtools/bugzilla/defparams.pl +++ b/webtools/bugzilla/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 $item parameter is no longer used in Bugzilla + and has been removed from your parameters file.
"; + 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/webtools/bugzilla/globals.pl b/webtools/bugzilla/globals.pl index d8e5672e056d..86478b03c5f4 100644 --- a/webtools/bugzilla/globals.pl +++ b/webtools/bugzilla/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{$item}; + $item = qq{$item}; $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{$item}; + $item = qq{$item}; } $things[$count++] = $item; } diff --git a/webtools/bugzilla/processmail b/webtools/bugzilla/processmail index f47d27e3efd5..844942728593 100755 --- a/webtools/bugzilla/processmail +++ b/webtools/bugzilla/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/webtools/bugzilla/showattachment.cgi b/webtools/bugzilla/showattachment.cgi index 70f5c6d6641d..4aaf6f17df44 100755 --- a/webtools/bugzilla/showattachment.cgi +++ b/webtools/bugzilla/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 "
\n"; - print "You may view a single attachment by entering its id here: \n"; - print "\n"; - print "\n"; - print "
\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; +