forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhabricatorCustomFieldApplicationSearchAnyFunctionDatasource.php
70 lines (58 loc) · 1.72 KB
/
PhabricatorCustomFieldApplicationSearchAnyFunctionDatasource.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
final class PhabricatorCustomFieldApplicationSearchAnyFunctionDatasource
extends PhabricatorTypeaheadDatasource {
public function getBrowseTitle() {
return pht('Browse Any');
}
public function getPlaceholderText() {
return pht('Type "any()"...');
}
public function getDatasourceApplicationClass() {
return null;
}
public function getDatasourceFunctions() {
return array(
'any' => array(
'name' => pht('Any Value'),
'summary' => pht('Find results with any value.'),
'description' => pht(
"This function includes results which have any value. Use a query ".
"like this to find results with any value:\n\n%s",
'> any()'),
),
);
}
public function loadResults() {
$results = array(
$this->newAnyFunction(),
);
return $this->filterResultsAgainstTokens($results);
}
protected function evaluateFunction($function, array $argv_list) {
$results = array();
foreach ($argv_list as $argv) {
$results[] = new PhabricatorQueryConstraint(
PhabricatorQueryConstraint::OPERATOR_ANY,
null);
}
return $results;
}
public function renderFunctionTokens($function, array $argv_list) {
$results = array();
foreach ($argv_list as $argv) {
$results[] = PhabricatorTypeaheadTokenView::newFromTypeaheadResult(
$this->newAnyFunction());
}
return $results;
}
private function newAnyFunction() {
$name = pht('Any Value');
return $this->newFunctionResult()
->setName($name.' any')
->setDisplayName($name)
->setIcon('fa-circle-o')
->setPHID('any()')
->setUnique(true)
->addAttribute(pht('Select results with any value.'));
}
}