[evolvis-commits] r17780: [#2160] messer-suche pending merges:↵ Thorsten Glaser 2011-12-06 integrate Mike’s latest fixkit

mirabilos at evolvis.org mirabilos at evolvis.org
Tue Dec 6 20:26:28 CET 2011


Author: mirabilos
Date: 2011-12-06 20:26:28 +0100 (Tue, 06 Dec 2011)
New Revision: 17780

Modified:
   trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/ASFusionForgeParser.class.php
   trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/AdvancedSearch.class.php
   trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/FusionForgeDFIProvider.class.php
   trunk/gforge_base/evolvisforge-5.1/src/www/tracker/browse.php
Log:
[#2160] messer-suche pending merges:
  Thorsten Glaser 2011-12-06 integrate Mike’s latest fixkit


Modified: trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/ASFusionForgeParser.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/ASFusionForgeParser.class.php	2011-12-06 19:26:24 UTC (rev 17779)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/ASFusionForgeParser.class.php	2011-12-06 19:26:28 UTC (rev 17780)
@@ -48,7 +48,7 @@
 		$this->tokens = ASTokenizer::tokenize($inputString, $params);
 
 		if($this->tokens === false) {
-			return null;
+			return false;
 		}
 
 		//Go trough all tokens and build the query
@@ -59,9 +59,12 @@
 
 		//Check if the first token is an DFI. If not return an error.
 		if($curToken->getType() !== EASToken::AS_DFI) {
-			return false;
+			return "Invalid Syntax";
 		}
 
+		// Variable for error checking in language
+		$lastToken = null;
+
 		while(!$bDone) {
 			$curType = $curToken->getType();
 
@@ -74,14 +77,22 @@
 				   $dfiName == 'Open Date'   ||
 				   $dfiName == 'Close Date'  ||
 				   $dfiName == 'Assigned to' ||
-				   $dfiName == 'Submitted by') {
+				   $dfiName == 'Submitted by' ||
+				   $dfiName == 'Priority' ||
+				   $dfiName == 'Status') {
 					//Get the next token. This has to be an operator!
 					$curTokenPointer++;
 					$curToken = $this->tokens[$curTokenPointer];
 					$curType  = $curToken->getType();
 
 					//We go a Standard field. Standard fields are not stored as extra fields!
-					$wheresql .= $this->_generateStdFieldWhereSQL($dfiName, $curType, &$curTokenPointer, &$paramcount, &$params);
+					$temp = $this->_generateStdFieldWhereSQL($dfiName, $curType, &$curTokenPointer, &$paramcount, &$params);
+
+					if ($temp === false) {
+						return "Invalid Syntax";
+					}
+
+					$wheresql .= $temp;
 				} else {
 					//We got an extra field. First get it's id.
 					$result = db_query_params('SELECT extra_field_id FROM artifact_extra_field_list WHERE group_artifact_id=$1 AND field_name=$2;',
@@ -150,6 +161,8 @@
 
 							$wheresql .= ' AND aefd'.$extraFieldCounter.'.field_data LIKE $'.$paramcount++;
 							$params[] = $curToken->getData();
+						} else {
+							return "Invalid Syntax";
 						}
 					} else {
 						//We got any other type. Mostly this types are
@@ -235,11 +248,16 @@
 								             ' AND element_name=$'.$paramcount++.')';
 								$params[] = $curToken->getData();
 							}
+						} else {
+							//Invalid input. Return invalid syntax error.
 						}
 					}
 					$wheresql .= ' AND aefd'.$extraFieldCounter.'.artifact_id=artifact_vw.artifact_id)';
 					$extraFieldCounter++;
 				}
+			} else {
+				//This is an invalid input. Return invalid syntax error.
+				return "Invalid Syntax";
 			}
 
 			$curTokenPointer++;
@@ -298,22 +316,22 @@
 		//      and the input has to be converted if we use greater less or equals.
 		//      It also seems like there is no possibility for a custom field to be a date field.
 
