mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-07 12:28:28 +01:00
Modernize "user, project or package" typeahead datasource
Summary: Ref T4420. Call this "auditor" since that's what it is. Test Plan: - Edited auditors in auditor search. - Edited auditors in "add auditors" in Diffusion. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T4420 Differential Revision: https://secure.phabricator.com/D9888
This commit is contained in:
parent
ca5a2641a6
commit
cab442fe8c
6 changed files with 28 additions and 23 deletions
|
@ -465,6 +465,7 @@ phutil_register_library_map(array(
|
||||||
'DifferentialUnitTestResult' => 'applications/differential/constants/DifferentialUnitTestResult.php',
|
'DifferentialUnitTestResult' => 'applications/differential/constants/DifferentialUnitTestResult.php',
|
||||||
'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php',
|
'DifferentialViewPolicyField' => 'applications/differential/customfield/DifferentialViewPolicyField.php',
|
||||||
'DiffusionArcanistProjectDatasource' => 'applications/diffusion/typeahead/DiffusionArcanistProjectDatasource.php',
|
'DiffusionArcanistProjectDatasource' => 'applications/diffusion/typeahead/DiffusionArcanistProjectDatasource.php',
|
||||||
|
'DiffusionAuditorDatasource' => 'applications/diffusion/typeahead/DiffusionAuditorDatasource.php',
|
||||||
'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php',
|
'DiffusionBranchTableController' => 'applications/diffusion/controller/DiffusionBranchTableController.php',
|
||||||
'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php',
|
'DiffusionBranchTableView' => 'applications/diffusion/view/DiffusionBranchTableView.php',
|
||||||
'DiffusionBrowseController' => 'applications/diffusion/controller/DiffusionBrowseController.php',
|
'DiffusionBrowseController' => 'applications/diffusion/controller/DiffusionBrowseController.php',
|
||||||
|
@ -3186,6 +3187,7 @@ phutil_register_library_map(array(
|
||||||
'DifferentialUnitField' => 'DifferentialCustomField',
|
'DifferentialUnitField' => 'DifferentialCustomField',
|
||||||
'DifferentialViewPolicyField' => 'DifferentialCoreCustomField',
|
'DifferentialViewPolicyField' => 'DifferentialCoreCustomField',
|
||||||
'DiffusionArcanistProjectDatasource' => 'PhabricatorTypeaheadDatasource',
|
'DiffusionArcanistProjectDatasource' => 'PhabricatorTypeaheadDatasource',
|
||||||
|
'DiffusionAuditorDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||||
'DiffusionBranchTableController' => 'DiffusionController',
|
'DiffusionBranchTableController' => 'DiffusionController',
|
||||||
'DiffusionBranchTableView' => 'DiffusionView',
|
'DiffusionBranchTableView' => 'DiffusionView',
|
||||||
'DiffusionBrowseController' => 'DiffusionController',
|
'DiffusionBrowseController' => 'DiffusionController',
|
||||||
|
|
|
@ -85,7 +85,7 @@ final class PhabricatorCommitSearchEngine
|
||||||
$form
|
$form
|
||||||
->appendChild(
|
->appendChild(
|
||||||
id(new AphrontFormTokenizerControl())
|
id(new AphrontFormTokenizerControl())
|
||||||
->setDatasource('/typeahead/common/usersprojectsorpackages/')
|
->setDatasource(new DiffusionAuditorDatasource())
|
||||||
->setName('auditorPHIDs')
|
->setName('auditorPHIDs')
|
||||||
->setLabel(pht('Auditors'))
|
->setLabel(pht('Auditors'))
|
||||||
->setValue(array_select_keys($handles, $auditor_phids)))
|
->setValue(array_select_keys($handles, $auditor_phids)))
|
||||||
|
|
|
@ -772,6 +772,7 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
require_celerity_resource('phabricator-transaction-view-css');
|
require_celerity_resource('phabricator-transaction-view-css');
|
||||||
|
|
||||||
$mailable_source = new PhabricatorMetaMTAMailableDatasource();
|
$mailable_source = new PhabricatorMetaMTAMailableDatasource();
|
||||||
|
$auditor_source = new DiffusionAuditorDatasource();
|
||||||
|
|
||||||
Javelin::initBehavior(
|
Javelin::initBehavior(
|
||||||
'differential-add-reviewers-and-ccs',
|
'differential-add-reviewers-and-ccs',
|
||||||
|
@ -779,9 +780,9 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
'dynamic' => array(
|
'dynamic' => array(
|
||||||
'add-auditors-tokenizer' => array(
|
'add-auditors-tokenizer' => array(
|
||||||
'actions' => array('add_auditors' => 1),
|
'actions' => array('add_auditors' => 1),
|
||||||
'src' => '/typeahead/common/usersprojectsorpackages/',
|
'src' => $auditor_source->getDatasourceURI(),
|
||||||
'row' => 'add-auditors',
|
'row' => 'add-auditors',
|
||||||
'placeholder' => pht('Type a user, project, or package name...'),
|
'placeholder' => $auditor_source->getPlaceholderText(),
|
||||||
),
|
),
|
||||||
'add-ccs-tokenizer' => array(
|
'add-ccs-tokenizer' => array(
|
||||||
'actions' => array('add_ccs' => 1),
|
'actions' => array('add_ccs' => 1),
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class DiffusionAuditorDatasource
|
||||||
|
extends PhabricatorTypeaheadCompositeDatasource {
|
||||||
|
|
||||||
|
public function getPlaceholderText() {
|
||||||
|
return pht('Type a user, project or package name...');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDatasourceApplicationClass() {
|
||||||
|
return 'PhabricatorApplicationDiffusion';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getComponentDatasources() {
|
||||||
|
return array(
|
||||||
|
new PhabricatorPeopleDatasource(),
|
||||||
|
new PhabricatorProjectDatasource(),
|
||||||
|
new PhabricatorOwnersPackageDatasource(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -22,10 +22,8 @@ final class PhabricatorTypeaheadCommonDatasourceController
|
||||||
$need_rich_data = false;
|
$need_rich_data = false;
|
||||||
|
|
||||||
$need_users = false;
|
$need_users = false;
|
||||||
$need_agents = false;
|
|
||||||
$need_applications = false;
|
$need_applications = false;
|
||||||
$need_projs = false;
|
$need_projs = false;
|
||||||
$need_packages = false;
|
|
||||||
$need_upforgrabs = false;
|
$need_upforgrabs = false;
|
||||||
$need_noproject = false;
|
$need_noproject = false;
|
||||||
$need_symbols = false;
|
$need_symbols = false;
|
||||||
|
@ -47,11 +45,6 @@ final class PhabricatorTypeaheadCommonDatasourceController
|
||||||
$need_projs = true;
|
$need_projs = true;
|
||||||
$need_noproject = true;
|
$need_noproject = true;
|
||||||
break;
|
break;
|
||||||
case 'usersprojectsorpackages':
|
|
||||||
$need_users = true;
|
|
||||||
$need_projs = true;
|
|
||||||
$need_packages = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = array();
|
$results = array();
|
||||||
|
@ -193,17 +186,6 @@ final class PhabricatorTypeaheadCommonDatasourceController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($need_packages) {
|
|
||||||
$packages = id(new PhabricatorOwnersPackage())->loadAll();
|
|
||||||
foreach ($packages as $package) {
|
|
||||||
$results[] = id(new PhabricatorTypeaheadResult())
|
|
||||||
->setIcon('fa-list-alt bluegrey')
|
|
||||||
->setName($package->getName())
|
|
||||||
->setURI('/owners/package/'.$package->getID().'/')
|
|
||||||
->setPHID($package->getPHID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($need_applications) {
|
if ($need_applications) {
|
||||||
$applications = PhabricatorApplication::getAllInstalledApplications();
|
$applications = PhabricatorApplication::getAllInstalledApplications();
|
||||||
foreach ($applications as $application) {
|
foreach ($applications as $application) {
|
||||||
|
|
|
@ -97,8 +97,6 @@ final class AphrontFormTokenizerControl extends AphrontFormControl {
|
||||||
$map = array(
|
$map = array(
|
||||||
'searchowner' => pht('Type a user name...'),
|
'searchowner' => pht('Type a user name...'),
|
||||||
'searchproject' => pht('Type a project name...'),
|
'searchproject' => pht('Type a project name...'),
|
||||||
'usersprojectsorpackages' =>
|
|
||||||
pht('Type a user, project, or package name...'),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return idx($map, $request);
|
return idx($map, $request);
|
||||||
|
|
Loading…
Add table
Reference in a new issue