@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.

Add Dashboard typeaheads

Summary: Builds a basic typeahead for Dashboards and Panels

Test Plan: `/typeahead/browse/PhabricatorDashboardPanelDatasource/`

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

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

+89
+4
src/__phutil_library_map__.php
··· 2448 2448 'PhabricatorDashboardDAO' => 'applications/dashboard/storage/PhabricatorDashboardDAO.php', 2449 2449 'PhabricatorDashboardDashboardHasPanelEdgeType' => 'applications/dashboard/edge/PhabricatorDashboardDashboardHasPanelEdgeType.php', 2450 2450 'PhabricatorDashboardDashboardPHIDType' => 'applications/dashboard/phid/PhabricatorDashboardDashboardPHIDType.php', 2451 + 'PhabricatorDashboardDatasource' => 'applications/dashboard/typeahead/PhabricatorDashboardDatasource.php', 2451 2452 'PhabricatorDashboardEditController' => 'applications/dashboard/controller/PhabricatorDashboardEditController.php', 2452 2453 'PhabricatorDashboardIconSet' => 'applications/dashboard/icon/PhabricatorDashboardIconSet.php', 2453 2454 'PhabricatorDashboardInstall' => 'applications/dashboard/storage/PhabricatorDashboardInstall.php', ··· 2460 2461 'PhabricatorDashboardPanelArchiveController' => 'applications/dashboard/controller/PhabricatorDashboardPanelArchiveController.php', 2461 2462 'PhabricatorDashboardPanelCoreCustomField' => 'applications/dashboard/customfield/PhabricatorDashboardPanelCoreCustomField.php', 2462 2463 'PhabricatorDashboardPanelCustomField' => 'applications/dashboard/customfield/PhabricatorDashboardPanelCustomField.php', 2464 + 'PhabricatorDashboardPanelDatasource' => 'applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php', 2463 2465 'PhabricatorDashboardPanelEditConduitAPIMethod' => 'applications/dashboard/conduit/PhabricatorDashboardPanelEditConduitAPIMethod.php', 2464 2466 'PhabricatorDashboardPanelEditController' => 'applications/dashboard/controller/PhabricatorDashboardPanelEditController.php', 2465 2467 'PhabricatorDashboardPanelEditEngine' => 'applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php', ··· 7412 7414 'PhabricatorDashboardDAO' => 'PhabricatorLiskDAO', 7413 7415 'PhabricatorDashboardDashboardHasPanelEdgeType' => 'PhabricatorEdgeType', 7414 7416 'PhabricatorDashboardDashboardPHIDType' => 'PhabricatorPHIDType', 7417 + 'PhabricatorDashboardDatasource' => 'PhabricatorTypeaheadDatasource', 7415 7418 'PhabricatorDashboardEditController' => 'PhabricatorDashboardController', 7416 7419 'PhabricatorDashboardIconSet' => 'PhabricatorIconSet', 7417 7420 'PhabricatorDashboardInstall' => 'PhabricatorDashboardDAO', ··· 7434 7437 'PhabricatorStandardCustomFieldInterface', 7435 7438 ), 7436 7439 'PhabricatorDashboardPanelCustomField' => 'PhabricatorCustomField', 7440 + 'PhabricatorDashboardPanelDatasource' => 'PhabricatorTypeaheadDatasource', 7437 7441 'PhabricatorDashboardPanelEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod', 7438 7442 'PhabricatorDashboardPanelEditController' => 'PhabricatorDashboardController', 7439 7443 'PhabricatorDashboardPanelEditEngine' => 'PhabricatorEditEngine',
+39
src/applications/dashboard/typeahead/PhabricatorDashboardDatasource.php
··· 1 + <?php 2 + 3 + final class PhabricatorDashboardDatasource 4 + extends PhabricatorTypeaheadDatasource { 5 + 6 + public function getBrowseTitle() { 7 + return pht('Browse Dashboards'); 8 + } 9 + 10 + public function getPlaceholderText() { 11 + return pht('Type a dashboard name...'); 12 + } 13 + 14 + public function getDatasourceApplicationClass() { 15 + return 'PhabricatorDashboardApplication'; 16 + } 17 + 18 + public function loadResults() { 19 + $query = id(new PhabricatorDashboardQuery()); 20 + 21 + $dashboards = $this->executeQuery($query); 22 + $results = array(); 23 + foreach ($dashboards as $dashboard) { 24 + $result = id(new PhabricatorTypeaheadResult()) 25 + ->setName($dashboard->getName()) 26 + ->setPHID($dashboard->getPHID()) 27 + ->addAttribute(pht('Dashboard')); 28 + 29 + if ($dashboard->isArchived()) { 30 + $result->setClosed(pht('Archived')); 31 + } 32 + 33 + $results[] = $result; 34 + } 35 + 36 + return $this->filterResultsAgainstTokens($results); 37 + } 38 + 39 + }
+46
src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php
··· 1 + <?php 2 + 3 + final class PhabricatorDashboardPanelDatasource 4 + extends PhabricatorTypeaheadDatasource { 5 + 6 + public function getBrowseTitle() { 7 + return pht('Browse Dashboard Panels'); 8 + } 9 + 10 + public function getPlaceholderText() { 11 + return pht('Type a panel name...'); 12 + } 13 + 14 + public function getDatasourceApplicationClass() { 15 + return 'PhabricatorDashboardApplication'; 16 + } 17 + 18 + public function loadResults() { 19 + $query = id(new PhabricatorDashboardPanelQuery()); 20 + 21 + $panels = $this->executeQuery($query); 22 + $results = array(); 23 + foreach ($panels as $panel) { 24 + $impl = $panel->getImplementation(); 25 + if ($impl) { 26 + $type_text = $impl->getPanelTypeName(); 27 + } else { 28 + $type_text = nonempty($panel->getPanelType(), pht('Unknown Type')); 29 + } 30 + 31 + $result = id(new PhabricatorTypeaheadResult()) 32 + ->setName($panel->getName()) 33 + ->setPHID($panel->getPHID()) 34 + ->addAttribute($type_text); 35 + 36 + if ($panel->getIsArchived()) { 37 + $result->setClosed(pht('Archived')); 38 + } 39 + 40 + $results[] = $result; 41 + } 42 + 43 + return $this->filterResultsAgainstTokens($results); 44 + } 45 + 46 + }