@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Modernize "users" typeahead datasource

Summary: Ref T4420. Modernize users.

Test Plan:
- Edited "Commit Authors" on Audit search.
- Edited "Created By" on calendar search.
- Edited "invited" on calendar search.
- Edited "To" on "New conpherence message".
- Edited user on "Add user to conpherence thread".
- Edited "Authors" on countdown search.
- Edited "Author" on differential search.
- Edited "Responsible users" on differential search.
- Edited "Owner" on Diffusion lint search.
- Edited "include users" on Feed search.
- Edited "Authors" on file search.
- Edited "Authors" on Herald rule search.
- Edited a couple of user-selecting Herald fields on rules.
- Edited "user" on legalpad signature exemption.
- Edited "creator" on legalpad search.
- Edited "contributors" on legalpad search.
- Edited "signers" on legalpad signature search.
- Edited "Authors" on macro search.
- Edited "Reassign/claim" on task detail.
- Edited "assigned to" on task edit.
- Edited "assigned to", "users projects", "authors" on task search.
- Edited "creators" on oauthserver.
- Edited "authors" on paste search.
- Edited "actors" and "users" on activity log search.
- Edited "authors" on pholio search.
- Edited "users" on phrequent search.
- Edited "authors", "answered by" on Ponder search.
- Edited "add members" on project membership editor.
- Edited "members" on project search.
- Edited "pushers" on releeph product edit.
- Edited "requestors" on releeph request search.
- Edited "pushers" on diffusion push log.
- Edited "authors", "owners", "subscribers" on global search.
- Edited "authors" on slowvote search.
- Edited users in custom policy.
- Grepped for "common/authors", no hits.
- Grepped for "common/users", no (relevant) hits.
- Grepped for "common/accounts", no (relevant) hits.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T4420

Differential Revision: https://secure.phabricator.com/D9885

