- diff -r -u -N /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/bug_form.pl ./bug_form.pl
- --- /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/bug_form.pl Fri Nov 1 11:11:22 2002
- +++ ./bug_form.pl Fri Nov 1 11:10:50 2002
- @@ -28,6 +28,167 @@
- # Use the Attachment module to display attachments for the bug.
- use Attachment;
- +# Prepare a hash for the section of the bug form showing information
- +# replicated from the Perforce source code management system by the
- +# P4DTI replicator. Derived from code contributed by Matt Albrecht
- +# <matt.albrecht@zilliant.com>.
- +
- +sub PreparePerforceSection {
- + my ($bug_id) = (@_);
- + my $jobname;
- + my %p4dti;
- + $p4dti{'hasp4dti'} = 0;
- + if (Param("p4dti")) {
- + $p4dti{'hasp4dti'} = 1;
- +
- + # First get the row from p4dti_bugs showing whether or not this bug is
- + # replicated at all.
- + SendSQL("SELECT rid, sid, jobname FROM p4dti_bugs " .
- + "WHERE bug_id = $bug_id");
- + if (!MoreSQLData()) {
- + $p4dti{'isreplicated'} = 0;
- + } else {
- + $p4dti{'isreplicated'} = 1;
- +
- + ($p4dti{'rid'}, $p4dti{'sid'}, $jobname) =
- + (FetchSQLData());
- +
- + # Replicating a bug more than once (i.e. to more than one
- + # Perforce server or via more than one replicator) is
- + # currently not supported by the replication system.
- + if (MoreSQLData()) {
- + my ($other_rid, $other_sid) = (FetchSQLData());
- + die "bug $bug_id is replicated by (".$p4dti{'rid'}.", ".
- + $p4dti{'sid'}.") and ($other_rid, $other_sid).";
- + }
- +
- + # Get P4DTI config for this rid/sid combination
- + my %p4dti_config;
- + SendSQL("SELECT config_key, config_value FROM p4dti_config " .
- + "WHERE rid = " . SqlQuote($p4dti{'rid'}) . " AND sid = " .
- + SqlQuote($p4dti{'sid'}));
- + while(MoreSQLData()) {
- + my ($p4dti_config_key, $p4dti_config_value) = FetchSQLData();
- + $p4dti_config{$p4dti_config_key} = $p4dti_config_value;
- + }
- + if (!defined $p4dti_config{'p4_server_description'}) {
- + $p4dti_config{'p4_server_description'} = "";
- + }
- + if (!defined $p4dti_config{'changelist_url'}) {
- + $p4dti_config{'changelist_url'} = "";
- + }
- + if (!defined $p4dti_config{'job_url'}) {
- + $p4dti_config{'job_url'} = "";
- + }
- + if (!defined $p4dti_config{'replicator_user'}) {
- + $p4dti_config{'replicator_user'} = "";
- + }
- + $p4dti{'config'} = \%p4dti_config;
- +
- + $jobname = value_quote($jobname);
- + if ($p4dti_config{"job_url"} ne "") {
- + $p4dti{'jobname'} = sprintf("<a href=\"$p4dti_config{'job_url'}\">$jobname</a>", $jobname);
- + } else { # no job URL pattern.
- + $p4dti{'jobname'} = $jobname;
- + }
- +
- + # Get actual fixes.
- + # Every row in the p4dti_fixes table with the right bug_id
- + # is a fix for this bug. We have to match that up with a row
- + # in the p4dti_changelist table, to get the fix description.
- + # However, if there are multiple replicators running,
- + # there may be more than one row in the p4dti_changelist
- + # table with a given changelist number. So we make
- + # the SIDs (Perforce server IDs) match.
- + #
- + # We do a LEFT JOIN and get a not-NULL field (the rid)
- + # from the p4dti_changelists table so we can distinguish
- + # the cases in which there is not a p4dti_changelists row
- + # for this changelist. That indicates a failure in the
- + # replicator, so we want to know about it.
- + SendSQL("SELECT profiles.realname, profiles.login_name, " .
- + " p4dti_fixes.changelist, " .
- + " p4dti_fixes.status, p4dti_changelists.p4date, " .
- + " p4dti_changelists.description, p4dti_changelists.rid, " .
- + " p4dti_changelists.flags " .
- + "FROM p4dti_fixes, profiles " .
- + "LEFT JOIN p4dti_changelists " .
- + " ON (p4dti_changelists.changelist=p4dti_fixes.changelist" .
- + " AND p4dti_changelists.sid = p4dti_fixes.sid)" .
- + "WHERE p4dti_fixes.bug_id = $bug_id " .
- + " AND profiles.userid = p4dti_fixes.user " .
- + " AND p4dti_fixes.rid = ". SqlQuote($p4dti{'rid'}) .
- + " AND p4dti_changelists.rid = ". SqlQuote($p4dti{'rid'}) .
- + " AND p4dti_fixes.sid = ". SqlQuote($p4dti{'sid'}) .
- + " AND p4dti_changelists.sid = ". SqlQuote($p4dti{'sid'}) .
- + " ORDER BY p4dti_fixes.changelist");
- + if (MoreSQLData()) {
- + $p4dti{'hasfixes'} = 1;
- + my @fixlist;
- + while (MoreSQLData()) {
- + my %myset;
- + my ($realname, $login_name, $changelist, $status, $p4date,
- + $description, $changelist_rid, $changelist_flags) =
- + (FetchSQLData());
- + if (!defined $changelist_rid || $changelist_rid eq "") {
- + die "p4dti_changelists has no row for changelist $changelist.";
- + }
- + $myset{'changelist_rid'} = $changelist_rid;
- + $myset{'description'} = $description || "(none)";
- + if ($changelist) {
- + my $changelist_html;
- + if ($p4dti_config{"changelist_url"} ne "") {
- + $myset{'changelist'} =
- + sprintf("<a href=\"$p4dti_config{'changelist_url'}\">$changelist</a>",
- + $changelist);
- + } else { # no changelist URL pattern.
- + $myset{'changelist'} = $changelist;
- + }
- + } else {
- + $myset{'changelist'} = "";
- + }
- + if ($changelist_flags & 1) {
- + $myset{'changelist_note'} = "";
- + } else {
- + $myset{'changelist_note'} = "(pending)";
- + }
- + if ($login_name eq $p4dti_config{"replicator_user"}) {
- + $myset{'user_field'} = "(unknown)";
- + } else {
- + $myset{'user_field'} = ("<a href=\"mailto:$login_name\">" .
- + value_quote($realname) . "</a>");
- + }
- + $myset{'status'} = $status || "";
- + $myset{'p4date'} = $p4date || "";
- +
- + push( @fixlist, \%myset );
- + }
- + $p4dti{'fixes'} = \@fixlist;
- + } else {
- + $p4dti{'hasfixes'} = 0;
- + }
- + # get filespecs.
- + SendSQL("SELECT filespec " .
- + "FROM p4dti_filespecs " .
- + "WHERE bug_id = $bug_id");
- + if (MoreSQLData()) {
- + $p4dti{'hasfilespecs'} = 1;
- + my @speclist;
- + while (MoreSQLData()) {
- + my ($filespec) = (FetchSQLData());
- + push( @speclist, $filespec );
- + }
- + $p4dti{'filespecs'} = \@speclist;
- + } else {
- + $p4dti{'hasfilespecs'} = 0;
- + }
- + }
- + }
- + return \%p4dti;
- +}
- +
- +
- +
- sub show_bug {
- # Shut up misguided -w warnings about "used only once". For some reason,
- # "use vars" chokes on me when I try it here.
- @@ -313,6 +474,8 @@
- # Add the bug and user hashes to the variables
- $vars->{'bug'} = \%bug;
- $vars->{'user'} = \%user;
- +
- + $vars->{'p4dti'} = PreparePerforceSection($bug{'bug_id'});
- # Create the <link> elements for browsing bug lists
- $vars->{'navigation_links'} = navigation_links(join(':',@bug_list));
- diff -r -u -N /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/defparams.pl ./defparams.pl
- --- /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/defparams.pl Fri Nov 1 11:11:22 2002
- +++ ./defparams.pl Fri Nov 1 11:10:50 2002
- @@ -607,4 +607,9 @@
- "t" ,
- '1000');
- +DefParam("p4dti",
- + "If this is on, Bugzilla uses the Perforce Defect Tracking Integration.",
- + "b",
- + 0);
- +
- 1;
- diff -r -u -N /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/doeditparams.cgi ./doeditparams.cgi
- --- /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/doeditparams.cgi Fri Nov 1 11:11:23 2002
- +++ ./doeditparams.cgi Fri Nov 1 11:10:51 2002
- @@ -26,6 +26,7 @@
- use lib qw(.);
- require "CGI.pl";
- +require "globals.pl";
- require "defparams.pl";
- # Shut up misguided -w warnings about "used only once":
- @@ -74,6 +75,41 @@
- }
- +####
- +# ndl@ravenbrook.com 2001-11-23:
- +# If the parameters table did not exist, create and populate it.
- +# If a parameters table is incorporated into the main Bugzilla sources
- +# then it should be created and initially populated from this
- +# checksetup.pl, and merely updated in this file.
- +
- +SendSQL ("SHOW TABLES LIKE 'p4dti_bugzilla_parameters'");
- +if (MoreSQLData()) {
- + print("Updating table p4dti_bugzilla_parameters.<br>\n");
- +} else {
- + print("Creating table p4dti_bugzilla_parameters.<br>\n");
- + SendSQL("CREATE TABLE p4dti_bugzilla_parameters
- + (parameter_name varchar(255) not null primary key,
- + parameter_value mediumtext)");
- +}
- +
- +foreach my $i (@::param_list) {
- + my $val = SqlQuote($::param{$i});
- + SendSQL("SELECT parameter_value
- + FROM p4dti_bugzilla_parameters
- + WHERE parameter_name = '$i'");
- + if (MoreSQLData()) {
- + SendSQL("UPDATE p4dti_bugzilla_parameters
- + SET parameter_value = $val
- + WHERE parameter_name = '$i'");
- + } else {
- + SendSQL("INSERT INTO p4dti_bugzilla_parameters
- + VALUES ('$i', $val)");
- + }
- +}
- +
- +#
- +####
- +
- WriteParams();
- unlink "data/versioncache";
- diff -r -u -N /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/template/en/custom/bug/edit.html.tmpl ./template/en/custom/bug/edit.html.tmpl
- --- /home/nb/info.ravenbrook.com/project/p4dti/import/2002-09-30/bugzilla-2.16.1/bugzilla-2.16.1/template/en/custom/bug/edit.html.tmpl Thu Jan 1 01:00:00 1970
- +++ ./template/en/custom/bug/edit.html.tmpl Fri Nov 1 11:10:51 2002
- @@ -0,0 +1,624 @@
- +<!-- 1.0@bugzilla.org -->
- +[%# 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 <gerv@gerv.net>
- + #%]
- +
- +[% filtered_desc = bug.short_desc FILTER html %]
- +[% UNLESS header_done %]
- + [% PROCESS global/header.html.tmpl
- + title = "Bug $bug.bug_id - $bug.short_desc"
- + h1 = "Bugzilla Bug $bug.bug_id"
- + h2 = filtered_desc
- + header_html = navigation_links
- + %]
- +[% END %]
- +
- +[% PROCESS bug/navigate.html.tmpl %]
- +
- +<hr>
- +
- +<form name="changeform" method="post" action="process_bug.cgi">
- +
- + <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]">
- + <input type="hidden" name="longdesclength" value="[% bug.longdesclength %]">
- + <input type="hidden" name="id" value="[% bug.bug_id %]">
- +
- +[%# *** Platform Reporter Product OS AddCC *** %]
- +
- + <table cellspacing="1" cellpadding="1" border="0">
- + <tr>
- + <td align="right">
- + <b>Bug#:</b>
- + </td>
- + <td>
- + <a href="[% Param('urlbase') %]show_bug.cgi?id=[% bug.bug_id %]">
- + [% bug.bug_id %]</a>
- + </td>
- +
- + <td> </td>
- +
- + <td align="right">
- + <b>Platform:</b>
- + </td>
- + [% PROCESS select selname = "rep_platform" %]
- +
- + <td align="right">
- + <b>Reporter:</b>
- + </td>
- + <td>
- + [% bug.reporter FILTER html %]
- + </td>
- + </tr>
- +
- + <tr>
- + <td align="right">
- + <b>Product:</b>
- + </td>
- + [% PROCESS select selname => "product" %]
- +
- + <td align="right">
- + <b>OS:</b>
- + </td>
- + [% PROCESS select selname => "op_sys" %]
- +
- + <td align="right">
- + <b>Add CC:</b>
- + </td>
- + <td>
- + <input name="newcc" size="30" value="">
- + </td>
- + </tr>
- +
- +[%# *** Component Version CC Priority Severity AssignedTo Milestone *** %]
- +
- + <tr>
- + <td align="right">
- + <b>
- + <a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]">
- + Component</a>:
- + </b>
- + </td>
- + <td>
- + <select name="component">
- + [% FOREACH x = component_ %]
- + <option value="[% x FILTER html %]"
- + [% " selected" IF x == bug.component %]>[% x FILTER html %]
- + </option>
- + [% END %]
- + </select>
- + </td>
- +
- + <td> </td>
- +
- + <td align="right">
- + <b>Version:</b>
- + </td>
- + [% PROCESS select selname => "version" %]
- +
- + <td rowspan="4" align="right" valign="top">
- + <b>CC:</b>
- + </td>
- + <td rowspan="4" valign="top">
- + [% IF bug.cc %]
- + <select name="cc" multiple="multiple" size="5">
- + [% FOREACH c = bug.cc %]
- + <option value="[% c FILTER html %]">[% c FILTER html %]</option>
- + [% END %]
- + </select>
- + <br>
- + <input type="checkbox" name="removecc">Remove selected CCs
- + <br>
- + [% ELSE %]
- + <input type="hidden" name="cc" value="">
- + [% END %]
- + </td>
- + </tr>
- +
- + <tr>
- + <td align="right">
- + <b>
- + <a href="bug_status.html">Status</a>:
- + </b>
- + </td>
- + <td>[% bug.bug_status FILTER html %]</td>
- + <td> </td>
- +
- + <td align="right">
- + <b><a href="bug_status.html#priority">Priority</a>:</b>
- + </td>
- + [% PROCESS select selname => "priority" %]
- + </tr>
- +
- + <tr>
- + <td align="right">
- + <b>
- + <a href="bug_status.html">Resolution</a>:
- + </b>
- + </td>
- + <td>[% bug.resolution FILTER html %]</td>
- + <td> </td>
- +
- + <td align="right">
- + <b><a href="bug_status.html#severity">Severity</a>:</b>
- + </td>
- + [% PROCESS select selname = "bug_severity" %]
- +
- + </tr>
- +
- + <tr>
- + <td align="right">
- + <b>
- + <a href="bug_status.html#assigned_to">Assigned To</a>:
- + </b>
- + </td>
- + <td>[% bug.assigned_to FILTER html %]</td>
- + <td> </td>
- +
- + [% IF Param("usetargetmilestone") && bug.target_milestone %]
- + <td align="right">
- + <b>
- + <a href="[% bug.milestoneurl FILTER html %]">Target Milestone</a>:
- + </b>
- + </td>
- + [% PROCESS select selname = "target_milestone" %]
- + [% ELSE %]
- + <td colspan="3"> </td>
- + [% END %]
- + </tr>
- +
- +[%# *** QAContact URL Summary Whiteboard Keywords *** %]
- +
- + [% IF Param('useqacontact') %]
- + <tr>
- + <td align="right">
- + <b>QA Contact:</b>
- + </td>
- + <td colspan="7">
- + <input name="qa_contact"
- + value="[% bug.qa_contact FILTER html %]" size="60">
- + </td>
- + </tr>
- + [% END %]
- +
- + <tr>
- + <td align="right">
- + <b>
- + [% IF bug.bug_file_loc %]
- + <a href="[% bug.bug_file_loc FILTER html %]">URL</a>:
- + [% ELSE %]
- + URL:
- + [% END %]
- + </b>
- + </td>
- + <td colspan="7">
- + <input name="bug_file_loc"
- + value="[% bug.bug_file_loc FILTER html %]" size="60">
- + </td>
- + </tr>
- +
- + <tr>
- + <td align="right">
- + <b>Summary:</b>
- + </td>
- + <td colspan="7">
- + <input name="short_desc"
- + value="[% bug.short_desc FILTER html %]" size="60">
- + </td>
- + </tr>
- +
- + [% IF Param('usestatuswhiteboard') %]
- + <tr>
- + <td align="right">
- + <b>Status Whiteboard:</b>
- + </td>
- + <td colspan="7">
- + <input name="status_whiteboard"
- + value="[% bug.status_whiteboard FILTER html %]" size="60">
- + </td>
- + </tr>
- + [% END %]
- +
- + [% IF use_keywords %]
- + <tr>
- + <td align="right">
- + <b>
- + <a href="describekeywords.cgi">Keywords</a>:
- + </b>
- + <td colspan="7">
- + <input name="keywords"
- + value="[% bug.keywords.join(', ') FILTER html %]" size="60">
- + </td>
- + </tr>
- + [% END %]
- + </table>
- +
- +[%# *** Attachments *** %]
- +
- + [% PROCESS attachment/list.html.tmpl
- + attachments = bug.attachments
- + bugid = bug.bug_id %]
- +
- +[%# *** Dependencies Votes *** %]
- +
- + [% IF Param('usedependencies') %]
- + <table>
- + <tr>
- + [% PROCESS dependencies
- + dep = { title => "depends on", fieldname => "dependson" } %]
- + <td rowspan="2">
- + <a href="showdependencytree.cgi?id=[% bug.bug_id %]">Show
- + dependency tree</a>
- +
- + [% IF Param('webdotbase') %]
- + <br>
- + <a href="showdependencygraph.cgi?id=[% bug.bug_id %]">Show
- + dependency graph</a>
- + [% END %]
- + </td>
- + </tr>
- +
- + <tr>
- + [% PROCESS dependencies
- + dep = { title => "blocks", fieldname => "blocked" } %]
- + </tr>
- + </table>
- + [% END %]
- +
- + [% IF use_votes %]
- + <table>
- + <tr>
- + <th>
- + <a href="votehelp.html">Votes</a>:
- + </th>
- + <td>
- + [% bug.votes %]
- + <a href="votes.cgi?action=show_bug&bug_id=[% bug.bug_id %]">Show
- + votes for this bug</a>
- + <a href="votes.cgi?action=show_user&bug_id=[% bug.bug_id %]">Vote
- + for this bug</a>
- + </td>
- + </tr>
- + </table>
- + [% END %]
- +
- +[%# *** Comments Groups *** %]
- +
- + <br>
- + <b>Additional Comments:</b>
- + <br>
- + <textarea wrap="hard" name="comment" rows="10" cols="80"
- + accesskey="c"></textarea>
- + <br>
- +
- + [% IF groups.size > 0 %]
- + <br>
- + <b>Only users in all of the selected groups can view this bug:</b>
- + <br>
- + <font size="-1">(Unchecking all boxes makes this a public bug.)</font>
- + <br>
- + <br>
- +
- + [% FOREACH group = groups %]
- +
- + <input type="checkbox" name="bit-[% group.bit %]" value="1"
- + [% " checked=\"checked\"" IF group.ison %]
- + [% " disabled=\"disabled\"" IF NOT group.ingroup %]>
- + [% group.description %]
- + <br>
- + [% END %]
- +
- + [% IF NOT user.inallgroups %]
- + <b>
- + Only members of a group can change the visibility of a bug for
- + that group
- + </b>
- + <br>
- + [% END %]
- +
- + [% IF bug.inagroup %]
- + <p>
- + <b>But users in the roles selected below can always view this bug:</b>
- + <br>
- + <small>
- + (The assignee
- + [% IF (Param('useqacontact')) %]
- + and QA contact
- + [% END %]
- + can always see a bug, and this section does not take effect unless
- + the bug is restricted to at least one group.)
- + </small>
- + </p>
- +
- + <p>
- + <input type="checkbox" name="reporter_accessible" value="1"
- + [% " checked" IF bug.reporter_accessible %]>Reporter
- + <input type="checkbox" name="cclist_accessible" value="1"
- + [% " checked" IF bug.cclist_accessible %]>CC List
- + </p>
- + [% END %]
- + [% END %]
- +
- +[%# *** Knob *** %]
- +
- + <br>
- + <input type="radio" name="knob" value="none" checked="checked">
- + Leave as <b>[% bug.bug_status FILTER html %]
- + [% bug.resolution FILTER html %]</b>
- + <br>
- +
- + [% knum = 1 %]
- +
- + [% IF bug.bug_status == "UNCONFIRMED" &&
- + user.canconfirm %]
- + <input type="radio" name="knob" value="confirm">
- + Confirm bug (change status to <b>NEW</b>)
- + <br>
- + [% knum = knum + 1 %]
- + [% END %]
- +
- + [% IF user.canedit %]
- + [% IF bug.isopened %]
- + [% IF bug.bug_status != "ASSIGNED" && user.canconfirm %]
- + <input type="radio" name="knob" value="accept">
- + Accept bug (
- + [% "confirm bug, " IF bug.isunconfirmed %]change
- + status to <b>ASSIGNED</b>)
- + <br>
- + [% knum = knum + 1 %]
- + [% END %]
- +
- + [% IF bug.resolution %]
- + <input type="radio" name="knob" value="clearresolution">
- + Clear the resolution (remove the current resolution of
- + <b>[% bug.resolution FILTER html %]</b>)<br>
- + [% knum = knum + 1 %]
- + [% END %]
- +
- + <input type="radio" name="knob" value="resolve">
- + Resolve bug, changing <a href="bug_status.html">resolution</a> to
- + <select name="resolution"
- + onchange="document.changeform.knob[[% knum %]].checked=true">
- + [% FOREACH r = resolution %]
- + <option value="[% r FILTER html %]">[% r FILTER html %]</option>
- + [% END %]
- + </select>
- + <br>
- + [% knum = knum + 1 %]
- +
- + <input type="radio" name="knob" value="duplicate">
- + Resolve bug, mark it as duplicate of bug #
- + <input name="dup_id" size="6"
- + onchange="if (this.value != '')
- + {document.changeform.knob[[% knum %]].checked=true}">
- + <br>
- + [% knum = knum + 1 %]
- +
- + <input type="radio" name="knob" value="reassign">
- + <a href="bug_status.html#assigned_to">Reassign</a> bug to
- + <input name="assigned_to" size="32"
- + onchange="if ((this.value != '[% bug.assigned_to_email FILTER js %]') &&
- + (this.value != '')) {
- + document.changeform.knob[[% knum %]].checked=true;
- + }"
- + value="[% bug.assigned_to_email FILTER html %]">
- + <br>
- + [% IF bug.isunconfirmed && user.canconfirm %]
- + <input type="checkbox" name="andconfirm">
- + and confirm bug (change status to <b>NEW</b>)
- + <br>
- + [% END %]
- + [% knum = knum + 1 %]
- +
- + <input type="radio" name="knob" value="reassignbycomponent">
- + Reassign bug to owner
- + [% "and QA contact" IF useqacontact %]
- + of selected component
- + <br>
- + [% IF bug.isunconfirmed && user.canconfirm %]
- + <input type="checkbox" name="compconfirm">
- + and confirm bug (change status to <b>NEW</b>)
- + <br>
- + [% END %]
- + [% knum = knum + 1 %]
- + [% ELSE %]
- + [% IF bug.resolution != "MOVED" ||
- + (bug.resolution == "MOVED" && user.canmove) %]
- + <input type="radio" name="knob" value="reopen"> Reopen bug
- + <br>
- + [% knum = knum + 1 %]
- + [% END %]
- + [% IF bug.bug_status == "RESOLVED" %]
- + <input type="radio" name="knob" value="verify">
- + Mark bug as <b>VERIFIED</b><br>
- + [% knum = knum + 1 %]
- + [% END %]
- + [% IF bug.bug_status != "CLOSED" %]
- + <input type="radio" name="knob" value="close">
- + Mark bug as <b>CLOSED</b><br>
- + [% knum = knum + 1 %]
- + [% END %]
- + [% END %]
- + [% END %]
- +
- + <input type="submit" value="Commit">
- + <input type="hidden" name="form_name" value="process_bug">
- + <p>
- + <font size="+1">
- + <b>
- + <a href="show_activity.cgi?id=[% bug.bug_id %]">View Bug Activity</a>
- + |
- + <a href="long_list.cgi?buglist=[% bug.bug_id %]">Format For Printing</a>
- + </b>
- + </font>
- +
- + [% IF user.canmove %]
- + <font size="+1"><b> | </b></font>
- + <input type="submit" name="action"
- + value="[% Param("move-button-text") %]">
- + [% END %]
- + </p>
- +</form>
- +
- +[%# *** Additional Comments *** %]
- +
- +<table>
- + <tr>
- + <td align="left">
- + <b>
- + <a name="c0" href="#c0">Description</a>:
- + </b>
- + </td>
- + <td align="right" width="100%">
- + Opened: [% bug.creation_ts %]
- + </td>
- + </tr>
- +</table>
- +<hr>
- +
- +[% PROCESS bug/comments.html.tmpl
- + comments = bug.comments
- + %]
- +
- +<hr>
- +
- +[%# P4DTI section. Derived in part from code contributed by Matt
- + # Albrecht <matt.albrecht@zilliant.com>.
- + #%]
- +[% IF p4dti.hasp4dti %]
- + <div class="p4dti">
- +
- + [% IF p4dti.isreplicated %]
- +
- + <p><b>Perforce replication:</b></p>
- + <table border="0" cellspacing="0" cellpadding="4">
- + <tr valign="top">
- + <td><b>Job</b></td>
- + <td> [% p4dti.jobname %] </td>
- + </tr>
- + <tr valign="top">
- + <td><b>Server</b></td>
- + <td>
- + [% p4dti.sid FILTER html %]
- + [% IF p4dti.config.p4_server_description %]:
- + [% p4dti.config.p4_server_description FILTER html %]
- + [% END %]
- + </td>
- + </tr>
- + <tr valign="top">
- + <td><b>Replicator ID</b></td>
- + <td>[% p4dti.rid FILTER html %]</td>
- + </tr>
- + <tr valign="top">
- + <td><b>Fixes</b></td>
- + <td>
- + [% IF p4dti.hasfixes %]
- + <table border="1" cellspacing="0" cellpadding="4">
- + <tr align="left" valign="top">
- + <th>Change</th>
- + <th>Effect</th>
- + <th>Date</th>
- + <th>User</th>
- + <th>Description</th>
- + </tr>
- + [% FOREACH fix = p4dti.fixes %]
- + <tr valign="top">
- + <td>[% fix.changelist %]
- + [% fix.changelist_note %]</td>
- + <td>[% fix.status FILTER html %]</td>
- + <td>[% fix.p4date FILTER html %]</td>
- + <td>[% fix.user_field %]</td>
- + <td>[% fix.description FILTER html %]</td>
- + </tr>
- + [% END %]
- + </table>
- + [% ELSE %]
- + None.
- + [% END %]
- + </td>
- + </tr>
- + <tr valign="top">
- + <td><b>Filespecs</b></td>
- + <td>
- + [% IF p4dti.hasfilespecs %]
- + <table>
- + [% FOREACH f = p4dti.filespecs %]
- + <tr valign="top">
- + <td>[% f FILTER html %]</td>
- + </tr>
- + [% END %]
- + </table>
- + [% ELSE %]
- + None.
- + [% END %]
- + </td>
- + </tr>
- + </table>
- +
- + [% ELSE %]
- +
- + <p><b>Not replicated in Perforce.</b></p>
- +
- + [% END %]
- + <hr/>
- + </div>
- +[% END %]
- +
- +<hr>
- +
- +[% PROCESS bug/navigate.html.tmpl %]
- +
- +<br>
- +
- +[% PROCESS global/footer.html.tmpl %]
- +
- +
- +[%############################################################################%]
- +[%# Block for dependencies #%]
- +[%############################################################################%]
- +
- +[% BLOCK dependencies %]
- + <th align="right">Bug [% bug.bug_id %] [%+ dep.title %]:</th>
- + <td>
- + [% FOREACH depbug = bug.${dep.fieldname} %]
- + [% GetBugLink(depbug, depbug) %][% " " %]
- + [% END %]
- + </td>
- + <td>
- + <input name="[% dep.fieldname %]"
- + value="[% bug.${dep.fieldname}.join(', ') %]">
- + </td>
- +[% END %]
- +
- +
- +[%############################################################################%]
- +[%# Block for SELECT fields #%]
- +[%############################################################################%]
- +
- +[% BLOCK select %]
- + <td>
- + <select name="[% selname %]">
- + [% FOREACH x = ${selname} %]
- + <option value="[% x FILTER html %]"
- + [% " selected" IF x == bug.${selname} %]>[% x FILTER html %]
- + </option>
- + [% END %]
- + </select>
- + </td>
- + <td> </td>
- +[% END %]
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 2346 | Charles Hardin | fixed the bugzilla 2.16.1 patch that was in the p4dti version 1.5.0 tree off of ravenbook...... didn't check the other patches to see if they had the same error « |
22 years ago |