From 03ad2ba8d181eeb39ce224005e348ff6f9d3b119 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Thu, 4 Apr 2002 02:54:12 +0000 Subject: Bug 124937 - templatise show_activity.cgi. Patch by me, r=myk, bbaetz. --- CGI.pl | 86 ++++++++++++++------------ process_bug.cgi | 15 +++-- show_activity.cgi | 23 ++++--- template/default/show/activity.html.tmpl | 91 ++++++++++++++++++++++++++++ template/default/show/bug-activity.html.tmpl | 42 +++++++++++++ template/default/show/comments.tmpl | 2 +- template/default/show/multiple.tmpl | 3 +- template/default/show/show_bug.html.tmpl | 4 +- 8 files changed, 210 insertions(+), 56 deletions(-) create mode 100644 template/default/show/activity.html.tmpl create mode 100644 template/default/show/bug-activity.html.tmpl diff --git a/CGI.pl b/CGI.pl index be6c95270..9311ca8df 100644 --- a/CGI.pl +++ b/CGI.pl @@ -1254,8 +1254,7 @@ sub CheckIfVotedConfirmed { } - -sub DumpBugActivity { +sub GetBugActivity { my ($id, $starttime) = (@_); my $datepart = ""; @@ -1264,6 +1263,7 @@ sub DumpBugActivity { if (defined $starttime) { $datepart = "and bugs_activity.bug_when > " . SqlQuote($starttime); } + my $query = " SELECT IFNULL(fielddefs.description, bugs_activity.fieldid), bugs_activity.attach_id, @@ -1279,46 +1279,54 @@ sub DumpBugActivity { SendSQL($query); - # Instead of outright printing this, we are going to store it in a $html - # variable and print it and the end. This is so we can explain ? (if nesc.) - # at the top of the activity table rather than the botom. - my $html = ""; - $html .= "
\n"; + + if ($operation->{'who'}) { + $operation->{'changes'} = $changes; + push (@operations, $operation); } - print $html; + + return(\@operations, $incomplete_data); } diff --git a/process_bug.cgi b/process_bug.cgi index 945f02c60..561db45e7 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -961,14 +961,21 @@ Someone else has made changes to this bug at the same time you were trying to. The changes made were:
"; - DumpBugActivity($id, $::FORM{'delta_ts'}); + use vars qw($template $vars); + + ($vars->{'operations'}, $vars->{'incomplete_data'}) = + GetBugActivity($::FORM{'id'}, $::FORM{'delta_ts'}); + + $template->process("show/activity.html.tmpl", $vars) + || DisplayError("Template process failed: " . $template->error()) + && exit; + my $comments = GetComments($id); my $longchanged = 0; if (scalar(@$comments) > $::FORM{'longdesclength'}) { $longchanged = 1; - print "
Added text to the long description:
"; - use vars qw($template $vars); + print "Added comments:
"; $vars->{'start_at'} = $::FORM{'longdesclength'}; $vars->{'comments'} = $comments; $vars->{'quoteUrls'} = \"eUrls; @@ -995,7 +1002,7 @@ The changes made were: print qq{\n}; print " This will cause all of the above changes to be overwritten"; if ($longchanged) { - print ", except for the changes to the description"; + print ", except for the added comments"; } print qq{.\nThrow away my changes, and go revisit bug $id\n}; PutFooter(); diff --git a/show_activity.cgi b/show_activity.cgi index f8c55f0a1..ca0e52fa2 100755 --- a/show_activity.cgi +++ b/show_activity.cgi @@ -20,19 +20,21 @@ # # Contributor(s): Terry Weissman # Myk Melez +# Gervase Markham use diagnostics; use strict; use lib qw(.); +use vars qw ($template $vars); require "CGI.pl"; ConnectToDatabase(); -###################################################################### +############################################################################### # Begin Data/Security Validation -###################################################################### +############################################################################### # Check whether or not the user is currently logged in. This function # sets the value of $::usergroupset, the binary number that records @@ -44,17 +46,18 @@ quietly_check_login(); # bug that the user is authorized to access. ValidateBugID($::FORM{'id'}); -###################################################################### +############################################################################### # End Data/Security Validation -###################################################################### +############################################################################### -print "Content-type: text/html\n\n"; +($vars->{'operations'}, $vars->{'incomplete_data'}) = + GetBugActivity($::FORM{'id'}); -PutHeader("Changes made to bug $::FORM{'id'}", "Activity log", - "Bug $::FORM{'id'}"); +$vars->{'bug_id'} = $::FORM{'id'}; -DumpBugActivity($::FORM{'id'}); +print "Content-type: text/html\n\n"; -print qq|
Back to bug $::FORM{'id'}\n|; +$template->process("show/bug-activity.html.tmpl", $vars) + || DisplayError("Template process failed: " . $template->error()) + && exit; -PutFooter(); diff --git a/template/default/show/activity.html.tmpl b/template/default/show/activity.html.tmpl new file mode 100644 index 000000000..12fcc2b6e --- /dev/null +++ b/template/default/show/activity.html.tmpl @@ -0,0 +1,91 @@ +[%# 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 Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham+ #%] + +[%# INTERFACE: + # operations: array of hashes. May be empty. Each has has three members: + # who: string. who performed the operation + # when: string. when they performed it + # changes: hash. Details of what they changed. This hash has three + # compulsory and one optional member: + # field: string. The name of the field + # removed: string. What was removed from the field + # added: string. What was added to the field + # attach_id: integer. If the change was adding an attachment, its id. + # incomplete_data: boolean. True if some of the data is incomplete (because + # it was affected by an old Bugzilla bug.) + #%] + +[% IF incomplete_data %] + + There used to be a bug Bugzilla which caused activity data + to be lost if there was a large number of cc's or dependencies. That + has been fixed, however, there was some data already lost on this bug + that could not be regenerated. The changes that the script could not + reliably determine are prefixed by '?'. +
+[% END %] + +[% IF operations.size > 0 %] ++
+[% END %] diff --git a/template/default/show/bug-activity.html.tmpl b/template/default/show/bug-activity.html.tmpl new file mode 100644 index 000000000..b298eb0d9 --- /dev/null +++ b/template/default/show/bug-activity.html.tmpl @@ -0,0 +1,42 @@ +[%# 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 Bugzilla Bug Tracking System. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gervase Markham+ + + [% FOREACH operation = operations %] +Who +When +What +Removed +Added ++ + [% operation.who %] + ++ [% operation.when %] + + [% FOREACH change = operation.changes %] + [% "" IF loop.index > 0 %] + " IF loop.index > 0 %] + [% END %] + + [% END %] ++ [% IF change.attachid %] + + Attachment #[% change.attachid %] + [% END %] + [% change.field %] + ++ [% IF change.removed %] + [% change.removed FILTER html %] + [% ELSE %] + + [% END %] + ++ [% IF change.added %] + [% change.added FILTER html %] + [% ELSE %] + + [% END %] + + [% "+ #%] + +[%# INTERFACE: + # bug_id: integer. The bug ID. + # + # This template also needs to be called with the interface to the + # activity.html.tmpl template fulfilled. + #%] + +[% INCLUDE global/header + title = "Changes made to bug $bug_id" + h1 = "Activity log" + h2 = "Bug $bug_id" + %] + +
+ +[% INCLUDE show/activity.html.tmpl %] + + + +[% INCLUDE global/footer %] diff --git a/template/default/show/comments.tmpl b/template/default/show/comments.tmpl index 7bdbdc06c..a840d6324 100644 --- a/template/default/show/comments.tmpl +++ b/template/default/show/comments.tmpl @@ -20,7 +20,7 @@ [% DEFAULT start_at = 0 %] [% count = 0 %] -[% FOREACH comment = bug.comments %] +[% FOREACH comment = comments %] [% IF count >= start_at %] [% PROCESS a_comment %] [% END %] diff --git a/template/default/show/multiple.tmpl b/template/default/show/multiple.tmpl index de5e6c251..8706d8912 100644 --- a/template/default/show/multiple.tmpl +++ b/template/default/show/multiple.tmpl @@ -136,7 +136,8 @@ - [% PROCESS show/comments.tmpl %] + [% PROCESS show/comments.tmpl + comments = bug.comments %]
[% END %] diff --git a/template/default/show/show_bug.html.tmpl b/template/default/show/show_bug.html.tmpl index 994bc4ae5..5006a92eb 100644 --- a/template/default/show/show_bug.html.tmpl +++ b/template/default/show/show_bug.html.tmpl @@ -488,7 +488,9 @@
-[% PROCESS show/comments.tmpl %] +[% PROCESS show/comments.tmpl + comments = bug.comments + %]
-- cgit v1.2.1