Page MenuHomePhabricator

D17064.diff
No OneTemporary

D17064.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2448,6 +2448,7 @@
'PhabricatorDashboardDAO' => 'applications/dashboard/storage/PhabricatorDashboardDAO.php',
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'applications/dashboard/edge/PhabricatorDashboardDashboardHasPanelEdgeType.php',
'PhabricatorDashboardDashboardPHIDType' => 'applications/dashboard/phid/PhabricatorDashboardDashboardPHIDType.php',
+ 'PhabricatorDashboardDatasource' => 'applications/dashboard/typeahead/PhabricatorDashboardDatasource.php',
'PhabricatorDashboardEditController' => 'applications/dashboard/controller/PhabricatorDashboardEditController.php',
'PhabricatorDashboardIconSet' => 'applications/dashboard/icon/PhabricatorDashboardIconSet.php',
'PhabricatorDashboardInstall' => 'applications/dashboard/storage/PhabricatorDashboardInstall.php',
@@ -2460,6 +2461,7 @@
'PhabricatorDashboardPanelArchiveController' => 'applications/dashboard/controller/PhabricatorDashboardPanelArchiveController.php',
'PhabricatorDashboardPanelCoreCustomField' => 'applications/dashboard/customfield/PhabricatorDashboardPanelCoreCustomField.php',
'PhabricatorDashboardPanelCustomField' => 'applications/dashboard/customfield/PhabricatorDashboardPanelCustomField.php',
+ 'PhabricatorDashboardPanelDatasource' => 'applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php',
'PhabricatorDashboardPanelEditConduitAPIMethod' => 'applications/dashboard/conduit/PhabricatorDashboardPanelEditConduitAPIMethod.php',
'PhabricatorDashboardPanelEditController' => 'applications/dashboard/controller/PhabricatorDashboardPanelEditController.php',
'PhabricatorDashboardPanelEditEngine' => 'applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php',
@@ -7412,6 +7414,7 @@
'PhabricatorDashboardDAO' => 'PhabricatorLiskDAO',
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'PhabricatorEdgeType',
'PhabricatorDashboardDashboardPHIDType' => 'PhabricatorPHIDType',
+ 'PhabricatorDashboardDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorDashboardEditController' => 'PhabricatorDashboardController',
'PhabricatorDashboardIconSet' => 'PhabricatorIconSet',
'PhabricatorDashboardInstall' => 'PhabricatorDashboardDAO',
@@ -7434,6 +7437,7 @@
'PhabricatorStandardCustomFieldInterface',
),
'PhabricatorDashboardPanelCustomField' => 'PhabricatorCustomField',
+ 'PhabricatorDashboardPanelDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorDashboardPanelEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
'PhabricatorDashboardPanelEditController' => 'PhabricatorDashboardController',
'PhabricatorDashboardPanelEditEngine' => 'PhabricatorEditEngine',
diff --git a/src/applications/dashboard/typeahead/PhabricatorDashboardDatasource.php b/src/applications/dashboard/typeahead/PhabricatorDashboardDatasource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/dashboard/typeahead/PhabricatorDashboardDatasource.php
@@ -0,0 +1,39 @@
+<?php
+
+final class PhabricatorDashboardDatasource
+ extends PhabricatorTypeaheadDatasource {
+
+ public function getBrowseTitle() {
+ return pht('Browse Dashboards');
+ }
+
+ public function getPlaceholderText() {
+ return pht('Type a dashboard name...');
+ }
+
+ public function getDatasourceApplicationClass() {
+ return 'PhabricatorDashboardApplication';
+ }
+
+ public function loadResults() {
+ $query = id(new PhabricatorDashboardQuery());
+
+ $dashboards = $this->executeQuery($query);
+ $results = array();
+ foreach ($dashboards as $dashboard) {
+ $result = id(new PhabricatorTypeaheadResult())
+ ->setName($dashboard->getName())
+ ->setPHID($dashboard->getPHID())
+ ->addAttribute(pht('Dashboard'));
+
+ if ($dashboard->isArchived()) {
+ $result->setClosed(pht('Archived'));
+ }
+
+ $results[] = $result;
+ }
+
+ return $this->filterResultsAgainstTokens($results);
+ }
+
+}
diff --git a/src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php b/src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php
@@ -0,0 +1,46 @@
+<?php
+
+final class PhabricatorDashboardPanelDatasource
+ extends PhabricatorTypeaheadDatasource {
+
+ public function getBrowseTitle() {
+ return pht('Browse Dashboard Panels');
+ }
+
+ public function getPlaceholderText() {
+ return pht('Type a panel name...');
+ }
+
+ public function getDatasourceApplicationClass() {
+ return 'PhabricatorDashboardApplication';
+ }
+
+ public function loadResults() {
+ $query = id(new PhabricatorDashboardPanelQuery());
+
+ $panels = $this->executeQuery($query);
+ $results = array();
+ foreach ($panels as $panel) {
+ $impl = $panel->getImplementation();
+ if ($impl) {
+ $type_text = $impl->getPanelTypeName();
+ } else {
+ $type_text = nonempty($panel->getPanelType(), pht('Unknown Type'));
+ }
+
+ $result = id(new PhabricatorTypeaheadResult())
+ ->setName($panel->getName())
+ ->setPHID($panel->getPHID())
+ ->addAttribute($type_text);
+
+ if ($panel->getIsArchived()) {
+ $result->setClosed(pht('Archived'));
+ }
+
+ $results[] = $result;
+ }
+
+ return $this->filterResultsAgainstTokens($results);
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
May 12 2024, 4:15 AM (5 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6288670
Default Alt Text
D17064.diff (5 KB)

Event Timeline