| 
      
      
      From: Benjamin C. <bc...@us...> - 2001-07-11 03:36:07
      
     | 
| Update of /cvsroot/phpbt/phpbt
In directory usw-pr-cvs1:/tmp/cvs-serv18468
Modified Files:
	createdb.sql query.php 
Log Message:
Allow users to save queries
Index: createdb.sql
===================================================================
RCS file: /cvsroot/phpbt/phpbt/createdb.sql,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- createdb.sql	2001/02/03 18:15:52	1.2
+++ createdb.sql	2001/07/11 03:36:04	1.3
@@ -188,6 +188,19 @@
 insert into db_sequence values ('Resolution', 6);
 
 #
+# Table structure for table 'SavedQuery'
+#
+
+DROP TABLE IF EXISTS SavedQuery;
+CREATE TABLE SavedQuery (
+   SavedQueryID int(10) unsigned NOT NULL auto_increment,
+   UserID int(10) unsigned DEFAULT '0' NOT NULL,
+   SavedQueryName varchar(40) NOT NULL,
+   SavedQueryString text NOT NULL,
+   PRIMARY KEY (SavedQueryID, UserID)
+);
+
+#
 # Table structure for table 'Severity'
 #
 
@@ -269,7 +282,3 @@
   PRIMARY KEY (name,sid),
   KEY changed (changed)
 );
-
-# Upgrading from 0.1.2 to 0.1.3
-# alter table Bug add LastModifiedBy int(10) unsigned DEFAULT '0' NOT NULL after CreatedDate, add LastModifiedDate bigint(20) unsigned DEFAULT '0' NOT NULL after LastModifiedBy;
-# alter table Version change Version Name char (10) DEFAULT '' NOT NULL;
Index: query.php
===================================================================
RCS file: /cvsroot/phpbt/phpbt/query.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- query.php	2001/07/10 14:00:44	1.6
+++ query.php	2001/07/11 03:36:04	1.7
@@ -5,14 +5,23 @@
 include 'include.php';
 
 page_open(array('sess' => 'usess', 'auth' => 'uauth'));
+$u = $auth->auth['uid'];
 
+function delete_saved_query($queryid) {
+	global $q, $u, $me;
+	
+	$q->query("delete from SavedQuery where UserID = $u and SavedQueryID = $queryid");
+	header("Location: $me?op=query");
+}
+
 function show_query() {
-  global $q, $t, $status, $resolution, $os, $priority, $severity, $TITLE;
+  global $q, $t, $status, $resolution, $os, $priority, $severity, $TITLE, $u;
   
   $nq = new dbclass;
   
   $t->set_file('content','queryform.html');
-  
+	$t->set_block('content','row','rows');
+	 
   // Build the javascript-powered select boxes
   $q->query("select ProjectID, Name from Project where Active order by Name");
   while (list($pid, $pname) = $q->grab()) {
@@ -34,6 +43,21 @@
     if (substr($js,-1) == ',') $js = substr($js,0,-1);
     $js .= ");\n";
   }
+	
+	// Grab the saved queries if there are any
+	$q->query("select * from SavedQuery where UserID = $u");
+	if (!$q->num_rows()) {
+		$t->set_var('rows','');
+	} else {
+		while ($row = $q->grab()) {
+			$t->set_var(array(
+				'savedquerystring' => $row['SavedQueryString'],
+				'savedqueryname' => stripslashes($row['SavedQueryName']),
+				'savedqueryid' => $row['SavedQueryID']
+				));
+			$t->parse('rows', 'row', true);
+		}
+	}
   
   $t->set_var(array(
     'js' => $js,
@@ -109,11 +133,16 @@
 
 function list_items($showmybugs = false) {
   global $querystring, $me, $q, $t, $selrange, $order, $sort, $query, 
-    $page, $op, $select, $TITLE, $STRING;
+    $page, $op, $select, $TITLE, $STRING, $savedqueryname, $u;
 
   $t->set_file('content','buglist.html');
   $t->set_block('content','row','rows');
   
+	// Save the query if requested
+	if ($savedqueryname) {
+		$savedquerystring = ereg_replace('&savedqueryname=.*(&?)', '\\1', $GLOBALS['QUERY_STRING']);
+		$q->query("insert into SavedQuery (UserID, SavedQueryName, SavedQueryString) values ($u, '$savedqueryname', '$savedquerystring')");
+	}
   if (!$order) { $order = 'BugID'; $sort = 'asc'; }
   if (!$querystring or $op) build_query($showmybugs);
   $nr = $q->grab_field("select count(*) from Bug left join User Owner on 
@@ -195,6 +224,7 @@
 if ($op) switch($op) {
 	case 'query' : show_query(); break;
 	case 'doquery' : list_items(); break;
+	case 'delquery' : delete_saved_query($queryid); break;
 	case 'mybugs' : list_items(true); break;
 	default : show_query(); break;
 }
 |