-		if($fieldName == 'ID') {
+		if ($fieldName == 'ID') {
 			$field_alias = 'artifact_id';
-		}
-		else if($fieldName == 'Submitted by') {
+		} else if ($fieldName == 'Submitted by') {
 			$field_alias = 'submitted_realname';
-		}
-		else if($fieldName == 'Assigned to') {
+		} else if ($fieldName == 'Assigned to') {
 			$field_alias = 'assigned_realname';
-		}
-		else if($fieldName == 'Open Date') {
+		} else if ($fieldName == 'Open Date') {
 			$is_date = true;
 			$field_alias = 'open_date';
-		}
-		else if($fieldName == 'Close Date') {
+		} else if ($fieldName == 'Close Date') {
 			$is_date = true;
 			$field_alias = 'close_date';
+		} else if ($fieldName == 'Priority') {
+			$field_alias = 'priority';
+		} else if (fieldName == 'Status') {
+			$field_alias = 'status_name';
 		}
 
 		if($curType === EASToken::AS_OP_EQUALS) {
@@ -384,6 +402,8 @@
 			}
 
 			$params[] = $curToken->getData();
+		} else {
+			return false;
 		}
 
 		return $wheresql;

Modified: trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/AdvancedSearch.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/AdvancedSearch.class.php	2011-12-06 19:26:24 UTC (rev 17779)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/AdvancedSearch.class.php	2011-12-06 19:26:28 UTC (rev 17780)
@@ -28,7 +28,7 @@
 <script language="JavaScript" type="text/javascript">//<![CDATA[
 	jQuery(function() {
 		function split(val) {
-			return val.split(/\s*/);
+			return val.split(" ");
 		}
 		function extractLast(term) {
 			return split(term).pop();

Modified: trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/FusionForgeDFIProvider.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/FusionForgeDFIProvider.class.php	2011-12-06 19:26:24 UTC (rev 17779)
+++ trunk/gforge_base/evolvisforge-5.1/src/common/advanced_search/FusionForgeDFIProvider.class.php	2011-12-06 19:26:28 UTC (rev 17780)
@@ -35,12 +35,6 @@
 	 * @param type $params extra parameters.
 	 */
 	public function scanAll($params) {
-		/*$tracker_id = $params['tracker_id'];
-
-		$sql = "SELECT field_name, alias FROM artifact_extra_field_list WHERE group_artifact_id = $1";
-		$result = db_query_params($sql, array($tracker_id));
-
-		//Write the result into*/
 	}
 
 	/**
@@ -52,11 +46,15 @@
 	public function getDFIList($params) {
 		$tracker_id = $params['tracker_id'];
 		//Don't forget the Standard fields.
-		$result	 = array(array('ID', 'artifact_id'),
-			    array('Open Date', 'open_date'),
-			    array('Close Date', 'close_date'),
-			    array('Assigned to', 'assigned_to'),
-			    array('Submitted by', 'submitted_by'));
+		$result	 = array(
+			array('ID', 'artifact_id'),
+			array('Open Date', 'open_date'),
+			array('Close Date', 'close_date'),
+			array('Assigned to', 'assigned_to'),
+			array('Submitted by', 'submitted_by'),
+			array('Priority', 'priority'),
+			array('Status', 'status_name'),
+		    );
 
 		$sql = "SELECT field_name, alias FROM artifact_extra_field_list WHERE group_artifact_id = $1";
 		$dbRes = db_query_params($sql, array($tracker_id));

Modified: trunk/gforge_base/evolvisforge-5.1/src/www/tracker/browse.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/src/www/tracker/browse.php	2011-12-06 19:26:24 UTC (rev 17779)
+++ trunk/gforge_base/evolvisforge-5.1/src/www/tracker/browse.php	2011-12-06 19:26:28 UTC (rev 17780)
@@ -299,6 +299,7 @@
  */
 $curSearch = getStringFromRequest('advanced_search');
 $queryName = _('Query Name');
+$oldArt    = $art_arr;
 
 if (getIntFromRequest('load_request')) {
 
@@ -320,7 +321,10 @@
 	$art_arr = $parser->parse($curSearch, $ath);
 
 	if ($art_arr === false) {
-		$art_arr = null;
+		$art_arr = $oldArt;
+	} else if ($art_arr === "Invalid Syntax") {
+		$art_arr = $oldArt;
+		echo "<strong>Invalid Syntax! Syntax: [Field Name] [Operator] [Data] [and/or] for example \"Submitted by like Schmitz%\"</strong>";
 	}
 
 	if (getStringFromRequest('save_advanced_query') === 'true') {



More information about the evolvis-commits mailing list