mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-21 13:00:56 +01:00
Owners search.
This commit is contained in:
parent
23f882a0ee
commit
a54f1395c2
2 changed files with 45 additions and 1 deletions
|
@ -59,16 +59,59 @@ class PhabricatorOwnersListController extends PhabricatorOwnersController {
|
|||
}
|
||||
|
||||
$package = new PhabricatorOwnersPackage();
|
||||
$owner = new PhabricatorOwnersOwner();
|
||||
$path = new PhabricatorOwnersPath();
|
||||
|
||||
switch ($this->view) {
|
||||
case 'search':
|
||||
$packages = array();
|
||||
|
||||
$conn_r = $package->establishConnection('r');
|
||||
|
||||
$where = array('1 = 1');
|
||||
$join = array();
|
||||
|
||||
if ($request->getStr('name')) {
|
||||
$where[] = qsprintf(
|
||||
$conn_r,
|
||||
'p.name LIKE %~',
|
||||
$request->getStr('name'));
|
||||
}
|
||||
|
||||
if ($request->getStr('path')) {
|
||||
$join[] = qsprintf(
|
||||
$conn_r,
|
||||
'JOIN %T path ON path.packageID = p.id',
|
||||
$path->getTableName());
|
||||
$where[] = qsprintf(
|
||||
$conn_r,
|
||||
'path.path LIKE %~',
|
||||
$request->getStr('path'));
|
||||
}
|
||||
|
||||
if ($request->getArr('owner')) {
|
||||
$join[] = qsprintf(
|
||||
$conn_r,
|
||||
'JOIN %T o ON o.packageID = p.id',
|
||||
$owner->getTableName());
|
||||
$where[] = qsprintf(
|
||||
$conn_r,
|
||||
'o.userPHID IN (%Ls)',
|
||||
$request->getArr('owner'));
|
||||
}
|
||||
|
||||
$data = queryfx_all(
|
||||
$conn_r,
|
||||
'SELECT p.* FROM %T p %Q WHERE %Q GROUP BY p.id',
|
||||
$package->getTableName(),
|
||||
implode(' ', $join),
|
||||
'('.implode(') AND (', $where).')');
|
||||
$packages = $package->loadAllFromArray($data);
|
||||
|
||||
$header = 'Search Results';
|
||||
$nodata = 'No packages match your query.';
|
||||
break;
|
||||
case 'owned':
|
||||
$owner = new PhabricatorOwnersOwner();
|
||||
$data = queryfx_all(
|
||||
$package->establishConnection('r'),
|
||||
'SELECT p.* FROM %T p JOIN %T o ON p.id = o.packageID
|
||||
|
|
|
@ -11,6 +11,7 @@ phutil_require_module('phabricator', 'applications/owners/storage/owner');
|
|||
phutil_require_module('phabricator', 'applications/owners/storage/package');
|
||||
phutil_require_module('phabricator', 'applications/owners/storage/path');
|
||||
phutil_require_module('phabricator', 'applications/phid/handle/data');
|
||||
phutil_require_module('phabricator', 'storage/qsprintf');
|
||||
phutil_require_module('phabricator', 'storage/queryfx');
|
||||
phutil_require_module('phabricator', 'view/control/table');
|
||||
phutil_require_module('phabricator', 'view/form/base');
|
||||
|
|
Loading…
Reference in a new issue