'form' => $form,␊ |
'page_title' => $title,␊ |
'preview' => $preview,␊ |
'issue' => new IDF_Issue(),␊ |
),␊ |
self::autoCompleteArrays($prj)␊ |
);␊ |
|
public function autoCompleteIssueList($request, $match)␊ |
{␊ |
$prj = $request->project;␊ |
$issue_id = !empty($match[2]) ? intval($match[2]) : 0;␊ |
$query = trim($request->REQUEST['q']);␊ |
$limit = !empty($request->REQUEST['limit']) ? intval($request->REQUEST['limit']) : 0;␊ |
$limit = max(10, $limit);␊ |
␊ |
$issues = array();␊ |
␊ |
// empty search, return the most recently updated issues␊ |
if (empty($query)) {␊ |
$sql = new Pluf_SQL('project=%s', array($prj->id));␊ |
$tmp = Pluf::factory('IDF_Issue')->getList(array(␊ |
'filter' => $sql->gen(),␊ |
'order' => 'modif_dtime DESC'␊ |
));␊ |
$issues += $tmp->getArrayCopy();␊ |
}␊ |
else {␊ |
// ID-based search␊ |
if (is_numeric($query)) {␊ |
$sql = new Pluf_SQL('project=%s AND id LIKE %s', array($prj->id, $query.'%'));␊ |
$tmp = Pluf::factory('IDF_Issue')->getList(array(␊ |
'filter' => $sql->gen(),␊ |
'order' => 'id ASC'␊ |
));␊ |
$issues += $tmp->getArrayCopy();␊ |
}␊ |
␊ |
// text-based search␊ |
$res = new Pluf_Search_ResultSet(␊ |
IDF_Search::mySearch($query, $prj, 'IDF_Issue')␊ |
);␊ |
foreach ($res as $issue)␊ |
$issues[] = $issue;␊ |
}␊ |
␊ |
// Autocomplete from jQuery UI works with JSON, this old one still␊ |
// expects a parsable string; since we'd need to bump jQuery beyond␊ |
// 1.2.6 for this to use as well, we're trying to cope with the old format.␊ |
// see http://www.learningjquery.com/2010/06/autocomplete-migration-guide␊ |
␊ |
$arr = array(␊ |
'Fo|o' => 110,␊ |
'Bar' => 111,␊ |
'Baz' => 112,␊ |
);␊ |
␊ |
$out = '';␊ |
foreach ($arr as $key => $val)␊ |
$ids = array();␊ |
foreach ($issues as $issue)␊ |
{␊ |
$out .= str_replace('|', '|', $key).'|'.$val."\n";␊ |
if ($issue->id == $issue_id)␊ |
continue;␊ |
␊ |
if (in_array($issue->id, $ids))␊ |
continue;␊ |
␊ |
if (--$limit < 0)␊ |
break;␊ |
␊ |
$out .= str_replace('|', '|', $issue->summary) .'|'.$issue->id."\n";␊ |
$ids[] = $issue->id;␊ |
}␊ |
␊ |
return new Pluf_HTTP_Response($out);␊ |