// -------------------------------------------------------------------
// process comment stuff
-
+ /*
if (!$bugsys->in['firstcomment'])
{
$message->error('you need to enter some text in the first comment');
comment_parsed = '" . nl2br($bugsys->in['comment_parsed']) . "'
WHERE commentid = $firstcomment[commentid]"
);
-
+ */
// -------------------------------------------------------------------
// auto action comment
$message->redirect('done with update bug', "showreport.php?bugid=$bug[bugid]");
}
-// ###################################################################
-
-if ($_REQUEST['do'] == 'edit')
-{
- $select['severity'] = construct_datastore_select('severity', 'severity', 'severityid', $bug['severity']);
-
- $show['changestatus'] = ((can_perform('canchangestatus')) ? true : false);
- if (can_perform('canchangestatus'))
- {
- $select['priority'] = construct_datastore_select('priority', 'priority', 'priorityid', $bug['priority']);
- $select['status'] = construct_datastore_select('status', 'status', 'statusid', $bug['status']);
- $select['resolution'] = construct_datastore_select('resolution', 'resolution', 'resolutionid', $bug['resolution']);
- }
-
- $show['assign'] = ((can_perform('canassign')) ? true : false);
- if (can_perform('canassign'))
- {
- foreach ($bugsys->datastore['assignto'] AS $dev)
- {
- $value = $dev['userid'];
- $selected = (($dev['userid'] == $bug['assignedto']) ? true : false);
- $label = construct_user_display($dev, false);
- eval('$select[dev] .= "' . $template->fetch('selectoption') . '";');
- }
- }
-
- $pcv_select = construct_pcv_select("p$bug[productid]c$bug[componentid]v$bug[versionid]");
-
- $firstcomment = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug[bugid] ORDER BY dateline ASC LIMIT 1");
-
- $customfields = construct_custom_fields($bug);
-
- if ($bug['duplicateof'])
- {
- $duplicate = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]");
- }
-
- if ($bug['dependency'])
- {
- $dependencies = $db->query("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid IN ($bug[dependency])");
- while ($dependency = $db->fetch_array($dependencies))
- {
- $depends[] = "<a href=\"showreport.php?bugid=$dependency[bugid]\" alt=\"$dependency[summary]\">$dependency[bugid]</a>";
- }
- $dependencies = implode(' ', $depends);
- }
-
- $actions = $db->query("SELECT * FROM " . TABLE_PREFIX . "autoaction ORDER BY name ASC");
- $select['autoactions'] = '';
- $show['autoactions'] = false;
- while ($action = $db->fetch_array($actions))
- {
- $label = $action['name'];
- $value = $action['actionid'];
- $selected = false;
- eval('$select[autoaction] .= "' . $bugsys->template->fetch('selectoption') . '";');
- $show['autoactions'] = true;
- }
- if ($show['autoactions'])
- {
- $label = '';
- $value = 0;
- $selected = true;
- eval('$select[autoaction] = "' . $bugsys->template->fetch('selectoption') . '" . $select[autoaction];');
- }
-
- eval('$template->flush("' . $template->fetch('editreport') . '");');
-}
-
/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
'SHOWREPORT',
'showreport_attachment',
'showreport_comment',
- 'quicksearch'
+ 'quicksearch',
+ 'pcv_select_row'
);
define('SVN', '$Id$');
$message->error_permission();
}
+$show['edit'] = (((can_perform('caneditown') AND $bugsys->userinfo['userid'] == $bug['userid']) OR can_perform('caneditothers')) AND can_perform('caneditinfo')) ? true : false;
+
$bugid = intval($bugsys->in['bugid']);
// ###################################################################
// -------------------------------------------------------------------
// get the report
$bug = $db->query_first("
- SELECT bug.*, user.displayname, user.email, user.showemail
+ SELECT bugvaluefill.*, bug.*, user.email, user.displayname, user.showemail
FROM " . TABLE_PREFIX . "bug AS bug
LEFT JOIN " . TABLE_PREFIX . "user AS user
ON (bug.userid = user.userid)
+ LEFT JOIN " . TABLE_PREFIX . "bugvaluefill AS bugvaluefill
+ ON (bug.bugid = bugvaluefill.bugid)
WHERE bug.bugid = " . intval($bugsys->in['bugid'])
);
$message->error_permission();
}
-// -------------------------------------------------------------------
-// prep display
-$bug['userinfo'] = construct_user_display($bug);
-$bug['product'] = $bugsys->datastore['product']["$bug[productid]"]['title'];
-$bug['component'] = (($bug['componentid']) ? $bugsys->datastore['product']["$bug[componentid]"]['title'] : '');
-$bug['version'] = $bugsys->datastore['version']["$bug[versionid]"]['version'];
-$bug['status'] = $bugsys->datastore['status']["$bug[status]"]['status'];
-$bug['resolution'] = $bugsys->datastore['resolution']["$bug[resolution]"]['resolution'];
-$bug['severity'] = $bugsys->datastore['severity']["$bug[severity]"]['severity'];
-$bug['priority'] = $bugsys->datastore['priority']["$bug[priority]"]['priority'];
-
-$assigninfo = $bugsys->datastore['assignto']["$bug[assignedto]"];
-$bug['assigninfo'] = ((is_array($assigninfo)) ? construct_user_display($assigninfo) : '');
-
-$show['editreport'] = ((((can_perform('caneditown') AND $bugsys->userinfo['userid'] == $comment['userid']) OR can_perform('caneditothers')) AND can_perform('caneditinfo')) ? true : false);
-
-$duplicateof = $db->query_first("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]");
-
-$duplicates = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE duplicateof = $bug[bugid]");
-while ($duplicate = $db->fetch_array($duplicates))
-{
- $dupelist[] = "<a href=\"showreport.php?bugid=$duplicate[bugid]\" target=\"_blank\">$duplicate[summary]</a>";
-}
-$dupelist = implode(', ', $dupelist);
-
-if ($bug['dependency'])
-{
- $dependencies = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid IN ($bug[dependency])");
- while ($dependency = $db->fetch_array($dependencies))
- {
- $depends[] = "<a href=\"showreport.php?bugid=$dependency[bugid]\" title=\"$dependency[summary]\" target=\"_blank\">$dependency[bugid]</a>";
- }
- $dependencies = implode(' ', $depends);
-}
+// ###################################################################
+// global display items
$favourite = (bool)$db->query_first("SELECT * FROM " . TABLE_PREFIX . "favourite WHERE bugid = $bug[bugid] AND userid = " . $bugsys->userinfo['userid']);
$favouritetext = (($favourite) ? 'Remove from Favourites' : 'Add to Favourites');
-// -------------------------------------------------------------------
-// custom fields
-$customfields = '';
-$allfields = $db->query("
- SELECT bugfield.*
- FROM " . TABLE_PREFIX . "bugfield AS bugfield
- LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission
- ON (bugfield.fieldid = permission.fieldid)
- WHERE permission.mask <> 0
- AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}"
-);
-while ($field = $db->fetch_array($allfields))
+// ###################################################################
+// edit display
+if ($show['edit'])
{
- $fieldlist["$field[fieldid]"] = $field;
+ $select['severity'] = construct_datastore_select('severity', 'severity', 'severityid', $bug['severity']);
+
+ $show['changestatus'] = ((can_perform('canchangestatus')) ? true : false);
+ if (can_perform('canchangestatus'))
+ {
+ $select['priority'] = construct_datastore_select('priority', 'priority', 'priorityid', $bug['priority']);
+ $select['status'] = construct_datastore_select('status', 'status', 'statusid', $bug['status']);
+ $select['resolution'] = construct_datastore_select('resolution', 'resolution', 'resolutionid', $bug['resolution']);
+ }
+
+ $show['assign'] = ((can_perform('canassign')) ? true : false);
+ if (can_perform('canassign'))
+ {
+ foreach ($bugsys->datastore['assignto'] AS $dev)
+ {
+ $value = $dev['userid'];
+ $selected = (($dev['userid'] == $bug['assignedto']) ? true : false);
+ $label = construct_user_display($dev, false);
+ eval('$select[dev] .= "' . $template->fetch('selectoption') . '";');
+ }
+ }
+
+ $pcv_select = construct_pcv_select("p$bug[productid]c$bug[componentid]v$bug[versionid]");
+
+ $firstcomment = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "comment WHERE bugid = $bug[bugid] ORDER BY dateline ASC LIMIT 1");
+
+ $customfields = construct_custom_fields($bug);
+
+ if ($bug['duplicateof'])
+ {
+ $duplicate = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]");
+ }
+
+ if ($bug['dependency'])
+ {
+ $dependencies = $db->query("SELECT * FROM " . TABLE_PREFIX . "bug WHERE bugid IN ($bug[dependency])");
+ while ($dependency = $db->fetch_array($dependencies))
+ {
+ $depends[] = "<a href=\"showreport.php?bugid=$dependency[bugid]\" title=\"$dependency[summary]\">$dependency[bugid]</a>";
+ }
+ $dependencies = implode(' ', $depends);
+ }
+
+ $actions = $db->query("SELECT * FROM " . TABLE_PREFIX . "autoaction ORDER BY name ASC");
+ $select['autoactions'] = '';
+ $show['autoactions'] = false;
+ while ($action = $db->fetch_array($actions))
+ {
+ $label = $action['name'];
+ $value = $action['actionid'];
+ $selected = false;
+ eval('$select[autoaction] .= "' . $bugsys->template->fetch('selectoption') . '";');
+ $show['autoactions'] = true;
+ }
+ if ($show['autoactions'])
+ {
+ $label = '';
+ $value = 0;
+ $selected = true;
+ eval('$select[autoaction] = "' . $bugsys->template->fetch('selectoption') . '" . $select[autoaction];');
+ }
}
-$fieldvalues = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]");
-
-foreach ($fieldlist AS $fieldid => $field)
+// ###################################################################
+// non-edit display
+else
{
- if (is_null($fieldvalues["field$fieldid"]))
+ // -------------------------------------------------------------------
+ // prep display
+ $bug['userinfo'] = construct_user_display($bug);
+ $bug['product'] = $bugsys->datastore['product']["$bug[productid]"]['title'];
+ $bug['component'] = (($bug['componentid']) ? $bugsys->datastore['product']["$bug[componentid]"]['title'] : '');
+ $bug['version'] = $bugsys->datastore['version']["$bug[versionid]"]['version'];
+ $bug['status'] = $bugsys->datastore['status']["$bug[status]"]['status'];
+ $bug['resolution'] = $bugsys->datastore['resolution']["$bug[resolution]"]['resolution'];
+ $bug['severity'] = $bugsys->datastore['severity']["$bug[severity]"]['severity'];
+ $bug['priority'] = $bugsys->datastore['priority']["$bug[priority]"]['priority'];
+
+ $assigninfo = $bugsys->datastore['assignto']["$bug[assignedto]"];
+ $bug['assigninfo'] = ((is_array($assigninfo)) ? construct_user_display($assigninfo) : '');
+
+ $show['editreport'] = ((((can_perform('caneditown') AND $bugsys->userinfo['userid'] == $comment['userid']) OR can_perform('caneditothers')) AND can_perform('caneditinfo')) ? true : false);
+
+ $duplicateof = $db->query_first("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid = $bug[duplicateof]");
+
+ $duplicates = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE duplicateof = $bug[bugid]");
+ while ($duplicate = $db->fetch_array($duplicates))
{
- if ($field['type'] == 'select_single')
+ $dupelist[] = "<a href=\"showreport.php?bugid=$duplicate[bugid]\" target=\"_blank\">$duplicate[summary]</a>";
+ }
+ $dupelist = implode(', ', $dupelist);
+
+ if ($bug['dependency'])
+ {
+ $dependencies = $db->query("SELECT bugid, summary FROM " . TABLE_PREFIX . "bug WHERE bugid IN ($bug[dependency])");
+ while ($dependency = $db->fetch_array($dependencies))
{
- if ($field['usedefault'])
+ $depends[] = "<a href=\"showreport.php?bugid=$dependency[bugid]\" title=\"$dependency[summary]\" target=\"_blank\">$dependency[bugid]</a>";
+ }
+ $dependencies = implode(' ', $depends);
+ }
+
+ // -------------------------------------------------------------------
+ // custom fields
+ $customfields = '';
+
+ $allfields = $db->query("
+ SELECT bugfield.*
+ FROM " . TABLE_PREFIX . "bugfield AS bugfield
+ LEFT JOIN " . TABLE_PREFIX . "bugfieldpermission AS permission
+ ON (bugfield.fieldid = permission.fieldid)
+ WHERE permission.mask <> 0
+ AND permission.usergroupid = {$bugsys->userinfo['usergroupid']}"
+ );
+ while ($field = $db->fetch_array($allfields))
+ {
+ $fieldlist["$field[fieldid]"] = $field;
+ }
+
+ $fieldvalues = $db->query_first("SELECT * FROM " . TABLE_PREFIX . "bugvaluefill WHERE bugid = $bug[bugid]");
+
+ foreach ($fieldlist AS $fieldid => $field)
+ {
+ if (is_null($fieldvalues["field$fieldid"]))
+ {
+ if ($field['type'] == 'select_single')
{
- $temp = unserialize($field['selects']);
- $value = trim($temp[0]);
+ if ($field['usedefault'])
+ {
+ $temp = unserialize($field['selects']);
+ $value = trim($temp[0]);
+ }
+ else
+ {
+ continue;
+ }
}
else
{
- continue;
+ $value = $field['defaultvalue'];
}
}
else
{
- $value = $field['defaultvalue'];
+ $value = $fieldvalues["field$fieldid"];
}
+
+ $customfields .= "<div><strong>$field[name]:</strong> ";
+
+ if ($field['type'] == 'input_text' OR $field['type'] == 'select_single')
+ {
+ $customfields .= $value;
+ }
+ else if ($field['type'] == 'input_checkbox')
+ {
+ $customfields .= (($value) ? 'True' : 'False');
+ }
+ $customfields .= "</div>\n\n";
}
- else
- {
- $value = $fieldvalues["field$fieldid"];
- }
-
- $customfields .= "<div><strong>$field[name]:</strong> ";
-
- if ($field['type'] == 'input_text' OR $field['type'] == 'select_single')
- {
- $customfields .= $value;
- }
- else if ($field['type'] == 'input_checkbox')
- {
- $customfields .= (($value) ? 'True' : 'False');
- }
- $customfields .= "</div>\n\n";
}
+// ###################################################################
+// other elements
+
// -------------------------------------------------------------------
// hilight
$words = explode(' ', $bugsys->in['hilight']);
$headinclude
$header
-<if condition="$bug['hidden']"><div><strong style="color: red">This bug is hidden!</strong></div></if>
+<form name="bugreport" action="editreport.php" method="post">
+<input type="hidden" name="do" value="update" />
+<input type="hidden" name="bugid" value="$bug[bugid]" />
+
+<if condition="$show['edit']">
+ <div><strong<if condition="$bug['hidden']"> style="color: red"</if>>Hidden:</strong> <input type="checkbox" name="hidden" value="1"<if condition="$bug['hidden']"> checked="checked"</if> /></div>
+<else />
+ <if condition="$bug['hidden']"><div><strong style="color: red">This bug is hidden!</strong></div></if>
+</if>
<div><strong>Bug ID:</strong> $bug[bugid]</div>
<div><strong>Reported by:</strong> $bug[userinfo]</div>
-<div><strong>Product:</strong> $bug[product] <if condition="$bug['componentid']">/ <strong>Component:</strong> $bug[component]</if> / <strong>Version:</strong> $bug[version]</div>
-<div><strong>Title / summary:</strong> $bug[summary]</div>
-<div><strong>Status:</strong> $bug[status] / <strong>Resolution:</strong> $bug[resolution]</div>
-<div><strong>Severity:</strong> $bug[severity]</div>
-<div><strong>Priority:</strong> $bug[priority]</div>
-<if condition="$bug['assigninfo']"><div><strong>Assigned to:</strong> $bug[assigninfo]</div></if>
-<if condition="$bug['duplicateof']"><div><strong>Duplicate of:</strong> <a href="showreport.php?bugid=$bug[duplicateof]">$duplicateof[summary]</a></div></if>
-<if condition="$dupelist"><div><strong>Bugs marked as duplicates of this:</strong> $dupelist</div></if>
-<if condition="$dependencies"><div><strong>Dependencies:</strong> $dependencies</div></if>
-
-$customfields
-
-<div>[<a href="showhistory.php?bugid=$bug[bugid]">Show Bug History</a>]<if condition="$show['editreport']"> [<a href="editreport.php?bugid=$bug[bugid]">Edit Bug Report</a>]</if><if condition="$bugsys->userinfo['userid']"> [<a href="favourite.php?do=handle&bugid=$bug[bugid]">$favouritetext</a>]</div>
+
+<if condition="$show['edit']">
+ <div><strong>Summary/Title:</strong> <input type="text" name="summary" size="25" value="$bug[summary]" /></div>
+ <div><strong>Severity:</strong> <select name="severity">$select[severity]</select></div>
+
+ <if condition="$show['changestatus']">
+ <div><strong>Priority:</strong> <select name="priority">$select[priority]</select></div>
+ <div><strong>Status:</strong> <select name="status">$select[status]</select></div>
+ <div><strong>Resolution:</strong> <select name="resolution">$select[resolution]</select></div>
+ </if>
+
+ <if condition="$show['assign']">
+ <div><strong>Assigned to:</strong> <select name="assignedto"><option value="0"<if condition="!$bug['assignedto']"> selected="selected"</if>>No Assignment</option>$select[dev]</select></div>
+ </if>
+
+ <div><strong>Duplicate of:</strong> <input type="text" name="duplicateof" size="10" value="<if condition="$bug['duplicateof']">$bug[duplicateof]</if>" /> <if condition="$bug['duplicateof']"><a href="showreport.php?bugid=$bug[duplicateof]" target="_blank">$duplicate[summary]</a></if></div>
+
+ <div><strong>Dependencies:</strong> <input type="text" name="dependency" size="25" value="$bug[dependency]" /> $dependencies</div>
+
+ <div><strong>Product/Component/Version:</strong>
+ <div>$pcv_select</div>
+ </div>
+
+ <div><strong>Automatic Response Action:</strong>
+ <div><select name="autoaction">$select[autoaction]</select></div>
+ </div>
+
+ $customfields
+<else />
+ <div><strong>Product:</strong> $bug[product] <if condition="$bug['componentid']">/ <strong>Component:</strong> $bug[component]</if> / <strong>Version:</strong> $bug[version]</div>
+ <div><strong>Title / summary:</strong> $bug[summary]</div>
+ <div><strong>Status:</strong> $bug[status] / <strong>Resolution:</strong> $bug[resolution]</div>
+ <div><strong>Severity:</strong> $bug[severity]</div>
+ <div><strong>Priority:</strong> $bug[priority]</div>
+ <if condition="$bug['assigninfo']"><div><strong>Assigned to:</strong> $bug[assigninfo]</div></if>
+ <if condition="$bug['duplicateof']"><div><strong>Duplicate of:</strong> <a href="showreport.php?bugid=$bug[duplicateof]">$duplicateof[summary]</a></div></if>
+ <if condition="$dupelist"><div><strong>Bugs marked as duplicates of this:</strong> $dupelist</div></if>
+ <if condition="$dependencies"><div><strong>Dependencies:</strong> $dependencies</div></if>
+ $customfields
+</if>
+
+<div><input type="submit" name="submit" value="Save Changes" /></div>
+</form>
+
+<div>[<a href="showhistory.php?bugid=$bug[bugid]">Show Bug History</a>]<if condition="$bugsys->userinfo['userid']"> [<a href="favourite.php?do=handle&bugid=$bug[bugid]">$favouritetext</a>]</div>
<br />