|
From: Benjamin C. <bc...@us...> - 2001-07-10 14:00:47
|
Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv6103
Modified Files:
bug.php include.php query.php
Log Message:
Added link for personal bug list to query form
Index: bug.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/bug.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- bug.php 2001/07/02 00:55:24 1.9
+++ bug.php 2001/07/10 14:00:44 1.10
@@ -94,7 +94,7 @@
if ($userid != ($cf['AssignedTo'] ? $cf['AssignedTo'] : $buginfo['AssignedTo']))
$maillist[] = $assignedto;
// Leter add a watcher (such as QA person) check here
- $toemail = join(', ',$maillist);
+ $toemail = delimit_list(', ',$maillist);
$t->set_var(array(
'bugid' => $buginfo['BugID'],
Index: include.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/include.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- include.php 2001/07/10 03:15:20 1.9
+++ include.php 2001/07/10 14:00:44 1.10
@@ -346,4 +346,13 @@
return $h;
}
+///
+/// Return a delimited list if there is more than one element in $ary, otherwise
+/// return the lone element as the list
+function delimit_list($delimiter, $ary) {
+ if ($ary[1]) return join($delimiter, $ary);
+ elseif ($ary[0]) return ($ary[0]);
+ else return '';
+}
+
?>
Index: query.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/query.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- query.php 2001/07/02 00:41:49 1.5
+++ query.php 2001/07/10 14:00:44 1.6
@@ -44,70 +44,78 @@
'priority' => build_select('priority',$priority),
'severity' => build_select('Severity',$severity),
'projects' => build_select('Project'),
- 'TITLE' => $TITLE[bugquery]
+ 'TITLE' => $TITLE['bugquery']
));
}
-function build_query() {
- global $q, $sess, $querystring, $status, $resolution, $os, $priority,
+function build_query($showmybugs = false) {
+ global $q, $sess, $auth, $querystring, $status, $resolution, $os, $priority,
$severity, $email1, $emailtype1, $emailfield1, $Title, $Description, $URL,
$Title_type, $Description_type, $URL_type, $projects, $versions, $components;
- // Select boxes
- if ($status) $flags[] = 'Status in ('.join(',',$status).')';
- if ($resolution) $flags[] = 'Resolution in ('.join(',',$resolution).')';
- if ($os) $flags[] = 'OS in ('.join(',',$os).')';
- if ($priority) $flags[] = 'Priority in ('.join(',',$priority).')';
- if ($severity) $flags[] = 'Severity in ('.join(',',$severity).')';
- if ($flags) $query[] = '('.join(' or ',$flags).')';
-
- // Email field(s)
- if ($email1) {
- switch($emailtype1) {
- case 'like' : $econd = "like '%$email1%'"; break;
- case 'rlike' :
- case 'not rlike' :
- case '=' : $econd = "$emailtype1 '$email1'"; break;
- }
- foreach($emailfield1 as $field) $equery[] = "$field.Email $econd";
- $query[] = '('.join(' or ',$equery).')';
- }
-
- // Text search field(s)
- foreach(array('Title','Description','URL') as $searchfield) {
- if ($$searchfield) {
- switch (${$searchfield."_type"}) {
- case 'like' : $cond = "like '%".$$searchfield."%'"; break;
- case 'rlike' : $cond = "rlike '".$$searchfield."'"; break;
- case 'not rlike' :$cond = "not rlike '".$$searchfield."'"; break;
- }
- $fields[] = "$searchfield $cond";
- }
- }
- if ($fields) $query[] = '('.join(' or ',$fields).')';
-
- // Project/Version/Component
- if ($projects) {
- $proj[] = "Bug.Project = $projects";
- if ($versions) $proj[] = "Bug.Version = $versions";
- if ($components) $proj[] = "Component = $components";
- $query[] = '('.join(' and ',$proj).')';
+ // Open bugs assigned to the user -- a hit list
+ if ($showmybugs) {
+ $q->query("select StatusID from Status where Name in ('Unconfirmed', 'New', 'Assigned', 'Reopened')");
+ while ($statusid = $q->grab_field()) $status[] = $statusid;
+ $query[] = 'Status in ('.delimit_list(',',$status).')';
+ $query[] = "AssignedTo = {$auth->auth['uid']}";
+ } else {
+ // Select boxes
+ if ($status) $flags[] = 'Status in ('.delimit_list(',',$status).')';
+ if ($resolution) $flags[] = 'Resolution in ('.delimit_list(',',$resolution).')';
+ if ($os) $flags[] = 'OS in ('.delimit_list(',',$os).')';
+ if ($priority) $flags[] = 'Priority in ('.delimit_list(',',$priority).')';
+ if ($severity) $flags[] = 'Severity in ('.delimit_list(',',$severity).')';
+ if ($flags) $query[] = '('.delimit_list(' or ',$flags).')';
+
+ // Email field(s)
+ if ($email1) {
+ switch($emailtype1) {
+ case 'like' : $econd = "like '%$email1%'"; break;
+ case 'rlike' :
+ case 'not rlike' :
+ case '=' : $econd = "$emailtype1 '$email1'"; break;
+ }
+ foreach($emailfield1 as $field) $equery[] = "$field.Email $econd";
+ $query[] = '('.delimit_list(' or ',$equery).')';
+ }
+
+ // Text search field(s)
+ foreach(array('Title','Description','URL') as $searchfield) {
+ if ($$searchfield) {
+ switch (${$searchfield."_type"}) {
+ case 'like' : $cond = "like '%".$$searchfield."%'"; break;
+ case 'rlike' : $cond = "rlike '".$$searchfield."'"; break;
+ case 'not rlike' :$cond = "not rlike '".$$searchfield."'"; break;
+ }
+ $fields[] = "$searchfield $cond";
+ }
+ }
+ if ($fields) $query[] = '('.delimit_list(' or ',$fields).')';
+
+ // Project/Version/Component
+ if ($projects) {
+ $proj[] = "Bug.Project = $projects";
+ if ($versions) $proj[] = "Bug.Version = $versions";
+ if ($components) $proj[] = "Component = $components";
+ $query[] = '('.delimit_list(' and ',$proj).')';
+ }
}
-
- if ($query) $querystring = join (' and ',$query);
+
+ if ($query) $querystring = delimit_list(' and ',$query);
if (!$sess->is_registered('querystring')) $sess->register('querystring');
}
-function list_items() {
+function list_items($showmybugs = false) {
global $querystring, $me, $q, $t, $selrange, $order, $sort, $query,
$page, $op, $select, $TITLE, $STRING;
-
+
$t->set_file('content','buglist.html');
$t->set_block('content','row','rows');
if (!$order) { $order = 'BugID'; $sort = 'asc'; }
- if (!$querystring or $op == 'doquery') build_query();
+ if (!$querystring or $op) build_query($showmybugs);
$nr = $q->grab_field("select count(*) from Bug left join User Owner on
Bug.AssignedTo = Owner.UserID left join User Reporter on
Bug.CreatedBy = Reporter.UserID ".($querystring != '' ? "where $querystring": ''));
@@ -184,7 +192,12 @@
$t->set_file('wrap','wrap.html');
-if ($op == 'query') show_query();
+if ($op) switch($op) {
+ case 'query' : show_query(); break;
+ case 'doquery' : list_items(); break;
+ case 'mybugs' : list_items(true); break;
+ default : show_query(); break;
+}
else list_items();
$t->pparse('main',array('content','wrap','main'));
|