+185 -64
+13 -13
resources/celerity/map.php
··· 414 414 'rsrc/js/application/phortune/behavior-test-payment-form.js' => 'ab8d2723', 415 415 'rsrc/js/application/phortune/phortune-credit-card-form.js' => '2290aeef', 416 416 'rsrc/js/application/policy/behavior-policy-control.js' => 'f3fef818', 417 - 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '92918fcb', 417 + 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '0ea85aa3', 418 418 'rsrc/js/application/ponder/behavior-votebox.js' => '4e9b766b', 419 419 'rsrc/js/application/projects/behavior-boards-dropdown.js' => '0ec56e1d', 420 420 'rsrc/js/application/projects/behavior-project-boards.js' => 'c6b95cbd', ··· 641 641 'javelin-behavior-phui-object-box-tabs' => 'a3e2244e', 642 642 'javelin-behavior-phui-timeline-dropdown-menu' => '4d94d9c3', 643 643 'javelin-behavior-policy-control' => 'f3fef818', 644 - 'javelin-behavior-policy-rule-editor' => '92918fcb', 644 + 'javelin-behavior-policy-rule-editor' => '0ea85aa3', 645 645 'javelin-behavior-ponder-votebox' => '4e9b766b', 646 646 'javelin-behavior-project-boards' => 'c6b95cbd', 647 647 'javelin-behavior-project-create' => '065227cc', ··· 898 898 2 => 'javelin-stratcom', 899 899 3 => 'javelin-util', 900 900 4 => 'phabricator-notification-css', 901 + ), 902 + '0ea85aa3' => array( 903 + 0 => 'javelin-behavior', 904 + 1 => 'multirow-row-manager', 905 + 2 => 'javelin-dom', 906 + 3 => 'javelin-util', 907 + 4 => 'phabricator-prefab', 908 + 5 => 'javelin-tokenizer', 909 + 6 => 'javelin-typeahead', 910 + 7 => 'javelin-typeahead-ondemand-source', 911 + 8 => 'javelin-json', 901 912 ), 902 913 '0ec56e1d' => array( 903 914 0 => 'javelin-behavior', ··· 1449 1460 0 => 'javelin-behavior', 1450 1461 1 => 'javelin-uri', 1451 1462 2 => 'phabricator-notification', 1452 - ), 1453 - '92918fcb' => array( 1454 - 0 => 'javelin-behavior', 1455 - 1 => 'multirow-row-manager', 1456 - 2 => 'javelin-dom', 1457 - 3 => 'javelin-util', 1458 - 4 => 'phabricator-prefab', 1459 - 5 => 'javelin-tokenizer', 1460 - 6 => 'javelin-typeahead', 1461 - 7 => 'javelin-typeahead-preloaded-source', 1462 - 8 => 'javelin-json', 1463 1463 ), 1464 1464 '92eb531d' => array( 1465 1465 0 => 'javelin-behavior',
+2
src/__phutil_library_map__.php
··· 1910 1910 'PhabricatorPeopleCalendarController' => 'applications/people/controller/PhabricatorPeopleCalendarController.php', 1911 1911 'PhabricatorPeopleController' => 'applications/people/controller/PhabricatorPeopleController.php', 1912 1912 'PhabricatorPeopleCreateController' => 'applications/people/controller/PhabricatorPeopleCreateController.php', 1913 + 'PhabricatorPeopleDatasource' => 'applications/people/typeahead/PhabricatorPeopleDatasource.php', 1913 1914 'PhabricatorPeopleDeleteController' => 'applications/people/controller/PhabricatorPeopleDeleteController.php', 1914 1915 'PhabricatorPeopleDisableController' => 'applications/people/controller/PhabricatorPeopleDisableController.php', 1915 1916 'PhabricatorPeopleEmpowerController' => 'applications/people/controller/PhabricatorPeopleEmpowerController.php', ··· 4711 4712 'PhabricatorPeopleCalendarController' => 'PhabricatorPeopleController', 4712 4713 'PhabricatorPeopleController' => 'PhabricatorController', 4713 4714 'PhabricatorPeopleCreateController' => 'PhabricatorPeopleController', 4715 + 'PhabricatorPeopleDatasource' => 'PhabricatorTypeaheadDatasource', 4714 4716 'PhabricatorPeopleDeleteController' => 'PhabricatorPeopleController', 4715 4717 'PhabricatorPeopleDisableController' => 'PhabricatorPeopleController', 4716 4718 'PhabricatorPeopleEmpowerController' => 'PhabricatorPeopleController',
+1 -1
src/applications/audit/query/PhabricatorCommitSearchEngine.php
··· 91 91 ->setValue(array_select_keys($handles, $auditor_phids))) 92 92 ->appendChild( 93 93 id(new AphrontFormTokenizerControl()) 94 - ->setDatasource('/typeahead/common/users/') 94 + ->setDatasource(new PhabricatorPeopleDatasource()) 95 95 ->setName('authors') 96 96 ->setLabel(pht('Commit Authors')) 97 97 ->setValue(array_select_keys($handles, $commit_author_phids)))
+2 -2
src/applications/calendar/query/PhabricatorCalendarEventSearchEngine.php
··· 106 106 $form 107 107 ->appendChild( 108 108 id(new AphrontFormTokenizerControl()) 109 - ->setDatasource('/typeahead/common/accounts/') 109 + ->setDatasource(new PhabricatorPeopleDatasource()) 110 110 ->setName('creators') 111 111 ->setLabel(pht('Created By')) 112 112 ->setValue($creator_handles)) 113 113 ->appendChild( 114 114 id(new AphrontFormTokenizerControl()) 115 - ->setDatasource('/typeahead/common/accounts/') 115 + ->setDatasource(new PhabricatorPeopleDatasource()) 116 116 ->setName('invited') 117 117 ->setLabel(pht('Invited')) 118 118 ->setValue($invited_handles))
+1 -1
src/applications/conpherence/controller/ConpherenceNewController.php
··· 82 82 ->setName('participants') 83 83 ->setValue($participant_handles) 84 84 ->setUser($user) 85 - ->setDatasource('/typeahead/common/users/') 85 + ->setDatasource(new PhabricatorPeopleDatasource()) 86 86 ->setLabel(pht('To')) 87 87 ->setError($e_participants)) 88 88 ->appendChild(
+1 -1
src/applications/conpherence/controller/ConpherenceUpdateController.php
··· 206 206 id(new AphrontFormTokenizerControl()) 207 207 ->setName('add_person') 208 208 ->setUser($user) 209 - ->setDatasource('/typeahead/common/users/')); 209 + ->setDatasource(new PhabricatorPeopleDatasource())); 210 210 211 211 require_celerity_resource('conpherence-update-css'); 212 212 return id(new AphrontDialogView())
+1 -1
src/applications/countdown/query/PhabricatorCountdownSearchEngine.php
··· 51 51 $form 52 52 ->appendChild( 53 53 id(new AphrontFormTokenizerControl()) 54 - ->setDatasource('/typeahead/common/users/') 54 + ->setDatasource(new PhabricatorPeopleDatasource()) 55 55 ->setName('authors') 56 56 ->setLabel(pht('Authors')) 57 57 ->setValue($author_handles))
+2 -2
src/applications/differential/query/DifferentialRevisionSearchEngine.php
··· 143 143 id(new AphrontFormTokenizerControl()) 144 144 ->setLabel(pht('Responsible Users')) 145 145 ->setName('responsibles') 146 - ->setDatasource('/typeahead/common/accounts/') 146 + ->setDatasource(new PhabricatorPeopleDatasource()) 147 147 ->setValue(array_select_keys($handles, $responsible_phids))) 148 148 ->appendChild( 149 149 id(new AphrontFormTokenizerControl()) 150 150 ->setLabel(pht('Authors')) 151 151 ->setName('authors') 152 - ->setDatasource('/typeahead/common/accounts/') 152 + ->setDatasource(new PhabricatorPeopleDatasource()) 153 153 ->setValue(array_select_keys($handles, $author_phids))) 154 154 ->appendChild( 155 155 id(new AphrontFormTokenizerControl())
+1 -1
src/applications/diffusion/controller/DiffusionLintController.php
··· 112 112 ->setMethod('GET') 113 113 ->appendChild( 114 114 id(new AphrontFormTokenizerControl()) 115 - ->setDatasource('/typeahead/common/users/') 115 + ->setDatasource(new PhabricatorPeopleDatasource()) 116 116 ->setLimit(1) 117 117 ->setName('owner') 118 118 ->setLabel(pht('Owner'))
+1 -1
src/applications/feed/query/PhabricatorFeedSearchEngine.php
··· 78 78 $form 79 79 ->appendChild( 80 80 id(new AphrontFormTokenizerControl()) 81 - ->setDatasource('/typeahead/common/users/') 81 + ->setDatasource(new PhabricatorPeopleDatasource()) 82 82 ->setName('users') 83 83 ->setLabel(pht('Include Users')) 84 84 ->setValue($user_handles))
+1 -1
src/applications/files/query/PhabricatorFileSearchEngine.php
··· 61 61 $form 62 62 ->appendChild( 63 63 id(new AphrontFormTokenizerControl()) 64 - ->setDatasource('/typeahead/common/users/') 64 + ->setDatasource(new PhabricatorPeopleDatasource()) 65 65 ->setName('authors') 66 66 ->setLabel(pht('Authors')) 67 67 ->setValue($author_handles))
+1 -1
src/applications/herald/controller/HeraldRuleController.php
··· 596 596 'arcanistprojects' => new DiffusionArcanistProjectDatasource(), 597 597 'package' => new PhabricatorOwnersPackageDatasource(), 598 598 'project' => new PhabricatorProjectDatasource(), 599 + 'user' => new PhabricatorPeopleDatasource(), 599 600 ); 600 601 601 602 $sources = mpull($sources, 'getDatasourceURI'); 602 603 $sources += array( 603 604 'email' => '/typeahead/common/mailable/', 604 - 'user' => '/typeahead/common/accounts/', 605 605 'userorproject' => '/typeahead/common/accountsorprojects/', 606 606 ); 607 607
+1 -1
src/applications/herald/query/HeraldRuleSearchEngine.php
··· 71 71 $form 72 72 ->appendChild( 73 73 id(new AphrontFormTokenizerControl()) 74 - ->setDatasource('/typeahead/common/users/') 74 + ->setDatasource(new PhabricatorPeopleDatasource()) 75 75 ->setName('authors') 76 76 ->setLabel(pht('Authors')) 77 77 ->setValue($author_handles))
+1 -1
src/applications/legalpad/controller/LegalpadDocumentSignatureAddController.php
··· 130 130 ->setLabel(pht('Exempt User')) 131 131 ->setName('users') 132 132 ->setLimit(1) 133 - ->setDatasource('/typeahead/common/users/') 133 + ->setDatasource(new PhabricatorPeopleDatasource()) 134 134 ->setValue($user_handles) 135 135 ->setError($e_user)); 136 136 } else {
+2 -2
src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
··· 95 95 ->setDisabled(!$this->requireViewer()->getPHID())) 96 96 ->appendChild( 97 97 id(new AphrontFormTokenizerControl()) 98 - ->setDatasource('/typeahead/common/users/') 98 + ->setDatasource(new PhabricatorPeopleDatasource()) 99 99 ->setName('creators') 100 100 ->setLabel(pht('Creators')) 101 101 ->setValue(array_select_keys($handles, $creator_phids))) 102 102 ->appendChild( 103 103 id(new AphrontFormTokenizerControl()) 104 - ->setDatasource('/typeahead/common/users/') 104 + ->setDatasource(new PhabricatorPeopleDatasource()) 105 105 ->setName('contributors') 106 106 ->setLabel(pht('Contributors')) 107 107 ->setValue(array_select_keys($handles, $contributor_phids)));
+1 -1
src/applications/legalpad/query/LegalpadDocumentSignatureSearchEngine.php
··· 99 99 $form 100 100 ->appendChild( 101 101 id(new AphrontFormTokenizerControl()) 102 - ->setDatasource('/typeahead/common/users/') 102 + ->setDatasource(new PhabricatorPeopleDatasource()) 103 103 ->setName('signers') 104 104 ->setLabel(pht('Signers')) 105 105 ->setValue(array_select_keys($handles, $signer_phids)))
+1 -1
src/applications/macro/query/PhabricatorMacroSearchEngine.php
··· 93 93 ->setValue($status)) 94 94 ->appendChild( 95 95 id(new AphrontFormTokenizerControl()) 96 - ->setDatasource('/typeahead/common/users/') 96 + ->setDatasource(new PhabricatorPeopleDatasource()) 97 97 ->setName('authors') 98 98 ->setLabel(pht('Authors')) 99 99 ->setValue($author_handles))
+3 -2
src/applications/maniphest/controller/ManiphestTaskDetailController.php
··· 283 283 ); 284 284 285 285 $projects_source = new PhabricatorProjectDatasource(); 286 + $users_source = new PhabricatorPeopleDatasource(); 286 287 287 288 $tokenizer_map = array( 288 289 ManiphestTransaction::TYPE_PROJECTS => array( ··· 292 293 ), 293 294 ManiphestTransaction::TYPE_OWNER => array( 294 295 'id' => 'assign-tokenizer', 295 - 'src' => '/typeahead/common/users/', 296 + 'src' => $users_source->getDatasourceURI(), 296 297 'value' => $default_claim, 297 298 'limit' => 1, 298 - 'placeholder' => pht('Type a user name...'), 299 + 'placeholder' => $users_source->getPlaceholderText(), 299 300 ), 300 301 ManiphestTransaction::TYPE_CCS => array( 301 302 'id' => 'cc-tokenizer',
+1 -1
src/applications/maniphest/controller/ManiphestTaskEditController.php
··· 602 602 ->setName('assigned_to') 603 603 ->setValue($assigned_value) 604 604 ->setUser($user) 605 - ->setDatasource('/typeahead/common/users/') 605 + ->setDatasource(new PhabricatorPeopleDatasource()) 606 606 ->setLimit(1)); 607 607 } 608 608
+3 -3
src/applications/maniphest/query/ManiphestTaskSearchEngine.php
··· 309 309 $form 310 310 ->appendChild( 311 311 id(new AphrontFormTokenizerControl()) 312 - ->setDatasource('/typeahead/common/accounts/') 312 + ->setDatasource(new PhabricatorPeopleDatasource()) 313 313 ->setName('assigned') 314 314 ->setLabel(pht('Assigned To')) 315 315 ->setValue($assigned_handles)) ··· 353 353 ->setValue($exclude_project_handles)) 354 354 ->appendChild( 355 355 id(new AphrontFormTokenizerControl()) 356 - ->setDatasource('/typeahead/common/accounts/') 356 + ->setDatasource(new PhabricatorPeopleDatasource()) 357 357 ->setName('userProjects') 358 358 ->setLabel(pht('In Users\' Projects')) 359 359 ->setValue($user_project_handles)) 360 360 ->appendChild( 361 361 id(new AphrontFormTokenizerControl()) 362 - ->setDatasource('/typeahead/common/accounts/') 362 + ->setDatasource(new PhabricatorPeopleDatasource()) 363 363 ->setName('authors') 364 364 ->setLabel(pht('Authors')) 365 365 ->setValue($author_handles))
+1 -1
src/applications/oauthserver/query/PhabricatorOAuthServerClientSearchEngine.php
··· 45 45 $form 46 46 ->appendChild( 47 47 id(new AphrontFormTokenizerControl()) 48 - ->setDatasource('/typeahead/common/users/') 48 + ->setDatasource(new PhabricatorPeopleDatasource()) 49 49 ->setName('creators') 50 50 ->setLabel(pht('Creators')) 51 51 ->setValue($creator_handles));
+1 -1
src/applications/paste/query/PhabricatorPasteSearchEngine.php
··· 67 67 $form 68 68 ->appendChild( 69 69 id(new AphrontFormTokenizerControl()) 70 - ->setDatasource('/typeahead/common/users/') 70 + ->setDatasource(new PhabricatorPeopleDatasource()) 71 71 ->setName('authors') 72 72 ->setLabel(pht('Authors')) 73 73 ->setValue($author_handles))
+2 -2
src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
··· 124 124 $form 125 125 ->appendChild( 126 126 id(new AphrontFormTokenizerControl()) 127 - ->setDatasource('/typeahead/common/accounts/') 127 + ->setDatasource(new PhabricatorPeopleDatasource()) 128 128 ->setName('actors') 129 129 ->setLabel(pht('Actors')) 130 130 ->setValue($actor_handles)) 131 131 ->appendChild( 132 132 id(new AphrontFormTokenizerControl()) 133 - ->setDatasource('/typeahead/common/accounts/') 133 + ->setDatasource(new PhabricatorPeopleDatasource()) 134 134 ->setName('users') 135 135 ->setLabel(pht('Users')) 136 136 ->setValue($user_handles))
+121
src/applications/people/typeahead/PhabricatorPeopleDatasource.php
··· 1 + <?php 2 + 3 + final class PhabricatorPeopleDatasource 4 + extends PhabricatorTypeaheadDatasource { 5 + 6 + public function getPlaceholderText() { 7 + return pht('Type a username...'); 8 + } 9 + 10 + public function getDatasourceApplicationClass() { 11 + return 'PhabricatorApplicationPeople'; 12 + } 13 + 14 + public function loadResults() { 15 + $viewer = $this->getViewer(); 16 + $raw_query = $this->getRawQuery(); 17 + 18 + $results = array(); 19 + 20 + $users = array(); 21 + if (strlen($raw_query)) { 22 + // This is an arbitrary limit which is just larger than any limit we 23 + // actually use in the application. 24 + 25 + // TODO: The datasource should pass this in the query. 26 + $limit = 15; 27 + 28 + $user_table = new PhabricatorUser(); 29 + $conn_r = $user_table->establishConnection('r'); 30 + $ids = queryfx_all( 31 + $conn_r, 32 + 'SELECT id FROM %T WHERE username LIKE %> 33 + ORDER BY username ASC LIMIT %d', 34 + $user_table->getTableName(), 35 + $raw_query, 36 + $limit); 37 + $ids = ipull($ids, 'id'); 38 + 39 + if (count($ids) < $limit) { 40 + // If we didn't find enough username hits, look for real name hits. 41 + // We need to pull the entire pagesize so that we end up with the 42 + // right number of items if this query returns many duplicate IDs 43 + // that we've already selected. 44 + 45 + $realname_ids = queryfx_all( 46 + $conn_r, 47 + 'SELECT DISTINCT userID FROM %T WHERE token LIKE %> 48 + ORDER BY token ASC LIMIT %d', 49 + PhabricatorUser::NAMETOKEN_TABLE, 50 + $raw_query, 51 + $limit); 52 + $realname_ids = ipull($realname_ids, 'userID'); 53 + $ids = array_merge($ids, $realname_ids); 54 + 55 + $ids = array_unique($ids); 56 + $ids = array_slice($ids, 0, $limit); 57 + } 58 + 59 + // Always add the logged-in user because some tokenizers autosort them 60 + // first. They'll be filtered out on the client side if they don't 61 + // match the query. 62 + if ($viewer->getID()) { 63 + $ids[] = $viewer->getID(); 64 + } 65 + 66 + if ($ids) { 67 + $users = id(new PhabricatorPeopleQuery()) 68 + ->setViewer($viewer) 69 + ->withIDs($ids) 70 + ->execute(); 71 + } 72 + } 73 + 74 + // TODO: Restore this when mainsearch moves here. 75 + /* 76 + 77 + if ($need_rich_data) { 78 + $phids = mpull($users, 'getPHID'); 79 + $handles = $this->loadViewerHandles($phids); 80 + } 81 + 82 + */ 83 + 84 + foreach ($users as $user) { 85 + $closed = null; 86 + if ($user->getIsDisabled()) { 87 + $closed = pht('Disabled'); 88 + } else if ($user->getIsSystemAgent()) { 89 + $closed = pht('Bot/Script'); 90 + } 91 + 92 + $result = id(new PhabricatorTypeaheadResult()) 93 + ->setName($user->getFullName()) 94 + ->setURI('/p/'.$user->getUsername()) 95 + ->setPHID($user->getPHID()) 96 + ->setPriorityString($user->getUsername()) 97 + ->setIcon('fa-user bluegrey') 98 + ->setPriorityType('user') 99 + ->setClosed($closed); 100 + 101 + // TODO: Restore this too. 102 + /* 103 + 104 + if ($need_rich_data) { 105 + $display_type = 'User'; 106 + if ($user->getIsAdmin()) { 107 + $display_type = 'Administrator'; 108 + } 109 + $result->setDisplayType($display_type); 110 + $result->setImageURI($handles[$user->getPHID()]->getImageURI()); 111 + } 112 + 113 + */ 114 + 115 + $results[] = $result; 116 + } 117 + 118 + return $results; 119 + } 120 + 121 + }
+1 -1
src/applications/pholio/query/PholioMockSearchEngine.php
··· 55 55 $form 56 56 ->appendChild( 57 57 id(new AphrontFormTokenizerControl()) 58 - ->setDatasource('/typeahead/common/users/') 58 + ->setDatasource(new PhabricatorPeopleDatasource()) 59 59 ->setName('authors') 60 60 ->setLabel(pht('Authors')) 61 61 ->setValue($author_handles))
+1 -1
src/applications/phrequent/query/PhrequentSearchEngine.php
··· 69 69 $form 70 70 ->appendChild( 71 71 id(new AphrontFormTokenizerControl()) 72 - ->setDatasource('/typeahead/common/users/') 72 + ->setDatasource(new PhabricatorPeopleDatasource()) 73 73 ->setName('users') 74 74 ->setLabel(pht('Users')) 75 75 ->setValue($handles))
+4 -2
src/applications/policy/rule/PhabricatorPolicyRuleUsers.php
··· 21 21 } 22 22 23 23 public function getValueControlTemplate() { 24 + $users_datasource = new PhabricatorPeopleDatasource(); 25 + 24 26 return array( 25 27 'markup' => new AphrontTokenizerTemplateView(), 26 - 'uri' => '/typeahead/common/accounts/', 27 - 'placeholder' => pht('Type a user name...'), 28 + 'uri' => $users_datasource->getDatasourceURI(), 29 + 'placeholder' => $users_datasource->getPlaceholderText(), 28 30 ); 29 31 } 30 32
+2 -2
src/applications/ponder/query/PonderQuestionSearchEngine.php
··· 73 73 $form 74 74 ->appendChild( 75 75 id(new AphrontFormTokenizerControl()) 76 - ->setDatasource('/typeahead/common/users/') 76 + ->setDatasource(new PhabricatorPeopleDatasource()) 77 77 ->setName('authors') 78 78 ->setLabel(pht('Authors')) 79 79 ->setValue(array_select_keys($handles, $author_phids))) 80 80 ->appendChild( 81 81 id(new AphrontFormTokenizerControl()) 82 - ->setDatasource('/typeahead/common/users/') 82 + ->setDatasource(new PhabricatorPeopleDatasource()) 83 83 ->setName('answerers') 84 84 ->setLabel(pht('Answered By')) 85 85 ->setValue(array_select_keys($handles, $answerer_phids)))
+1 -1
src/applications/project/controller/PhabricatorProjectMembersEditController.php
··· 83 83 id(new AphrontFormTokenizerControl()) 84 84 ->setName('phids') 85 85 ->setLabel(pht('Add Members')) 86 - ->setDatasource('/typeahead/common/accounts/')) 86 + ->setDatasource(new PhabricatorPeopleDatasource())) 87 87 ->appendChild( 88 88 id(new AphrontFormSubmitControl()) 89 89 ->addCancelButton('/project/view/'.$project->getID().'/')
+1 -1
src/applications/project/query/PhabricatorProjectSearchEngine.php
··· 63 63 $form 64 64 ->appendChild( 65 65 id(new AphrontFormTokenizerControl()) 66 - ->setDatasource('/typeahead/common/users/') 66 + ->setDatasource(new PhabricatorPeopleDatasource()) 67 67 ->setName('members') 68 68 ->setLabel(pht('Members')) 69 69 ->setValue($member_handles))
+1 -1
src/applications/releeph/controller/product/ReleephProductEditController.php
··· 194 194 id(new AphrontFormTokenizerControl()) 195 195 ->setLabel(pht('Pushers')) 196 196 ->setName('pushers') 197 - ->setDatasource('/typeahead/common/users/') 197 + ->setDatasource(new PhabricatorPeopleDatasource()) 198 198 ->setValue($pusher_handles)) 199 199 ->appendChild($branch_template_input) 200 200 ->appendChild($branch_template_preview)
+1 -1
src/applications/releeph/query/ReleephRequestSearchEngine.php
··· 84 84 ->setOptions($this->getSeverityOptions())) 85 85 ->appendChild( 86 86 id(new AphrontFormTokenizerControl()) 87 - ->setDatasource('/typeahead/common/users/') 87 + ->setDatasource(new PhabricatorPeopleDatasource()) 88 88 ->setName('requestors') 89 89 ->setLabel(pht('Requestors')) 90 90 ->setValue($requestor_handles));
+1 -1
src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php
··· 80 80 ->setValue($repository_handles)) 81 81 ->appendChild( 82 82 id(new AphrontFormTokenizerControl()) 83 - ->setDatasource('/typeahead/common/accounts/') 83 + ->setDatasource(new PhabricatorPeopleDatasource()) 84 84 ->setName('pushers') 85 85 ->setLabel(pht('Pushers')) 86 86 ->setValue($pusher_handles));
+2 -2
src/applications/search/query/PhabricatorSearchApplicationSearchEngine.php
··· 136 136 id(new AphrontFormTokenizerControl()) 137 137 ->setName('authorPHIDs') 138 138 ->setLabel('Authors') 139 - ->setDatasource('/typeahead/common/users/') 139 + ->setDatasource(new PhabricatorPeopleDatasource()) 140 140 ->setValue($author_handles)) 141 141 ->appendChild( 142 142 id(new AphrontFormTokenizerControl()) ··· 155 155 id(new AphrontFormTokenizerControl()) 156 156 ->setName('subscriberPHIDs') 157 157 ->setLabel('Subscribers') 158 - ->setDatasource('/typeahead/common/users/') 158 + ->setDatasource(new PhabricatorPeopleDatasource()) 159 159 ->setValue($subscriber_handles)) 160 160 ->appendChild( 161 161 id(new AphrontFormTokenizerControl())
+1 -1
src/applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php
··· 55 55 $form 56 56 ->appendChild( 57 57 id(new AphrontFormTokenizerControl()) 58 - ->setDatasource('/typeahead/common/users/') 58 + ->setDatasource(new PhabricatorPeopleDatasource()) 59 59 ->setName('authors') 60 60 ->setLabel(pht('Authors')) 61 61 ->setValue($author_handles))
-5
src/applications/typeahead/controller/PhabricatorTypeaheadCommonDatasourceController.php
··· 48 48 $need_projs = true; 49 49 $need_noproject = true; 50 50 break; 51 - case 'users': 52 - case 'accounts': 53 - case 'authors': 54 - $need_users = true; 55 - break; 56 51 case 'mailable': 57 52 case 'allmailable': 58 53 $need_users = true;
+2 -2
src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldUsers.php
··· 18 18 $control = id(new AphrontFormTokenizerControl()) 19 19 ->setLabel($this->getFieldName()) 20 20 ->setName($this->getFieldKey()) 21 - ->setDatasource('/typeahead/common/accounts/') 21 + ->setDatasource(new PhabricatorPeopleDatasource()) 22 22 ->setCaption($this->getCaption()) 23 23 ->setValue($control_value); 24 24 ··· 39 39 $control = id(new AphrontFormTokenizerControl()) 40 40 ->setLabel($this->getFieldName()) 41 41 ->setName($this->getFieldKey()) 42 - ->setDatasource('/typeahead/common/accounts/') 42 + ->setDatasource(new PhabricatorPeopleDatasource()) 43 43 ->setValue($handles); 44 44 45 45 $form->appendChild($control);
+2 -2
webroot/rsrc/js/application/policy/behavior-policy-rule-editor.js
··· 7 7 * phabricator-prefab 8 8 * javelin-tokenizer 9 9 * javelin-typeahead 10 - * javelin-typeahead-preloaded-source 10 + * javelin-typeahead-ondemand-source 11 11 * javelin-json 12 12 */ 13 13 JX.behavior('policy-rule-editor', function(config) { ··· 124 124 node = JX.$H(template.markup).getNode(); 125 125 node.id = ''; 126 126 127 - var datasource = new JX.TypeaheadPreloadedSource(template.uri); 127 + var datasource = new JX.TypeaheadOnDemandSource(template.uri); 128 128 129 129 var typeahead = new JX.Typeahead(node); 130 130 typeahead.setDatasource(datasource);