Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/dashboard/xaction/panel/PhabricatorDashboardQueryPanelApplicationTransaction.php
13441 views
1
<?php
2
3
final class PhabricatorDashboardQueryPanelApplicationTransaction
4
extends PhabricatorDashboardPanelPropertyTransaction {
5
6
const TRANSACTIONTYPE = 'query.application';
7
8
protected function getPropertyKey() {
9
return 'class';
10
}
11
12
public function validateTransactions($object, array $xactions) {
13
$errors = array();
14
15
$engines = PhabricatorApplicationSearchEngine::getAllEngines();
16
17
$old_value = $object->getProperty($this->getPropertyKey());
18
foreach ($xactions as $xaction) {
19
$new_value = $xaction->getNewValue();
20
21
if ($new_value === $old_value) {
22
continue;
23
}
24
25
if (!isset($engines[$new_value])) {
26
$errors[] = $this->newInvalidError(
27
pht(
28
'Application search engine class "%s" is unknown. Query panels '.
29
'must use a known search engine class.',
30
$new_value),
31
$xaction);
32
continue;
33
}
34
}
35
36
return $errors;
37
}
38
39
}
40
41