[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