Add search attribute to search by reference

This commit is contained in:
Frederic Guillot
2015-07-04 17:35:52 -04:00
parent 0e5756ecc1
commit 198f3eda90
5 changed files with 90 additions and 0 deletions

View File

@@ -33,6 +33,8 @@ class Lexer
"/^(category:)/" => 'T_CATEGORY',
"/^(column:)/" => 'T_COLUMN',
"/^(project:)/" => 'T_PROJECT',
"/^(ref:)/" => 'T_REFERENCE',
"/^(reference:)/" => 'T_REFERENCE',
"/^(\s+)/" => 'T_WHITESPACE',
'/^([<=>]{0,2}[0-9]{4}-[0-9]{2}-[0-9]{2})/' => 'T_DATE',
'/^(yesterday|tomorrow|today)/' => 'T_DATE',
@@ -124,6 +126,7 @@ class Lexer
case 'T_STATUS':
case 'T_DUE':
case 'T_DESCRIPTION':
case 'T_REFERENCE':
$next = next($tokens);
if ($next !== false && ($next['token'] === 'T_DATE' || $next['token'] === 'T_STRING')) {

View File

@@ -68,6 +68,9 @@ class TaskFilter extends Base
case 'T_COLUMN':
$this->filterByColumnName($value);
break;
case 'T_REFERENCE':
$this->filterByReference($value);
break;
}
}
@@ -140,6 +143,22 @@ class TaskFilter extends Base
return $this;
}
/**
* Filter by reference
*
* @access public
* @param string $reference
* @return TaskFilter
*/
public function filterByReference($reference)
{
if (! empty($reference)) {
$this->query->eq(Task::TABLE.'.reference', $reference);
}
return $this;
}
/**
* Filter by title
*