Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/auth/phid/PhabricatorAuthPHIDTypeAuthFactor.php b/src/applications/auth/phid/PhabricatorAuthPHIDTypeAuthFactor.php
index 181882dcdd..58d239a7ea 100644
--- a/src/applications/auth/phid/PhabricatorAuthPHIDTypeAuthFactor.php
+++ b/src/applications/auth/phid/PhabricatorAuthPHIDTypeAuthFactor.php
@@ -1,39 +1,35 @@
<?php
final class PhabricatorAuthPHIDTypeAuthFactor extends PhabricatorPHIDType {
const TYPECONST = 'AFTR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Auth Factor');
}
public function newObject() {
return new PhabricatorAuthFactorConfig();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
// TODO: Maybe we need this eventually?
throw new Exception(pht('Not Supported'));
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$factor = $objects[$phid];
$handle->setName($factor->getFactorName());
}
}
}
diff --git a/src/applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php b/src/applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php
index 0fb7c9d086..a87eafba29 100644
--- a/src/applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php
+++ b/src/applications/calendar/phid/PhabricatorCalendarPHIDTypeEvent.php
@@ -1,41 +1,37 @@
<?php
final class PhabricatorCalendarPHIDTypeEvent extends PhabricatorPHIDType {
const TYPECONST = 'CEVT';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Event');
}
public function newObject() {
return new PhabricatorCalendarEvent();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorCalendarEventQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$event = $objects[$phid];
$id = $event->getID();
$handle->setName(pht('Event %d', $id));
}
}
}
diff --git a/src/applications/config/phid/PhabricatorConfigPHIDTypeConfig.php b/src/applications/config/phid/PhabricatorConfigPHIDTypeConfig.php
index 5742a7e9e5..793b63955a 100644
--- a/src/applications/config/phid/PhabricatorConfigPHIDTypeConfig.php
+++ b/src/applications/config/phid/PhabricatorConfigPHIDTypeConfig.php
@@ -1,42 +1,38 @@
<?php
final class PhabricatorConfigPHIDTypeConfig extends PhabricatorPHIDType {
const TYPECONST = 'CONF';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Config');
}
public function newObject() {
return new PhabricatorConfigEntry();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorConfigEntryQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$entry = $objects[$phid];
$key = $entry->getConfigKey();
$handle->setName($key);
$handle->setURI("/config/edit/{$key}/");
}
}
}
diff --git a/src/applications/conpherence/phid/PhabricatorConpherencePHIDTypeThread.php b/src/applications/conpherence/phid/PhabricatorConpherencePHIDTypeThread.php
index 3a6319a954..d644774b5b 100644
--- a/src/applications/conpherence/phid/PhabricatorConpherencePHIDTypeThread.php
+++ b/src/applications/conpherence/phid/PhabricatorConpherencePHIDTypeThread.php
@@ -1,44 +1,40 @@
<?php
final class PhabricatorConpherencePHIDTypeThread extends PhabricatorPHIDType {
const TYPECONST = 'CONP';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Conpherence Thread');
}
public function newObject() {
return new ConpherenceThread();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new ConpherenceThreadQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$thread = $objects[$phid];
$name = $thread->getTitle();
if (!strlen($name)) {
$name = pht('[No Title]');
}
$handle->setName($name);
$handle->setFullName($name);
$handle->setURI('/conpherence/'.$thread->getID().'/');
}
}
}
diff --git a/src/applications/countdown/phid/PhabricatorCountdownPHIDTypeCountdown.php b/src/applications/countdown/phid/PhabricatorCountdownPHIDTypeCountdown.php
index ef60213d36..b859f80d5a 100644
--- a/src/applications/countdown/phid/PhabricatorCountdownPHIDTypeCountdown.php
+++ b/src/applications/countdown/phid/PhabricatorCountdownPHIDTypeCountdown.php
@@ -1,73 +1,69 @@
<?php
final class PhabricatorCountdownPHIDTypeCountdown extends PhabricatorPHIDType {
const TYPECONST = 'CDWN';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Countdown');
}
public function newObject() {
return new PhabricatorCountdown();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorCountdownQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$countdown = $objects[$phid];
$name = $countdown->getTitle();
$id = $countdown->getID();
$handle->setName("C{$id}");
$handle->setFullName("C{$id}: {$name}");
$handle->setURI("/countdown/{$id}/");
}
}
public function canLoadNamedObject($name) {
return preg_match('/^C\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorCountdownQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypeDashboard.php b/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypeDashboard.php
index 0af0fd3d9d..67a27a892c 100644
--- a/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypeDashboard.php
+++ b/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypeDashboard.php
@@ -1,42 +1,38 @@
<?php
final class PhabricatorDashboardPHIDTypeDashboard extends PhabricatorPHIDType {
const TYPECONST = 'DSHB';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Dashboard');
}
public function newObject() {
return new PhabricatorDashboard();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorDashboardQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$dashboard = $objects[$phid];
$id = $dashboard->getID();
$handle->setName($dashboard->getName());
$handle->setURI("/dashboard/view/{$id}/");
}
}
}
diff --git a/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypePanel.php b/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypePanel.php
index 882f728c1e..ec552a242b 100644
--- a/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypePanel.php
+++ b/src/applications/dashboard/phid/PhabricatorDashboardPHIDTypePanel.php
@@ -1,77 +1,73 @@
<?php
final class PhabricatorDashboardPHIDTypePanel extends PhabricatorPHIDType {
const TYPECONST = 'DSHP';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Panel');
}
public function newObject() {
return new PhabricatorDashboardPanel();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorDashboardPanelQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$panel = $objects[$phid];
$name = $panel->getName();
$monogram = $panel->getMonogram();
$handle->setName($panel->getMonogram());
$handle->setFullName("{$monogram} {$name}");
$handle->setURI("/{$monogram}");
if ($panel->getIsArchived()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^W\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorDashboardPanelQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/differential/phid/DifferentialPHIDTypeDiff.php b/src/applications/differential/phid/DifferentialPHIDTypeDiff.php
index dda8b61b94..c5f6e44dc9 100644
--- a/src/applications/differential/phid/DifferentialPHIDTypeDiff.php
+++ b/src/applications/differential/phid/DifferentialPHIDTypeDiff.php
@@ -1,42 +1,38 @@
<?php
final class DifferentialPHIDTypeDiff extends PhabricatorPHIDType {
const TYPECONST = 'DIFF';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Differential Diff');
}
public function newObject() {
return new DifferentialDiff();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DifferentialDiffQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$diff = $objects[$phid];
$id = $diff->getID();
$handle->setName(pht('Diff %d', $id));
$handle->setURI("/differential/diff/{$id}/");
}
}
}
diff --git a/src/applications/differential/phid/DifferentialPHIDTypeRevision.php b/src/applications/differential/phid/DifferentialPHIDTypeRevision.php
index 50a5f42cc4..1cf0154bf5 100644
--- a/src/applications/differential/phid/DifferentialPHIDTypeRevision.php
+++ b/src/applications/differential/phid/DifferentialPHIDTypeRevision.php
@@ -1,82 +1,78 @@
<?php
final class DifferentialPHIDTypeRevision extends PhabricatorPHIDType {
const TYPECONST = 'DREV';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Revision');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationDifferential';
}
public function newObject() {
return new DifferentialRevision();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DifferentialRevisionQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$revision = $objects[$phid];
$title = $revision->getTitle();
$id = $revision->getID();
$status = $revision->getStatus();
$handle->setName("D{$id}");
$handle->setURI("/D{$id}");
$handle->setFullName("D{$id}: {$title}");
if ($revision->isClosed()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^D\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new DifferentialRevisionQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/diviner/phid/DivinerPHIDTypeAtom.php b/src/applications/diviner/phid/DivinerPHIDTypeAtom.php
index 6a057c0741..a47efb322b 100644
--- a/src/applications/diviner/phid/DivinerPHIDTypeAtom.php
+++ b/src/applications/diviner/phid/DivinerPHIDTypeAtom.php
@@ -1,40 +1,36 @@
<?php
final class DivinerPHIDTypeAtom extends PhabricatorPHIDType {
const TYPECONST = 'ATOM';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Atom');
}
public function newObject() {
return new DivinerLiveSymbol();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DivinerAtomQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$atom = $objects[$phid];
$handle->setName($atom->getTitle());
$handle->setURI($atom->getName());
}
}
}
diff --git a/src/applications/diviner/phid/DivinerPHIDTypeBook.php b/src/applications/diviner/phid/DivinerPHIDTypeBook.php
index 3bd965ee78..af2ebb11e0 100644
--- a/src/applications/diviner/phid/DivinerPHIDTypeBook.php
+++ b/src/applications/diviner/phid/DivinerPHIDTypeBook.php
@@ -1,43 +1,39 @@
<?php
final class DivinerPHIDTypeBook extends PhabricatorPHIDType {
const TYPECONST = 'BOOK';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Book');
}
public function newObject() {
return new DivinerLiveBook();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DivinerBookQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$book = $objects[$phid];
$name = $book->getName();
$handle->setName($book->getShortTitle());
$handle->setFullName($book->getTitle());
$handle->setURI("/diviner/book/{$name}/");
}
}
}
diff --git a/src/applications/drydock/phid/DrydockPHIDTypeBlueprint.php b/src/applications/drydock/phid/DrydockPHIDTypeBlueprint.php
index 22b074285e..553205cf77 100644
--- a/src/applications/drydock/phid/DrydockPHIDTypeBlueprint.php
+++ b/src/applications/drydock/phid/DrydockPHIDTypeBlueprint.php
@@ -1,40 +1,36 @@
<?php
final class DrydockPHIDTypeBlueprint extends PhabricatorPHIDType {
const TYPECONST = 'DRYB';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Blueprint');
}
public function newObject() {
return new DrydockBlueprint();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DrydockBlueprintQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$blueprint = $objects[$phid];
$id = $blueprint->getID();
$handle->setURI("/drydock/blueprint/{$id}/");
}
}
}
diff --git a/src/applications/drydock/phid/DrydockPHIDTypeLease.php b/src/applications/drydock/phid/DrydockPHIDTypeLease.php
index f3f34be0c7..55649c9d92 100644
--- a/src/applications/drydock/phid/DrydockPHIDTypeLease.php
+++ b/src/applications/drydock/phid/DrydockPHIDTypeLease.php
@@ -1,40 +1,36 @@
<?php
final class DrydockPHIDTypeLease extends PhabricatorPHIDType {
const TYPECONST = 'DRYL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Drydock Lease');
}
public function newObject() {
return new DrydockLease();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DrydockLeaseQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$lease = $objects[$phid];
$id = $lease->getID();
$handle->setURI("/drydock/lease/{$id}/");
}
}
}
diff --git a/src/applications/drydock/phid/DrydockPHIDTypeResource.php b/src/applications/drydock/phid/DrydockPHIDTypeResource.php
index f6bc00f689..ffe76c6e7a 100644
--- a/src/applications/drydock/phid/DrydockPHIDTypeResource.php
+++ b/src/applications/drydock/phid/DrydockPHIDTypeResource.php
@@ -1,40 +1,36 @@
<?php
final class DrydockPHIDTypeResource extends PhabricatorPHIDType {
const TYPECONST = 'DRYR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Drydock Resource');
}
public function newObject() {
return new DrydockResource();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DrydockResourceQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$resource = $objects[$phid];
$id = $resource->getID();
$handle->setURI("/drydock/resource/{$id}/");
}
}
}
diff --git a/src/applications/files/phid/PhabricatorFilePHIDTypeFile.php b/src/applications/files/phid/PhabricatorFilePHIDTypeFile.php
index 1f6fe80df6..d655511a31 100644
--- a/src/applications/files/phid/PhabricatorFilePHIDTypeFile.php
+++ b/src/applications/files/phid/PhabricatorFilePHIDTypeFile.php
@@ -1,74 +1,70 @@
<?php
final class PhabricatorFilePHIDTypeFile extends PhabricatorPHIDType {
const TYPECONST = 'FILE';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('File');
}
public function newObject() {
return new PhabricatorFile();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorFileQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$file = $objects[$phid];
$id = $file->getID();
$name = $file->getName();
$uri = $file->getBestURI();
$handle->setName("F{$id}");
$handle->setFullName("F{$id}: {$name}");
$handle->setURI($uri);
}
}
public function canLoadNamedObject($name) {
return preg_match('/^F\d*[1-9]\d*$/', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorFileQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuild.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuild.php
index 22f0c8bb62..0977134c7a 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuild.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuild.php
@@ -1,43 +1,39 @@
<?php
final class HarbormasterPHIDTypeBuild extends PhabricatorPHIDType {
const TYPECONST = 'HMBD';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build');
}
public function newObject() {
return new HarbormasterBuild();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build = $objects[$phid];
$handles[$phid]->setName(pht(
'Build %d: %s',
$build->getID(),
$build->getName()));
$handles[$phid]->setURI(
'/harbormaster/build/'.$build->getID());
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildItem.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildItem.php
index 4d6fdb1982..83603ec079 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildItem.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildItem.php
@@ -1,37 +1,33 @@
<?php
final class HarbormasterPHIDTypeBuildItem extends PhabricatorPHIDType {
const TYPECONST = 'HMBI';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build Item');
}
public function newObject() {
return new HarbormasterBuildItem();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildItemQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build_item = $objects[$phid];
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildLog.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildLog.php
index 385cbcaac6..2612d15556 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildLog.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildLog.php
@@ -1,37 +1,33 @@
<?php
final class HarbormasterPHIDTypeBuildLog extends PhabricatorPHIDType {
const TYPECONST = 'HMCL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build Log');
}
public function newObject() {
return new HarbormasterBuildLog();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildLogQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build_log = $objects[$phid];
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildPlan.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildPlan.php
index d5abaf8f0b..4449974422 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildPlan.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildPlan.php
@@ -1,44 +1,40 @@
<?php
final class HarbormasterPHIDTypeBuildPlan extends PhabricatorPHIDType {
const TYPECONST = 'HMCP';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build Plan');
}
public function getTypeIcon() {
return 'fa-cubes';
}
public function newObject() {
return new HarbormasterBuildPlan();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildPlanQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build_plan = $objects[$phid];
$id = $build_plan->getID();
$handles[$phid]->setName(pht('Plan %d %s', $id, $build_plan->getName()));
$handles[$phid]->setURI('/harbormaster/plan/'.$id.'/');
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildStep.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildStep.php
index 3081f32e89..37500a0e73 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildStep.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildStep.php
@@ -1,37 +1,33 @@
<?php
final class HarbormasterPHIDTypeBuildStep extends PhabricatorPHIDType {
const TYPECONST = 'HMCS';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build Step');
}
public function newObject() {
return new HarbormasterBuildStep();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildStepQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build_step = $objects[$phid];
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildTarget.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildTarget.php
index 7f893b77b7..fab5a58239 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildTarget.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildTarget.php
@@ -1,37 +1,33 @@
<?php
final class HarbormasterPHIDTypeBuildTarget extends PhabricatorPHIDType {
const TYPECONST = 'HMBT';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Build Target');
}
public function newObject() {
return new HarbormasterBuildTarget();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildTargetQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$build_target = $objects[$phid];
}
}
}
diff --git a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildable.php b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildable.php
index 6b05ec6d50..d88dfcfc5c 100644
--- a/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildable.php
+++ b/src/applications/harbormaster/phid/HarbormasterPHIDTypeBuildable.php
@@ -1,74 +1,70 @@
<?php
final class HarbormasterPHIDTypeBuildable extends PhabricatorPHIDType {
const TYPECONST = 'HMBB';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Buildable');
}
public function newObject() {
return new HarbormasterBuildable();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HarbormasterBuildableQuery())
->withPHIDs($phids)
->needBuildableHandles(true);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$buildable = $objects[$phid];
$id = $buildable->getID();
$target = $buildable->getBuildableHandle()->getFullName();
$handle->setURI("/B{$id}");
$handle->setName("B{$id}");
$handle->setFullName("B{$id}: ".$target);
}
}
public function canLoadNamedObject($name) {
return preg_match('/^B\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new HarbormasterBuildableQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/herald/phid/HeraldPHIDTypeRule.php b/src/applications/herald/phid/HeraldPHIDTypeRule.php
index 62b05c696d..3db09494dd 100644
--- a/src/applications/herald/phid/HeraldPHIDTypeRule.php
+++ b/src/applications/herald/phid/HeraldPHIDTypeRule.php
@@ -1,73 +1,69 @@
<?php
final class HeraldPHIDTypeRule extends PhabricatorPHIDType {
const TYPECONST = 'HRUL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Herald Rule');
}
public function newObject() {
return new HeraldRule();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new HeraldRuleQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$rule = $objects[$phid];
$id = $rule->getID();
$name = $rule->getName();
$handle->setName("H{$id}");
$handle->setFullName("H{$id} {$name}");
$handle->setURI("/herald/rule/{$id}/");
}
}
public function canLoadNamedObject($name) {
return preg_match('/^H\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new HeraldRuleQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/legalpad/phid/PhabricatorLegalpadPHIDTypeDocument.php b/src/applications/legalpad/phid/PhabricatorLegalpadPHIDTypeDocument.php
index 58cdc582fc..f187ee335f 100644
--- a/src/applications/legalpad/phid/PhabricatorLegalpadPHIDTypeDocument.php
+++ b/src/applications/legalpad/phid/PhabricatorLegalpadPHIDTypeDocument.php
@@ -1,74 +1,70 @@
<?php
final class PhabricatorLegalpadPHIDTypeDocument extends PhabricatorPHIDType {
const TYPECONST = 'LEGD';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Legalpad Document');
}
public function getTypeIcon() {
return 'fa-file-text-o';
}
public function newObject() {
return new LegalpadDocument();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new LegalpadDocumentQuery())
->withPHIDs($phids)
->needDocumentBodies(true);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$document = $objects[$phid];
$name = $document->getDocumentBody()->getTitle();
$handle->setName($document->getMonogram().' '.$name);
$handle->setURI('/'.$document->getMonogram());
}
}
public function canLoadNamedObject($name) {
return preg_match('/^L\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new LegalpadDocumentQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/macro/phid/PhabricatorMacroPHIDTypeMacro.php b/src/applications/macro/phid/PhabricatorMacroPHIDTypeMacro.php
index 3c9aeb3ea0..9c883b77ab 100644
--- a/src/applications/macro/phid/PhabricatorMacroPHIDTypeMacro.php
+++ b/src/applications/macro/phid/PhabricatorMacroPHIDTypeMacro.php
@@ -1,48 +1,44 @@
<?php
final class PhabricatorMacroPHIDTypeMacro extends PhabricatorPHIDType {
const TYPECONST = 'MCRO';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Image Macro');
}
public function getTypeIcon() {
return 'fa-meh-o';
}
public function newObject() {
return new PhabricatorFileImageMacro();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorMacroQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$macro = $objects[$phid];
$id = $macro->getID();
$name = $macro->getName();
$handle->setName($name);
$handle->setFullName(pht('Image Macro "%s"', $name));
$handle->setURI("/macro/view/{$id}/");
}
}
}
diff --git a/src/applications/mailinglists/phid/PhabricatorMailingListPHIDTypeList.php b/src/applications/mailinglists/phid/PhabricatorMailingListPHIDTypeList.php
index 3371d2cf0f..6f0c0de0fb 100644
--- a/src/applications/mailinglists/phid/PhabricatorMailingListPHIDTypeList.php
+++ b/src/applications/mailinglists/phid/PhabricatorMailingListPHIDTypeList.php
@@ -1,75 +1,71 @@
<?php
final class PhabricatorMailingListPHIDTypeList extends PhabricatorPHIDType {
const TYPECONST = 'MLST';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Mailing List');
}
public function getTypeIcon() {
return 'fa-envelope-o';
}
public function newObject() {
return new PhabricatorMetaMTAMailingList();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorMailingListQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$list = $objects[$phid];
$handle->setName($list->getName());
$handle->setURI($list->getURI());
}
}
public function canLoadNamedObject($name) {
return preg_match('/^.+@.+/', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
// Maybe normalize these some day?
$id = $name;
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorMailingListQuery())
->setViewer($query->getViewer())
->withEmails(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
$email = $object->getEmail();
foreach (idx($id_map, $email, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/maniphest/phid/ManiphestPHIDTypeTask.php b/src/applications/maniphest/phid/ManiphestPHIDTypeTask.php
index 732ac82260..093c6aa388 100644
--- a/src/applications/maniphest/phid/ManiphestPHIDTypeTask.php
+++ b/src/applications/maniphest/phid/ManiphestPHIDTypeTask.php
@@ -1,80 +1,76 @@
<?php
final class ManiphestPHIDTypeTask extends PhabricatorPHIDType {
const TYPECONST = 'TASK';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Task');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationManiphest';
}
public function newObject() {
return new ManiphestTask();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new ManiphestTaskQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$task = $objects[$phid];
$id = $task->getID();
$title = $task->getTitle();
$handle->setName("T{$id}");
$handle->setFullName("T{$id}: {$title}");
$handle->setURI("/T{$id}");
if ($task->isClosed()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^T\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new ManiphestTaskQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/meta/phid/PhabricatorApplicationPHIDTypeApplication.php b/src/applications/meta/phid/PhabricatorApplicationPHIDTypeApplication.php
index 6ce6c27c6c..d35e43e6e8 100644
--- a/src/applications/meta/phid/PhabricatorApplicationPHIDTypeApplication.php
+++ b/src/applications/meta/phid/PhabricatorApplicationPHIDTypeApplication.php
@@ -1,41 +1,37 @@
<?php
final class PhabricatorApplicationPHIDTypeApplication
extends PhabricatorPHIDType {
const TYPECONST = 'APPS';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Application');
}
public function newObject() {
return null;
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorApplicationQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$application = $objects[$phid];
$handle->setName($application->getName());
$handle->setURI($application->getApplicationURI());
}
}
}
diff --git a/src/applications/nuance/phid/NuancePHIDTypeItem.php b/src/applications/nuance/phid/NuancePHIDTypeItem.php
index 41008847fd..79238343c8 100644
--- a/src/applications/nuance/phid/NuancePHIDTypeItem.php
+++ b/src/applications/nuance/phid/NuancePHIDTypeItem.php
@@ -1,42 +1,37 @@
<?php
-final class NuancePHIDTypeItem
- extends PhabricatorPHIDType {
+final class NuancePHIDTypeItem extends PhabricatorPHIDType {
const TYPECONST = 'NUAI';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Item');
}
public function newObject() {
return new NuanceItem();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new NuanceItemQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$item = $objects[$phid];
$handle->setName($item->getLabel($viewer));
$handle->setURI($item->getURI());
}
}
}
diff --git a/src/applications/nuance/phid/NuancePHIDTypeQueue.php b/src/applications/nuance/phid/NuancePHIDTypeQueue.php
index 964fe8d2ef..3f914e33ae 100644
--- a/src/applications/nuance/phid/NuancePHIDTypeQueue.php
+++ b/src/applications/nuance/phid/NuancePHIDTypeQueue.php
@@ -1,42 +1,38 @@
<?php
final class NuancePHIDTypeQueue
extends PhabricatorPHIDType {
const TYPECONST = 'NUAQ';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Queue');
}
public function newObject() {
return new NuanceQueue();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new NuanceQueueQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$queue = $objects[$phid];
$handle->setName($queue->getName());
$handle->setURI($queue->getURI());
}
}
}
diff --git a/src/applications/nuance/phid/NuancePHIDTypeRequestor.php b/src/applications/nuance/phid/NuancePHIDTypeRequestor.php
index d0d37f98d3..018c3581cb 100644
--- a/src/applications/nuance/phid/NuancePHIDTypeRequestor.php
+++ b/src/applications/nuance/phid/NuancePHIDTypeRequestor.php
@@ -1,42 +1,37 @@
<?php
-final class NuancePHIDTypeRequestor
- extends PhabricatorPHIDType {
+final class NuancePHIDTypeRequestor extends PhabricatorPHIDType {
const TYPECONST = 'NUAR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Requestor');
}
public function newObject() {
return new NuanceRequestor();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new NuanceRequestorQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$requestor = $objects[$phid];
$handle->setName($requestor->getBestName());
$handle->setURI($requestor->getURI());
}
}
}
diff --git a/src/applications/nuance/phid/NuancePHIDTypeSource.php b/src/applications/nuance/phid/NuancePHIDTypeSource.php
index 78db3fb0e8..2d43d7ef89 100644
--- a/src/applications/nuance/phid/NuancePHIDTypeSource.php
+++ b/src/applications/nuance/phid/NuancePHIDTypeSource.php
@@ -1,42 +1,37 @@
<?php
-final class NuancePHIDTypeSource
- extends PhabricatorPHIDType {
+final class NuancePHIDTypeSource extends PhabricatorPHIDType {
const TYPECONST = 'NUAS';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Source');
}
public function newObject() {
return new NuanceSource();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new NuanceSourceQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$source = $objects[$phid];
$handle->setName($source->getName());
$handle->setURI($source->getURI());
}
}
}
diff --git a/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClient.php b/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClient.php
index f66101a62f..a1776af81b 100644
--- a/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClient.php
+++ b/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClient.php
@@ -1,40 +1,36 @@
<?php
final class PhabricatorOAuthServerPHIDTypeClient
extends PhabricatorPHIDType {
const TYPECONST = 'OASC';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('OAuth Application');
}
public function newObject() {
return new PhabricatorOAuthServerClient();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorOAuthServerClientQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$client = $objects[$phid];
$handle->setName($client->getName());
}
}
}
diff --git a/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClientAuthorization.php b/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClientAuthorization.php
index 2784263667..9618ec1f8e 100644
--- a/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClientAuthorization.php
+++ b/src/applications/oauthserver/phid/PhabricatorOAuthServerPHIDTypeClientAuthorization.php
@@ -1,39 +1,35 @@
<?php
final class PhabricatorOAuthServerPHIDTypeClientAuthorization
extends PhabricatorPHIDType {
const TYPECONST = 'OASA';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('OAuth Authorization');
}
public function newObject() {
return new PhabricatorOAuthClientAuthorization();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorOAuthClientAuthorizationQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$authorization = $objects[$phid];
$handle->setName(pht('Authorization %d', $authorization->getID()));
}
}
}
diff --git a/src/applications/owners/phid/PhabricatorOwnersPHIDTypePackage.php b/src/applications/owners/phid/PhabricatorOwnersPHIDTypePackage.php
index 6aff840c22..8c7a255114 100644
--- a/src/applications/owners/phid/PhabricatorOwnersPHIDTypePackage.php
+++ b/src/applications/owners/phid/PhabricatorOwnersPHIDTypePackage.php
@@ -1,47 +1,43 @@
<?php
final class PhabricatorOwnersPHIDTypePackage extends PhabricatorPHIDType {
const TYPECONST = 'OPKG';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Owners Package');
}
public function getTypeIcon() {
return 'fa-list-alt';
}
public function newObject() {
return new PhabricatorOwnersPackage();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorOwnersPackageQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$package = $objects[$phid];
$name = $package->getName();
$id = $package->getID();
$handle->setName($name);
$handle->setURI("/owners/package/{$id}/");
}
}
}
diff --git a/src/applications/passphrase/phid/PassphrasePHIDTypeCredential.php b/src/applications/passphrase/phid/PassphrasePHIDTypeCredential.php
index ac7fedaa93..cfd994f9bd 100644
--- a/src/applications/passphrase/phid/PassphrasePHIDTypeCredential.php
+++ b/src/applications/passphrase/phid/PassphrasePHIDTypeCredential.php
@@ -1,76 +1,72 @@
<?php
final class PassphrasePHIDTypeCredential extends PhabricatorPHIDType {
const TYPECONST = 'CDTL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Credential');
}
public function newObject() {
return new PassphraseCredential();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PassphraseCredentialQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$credential = $objects[$phid];
$id = $credential->getID();
$name = $credential->getName();
$handle->setName("K{$id}");
$handle->setFullName("K{$id} {$name}");
$handle->setURI("/K{$id}");
if ($credential->getIsDestroyed()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^K\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PassphraseCredentialQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/paste/phid/PhabricatorPastePHIDTypePaste.php b/src/applications/paste/phid/PhabricatorPastePHIDTypePaste.php
index 5e3ef4fd81..6256e2892c 100644
--- a/src/applications/paste/phid/PhabricatorPastePHIDTypePaste.php
+++ b/src/applications/paste/phid/PhabricatorPastePHIDTypePaste.php
@@ -1,73 +1,69 @@
<?php
final class PhabricatorPastePHIDTypePaste extends PhabricatorPHIDType {
const TYPECONST = 'PSTE';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Paste');
}
public function newObject() {
return new PhabricatorPaste();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorPasteQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$paste = $objects[$phid];
$id = $paste->getID();
$name = $paste->getFullName();
$handle->setName("P{$id}");
$handle->setFullName($name);
$handle->setURI("/P{$id}");
}
}
public function canLoadNamedObject($name) {
return preg_match('/^P\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorPasteQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/people/phid/PhabricatorPeoplePHIDTypeExternal.php b/src/applications/people/phid/PhabricatorPeoplePHIDTypeExternal.php
index f84d9f3a1a..96ac3f601d 100644
--- a/src/applications/people/phid/PhabricatorPeoplePHIDTypeExternal.php
+++ b/src/applications/people/phid/PhabricatorPeoplePHIDTypeExternal.php
@@ -1,40 +1,36 @@
<?php
final class PhabricatorPeoplePHIDTypeExternal extends PhabricatorPHIDType {
const TYPECONST = 'XUSR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('External Account');
}
public function newObject() {
return new PhabricatorExternalAccount();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorExternalAccountQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$account = $objects[$phid];
$display_name = $account->getDisplayName();
$handle->setName($display_name);
}
}
}
diff --git a/src/applications/people/phid/PhabricatorPeoplePHIDTypeUser.php b/src/applications/people/phid/PhabricatorPeoplePHIDTypeUser.php
index 5f13d0e9a6..4be443a566 100644
--- a/src/applications/people/phid/PhabricatorPeoplePHIDTypeUser.php
+++ b/src/applications/people/phid/PhabricatorPeoplePHIDTypeUser.php
@@ -1,92 +1,88 @@
<?php
final class PhabricatorPeoplePHIDTypeUser extends PhabricatorPHIDType {
const TYPECONST = 'USER';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('User');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationPeople';
}
public function getTypeIcon() {
return 'fa-user bluegrey';
}
public function newObject() {
return new PhabricatorUser();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorPeopleQuery())
->withPHIDs($phids)
->needProfileImage(true)
->needStatus(true);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$user = $objects[$phid];
$realname = $user->getRealName();
$handle->setName($user->getUsername());
$handle->setURI('/p/'.$user->getUsername().'/');
$handle->setFullName($user->getFullName());
$handle->setImageURI($user->loadProfileImageURI());
$handle->setDisabled(!$user->isUserActivated());
if ($user->hasStatus()) {
$status = $user->getStatus();
$handle->setStatus($status->getTextStatus());
$handle->setTitle($status->getTerseSummary($query->getViewer()));
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^@.+/', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = substr($name, 1);
$id = phutil_utf8_strtolower($id);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorPeopleQuery())
->setViewer($query->getViewer())
->withUsernames(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
$user_key = $object->getUsername();
$user_key = phutil_utf8_strtolower($user_key);
foreach (idx($id_map, $user_key, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/phame/phid/PhabricatorPhamePHIDTypeBlog.php b/src/applications/phame/phid/PhabricatorPhamePHIDTypeBlog.php
index 633182dd14..bc38181e5b 100644
--- a/src/applications/phame/phid/PhabricatorPhamePHIDTypeBlog.php
+++ b/src/applications/phame/phid/PhabricatorPhamePHIDTypeBlog.php
@@ -1,40 +1,36 @@
<?php
final class PhabricatorPhamePHIDTypeBlog extends PhabricatorPHIDType {
const TYPECONST = 'BLOG';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Phame Blog');
}
public function newObject() {
return new PhameBlog();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhameBlogQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$blog = $objects[$phid];
$handle->setName($blog->getName());
$handle->setFullName($blog->getName());
$handle->setURI('/phame/blog/view/'.$blog->getID().'/');
}
}
}
diff --git a/src/applications/phame/phid/PhabricatorPhamePHIDTypePost.php b/src/applications/phame/phid/PhabricatorPhamePHIDTypePost.php
index 240851a9c3..09080708d6 100644
--- a/src/applications/phame/phid/PhabricatorPhamePHIDTypePost.php
+++ b/src/applications/phame/phid/PhabricatorPhamePHIDTypePost.php
@@ -1,40 +1,36 @@
<?php
final class PhabricatorPhamePHIDTypePost extends PhabricatorPHIDType {
const TYPECONST = 'POST';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Phame Post');
}
public function newObject() {
return new PhamePost();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhamePostQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$post = $objects[$phid];
$handle->setName($post->getTitle());
$handle->setFullName($post->getTitle());
$handle->setURI('/phame/post/view/'.$post->getID().'/');
}
}
}
diff --git a/src/applications/phid/type/PhabricatorPHIDType.php b/src/applications/phid/type/PhabricatorPHIDType.php
index e1d1647eb2..035f4214f0 100644
--- a/src/applications/phid/type/PhabricatorPHIDType.php
+++ b/src/applications/phid/type/PhabricatorPHIDType.php
@@ -1,203 +1,224 @@
<?php
abstract class PhabricatorPHIDType {
- abstract public function getTypeConstant();
+ final public function getTypeConstant() {
+ $class = new ReflectionClass($this);
+
+ $const = $class->getConstant('TYPECONST');
+ if ($const === false) {
+ throw new Exception(
+ pht(
+ 'PHIDType class "%s" must define an TYPECONST property.',
+ get_class($this)));
+ }
+
+ if (!is_string($const) || !preg_match('/^[A-Z]{4}$/', $const)) {
+ throw new Exception(
+ pht(
+ 'PHIDType class "%s" has an invalid TYPECONST property. PHID '.
+ 'constants must be a four character uppercase string.',
+ get_class($this)));
+ }
+
+ return $const;
+ }
+
abstract public function getTypeName();
public function newObject() {
return null;
}
public function getTypeIcon() {
return null;
}
/**
* Get the class name for the application this type belongs to.
*
* @return string|null Class name of the corresponding application, or null
* if the type is not bound to an application.
*/
public function getPHIDTypeApplicationClass() {
// TODO: Some day this should probably be abstract, but for now it only
// affects global search and there's no real burning need to go classify
// every PHID type.
return null;
}
/**
* Build a @{class:PhabricatorPolicyAwareQuery} to load objects of this type
* by PHID.
*
* If you can not build a single query which satisfies this requirement, you
* can provide a dummy implementation for this method and overload
* @{method:loadObjects} instead.
*
* @param PhabricatorObjectQuery Query being executed.
* @param list<phid> PHIDs to load.
* @return PhabricatorPolicyAwareQuery Query object which loads the
* specified PHIDs when executed.
*/
abstract protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids);
/**
* Load objects of this type, by PHID. For most PHID types, it is only
* necessary to implement @{method:buildQueryForObjects} to get object
* loading to work.
*
* @param PhabricatorObjectQuery Query being executed.
* @param list<phid> PHIDs to load.
* @return list<wild> Corresponding objects.
*/
public function loadObjects(
PhabricatorObjectQuery $query,
array $phids) {
$object_query = $this->buildQueryForObjects($query, $phids)
->setViewer($query->getViewer())
->setParentQuery($query);
// If the user doesn't have permission to use the application at all,
// just mark all the PHIDs as filtered. This primarily makes these
// objects show up as "Restricted" instead of "Unknown" when loaded as
// handles, which is technically true.
if (!$object_query->canViewerUseQueryApplication()) {
$object_query->addPolicyFilteredPHIDs(array_fuse($phids));
return array();
}
return $object_query->execute();
}
/**
* Populate provided handles with application-specific data, like titles and
* URIs.
*
* NOTE: The `$handles` and `$objects` lists are guaranteed to be nonempty
* and have the same keys: subclasses are expected to load information only
* for handles with visible objects.
*
* Because of this guarantee, a safe implementation will typically look like*
*
* foreach ($handles as $phid => $handle) {
* $object = $objects[$phid];
*
* $handle->setStuff($object->getStuff());
* // ...
* }
*
* In general, an implementation should call `setName()` and `setURI()` on
* each handle at a minimum. See @{class:PhabricatorObjectHandle} for other
* handle properties.
*
* @param PhabricatorHandleQuery Issuing query object.
* @param list<PhabricatorObjectHandle> Handles to populate with data.
* @param list<Object> Objects for these PHIDs loaded by
* @{method:buildQueryForObjects()}.
* @return void
*/
abstract public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects);
public function canLoadNamedObject($name) {
return false;
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
throw new Exception('Not implemented!');
}
/**
* Get all known PHID types.
*
* To get PHID types a given user has access to, see
* @{method:getAllInstalledTypes}.
*
* @return dict<string, PhabricatorPHIDType> Map of type constants to types.
*/
public static function getAllTypes() {
static $types;
if ($types === null) {
$objects = id(new PhutilSymbolLoader())
->setAncestorClass(__CLASS__)
->loadObjects();
$map = array();
$original = array();
foreach ($objects as $object) {
$type = $object->getTypeConstant();
if (isset($map[$type])) {
$that_class = $original[$type];
$this_class = get_class($object);
throw new Exception(
"Two PhabricatorPHIDType classes ({$that_class}, {$this_class}) ".
"both handle PHID type '{$type}'. A type may be handled by only ".
"one class.");
}
$original[$type] = get_class($object);
$map[$type] = $object;
}
$types = $map;
}
return $types;
}
/**
* Get all PHID types of applications installed for a given viewer.
*
* @param PhabricatorUser Viewing user.
* @return dict<string, PhabricatorPHIDType> Map of constants to installed
* types.
*/
public static function getAllInstalledTypes(PhabricatorUser $viewer) {
$all_types = self::getAllTypes();
$installed_types = array();
$app_classes = array();
foreach ($all_types as $key => $type) {
$app_class = $type->getPHIDTypeApplicationClass();
if ($app_class === null) {
// If the PHID type isn't bound to an application, include it as
// installed.
$installed_types[$key] = $type;
continue;
}
// Otherwise, we need to check if this application is installed before
// including the PHID type.
$app_classes[$app_class][$key] = $type;
}
if ($app_classes) {
$apps = id(new PhabricatorApplicationQuery())
->setViewer($viewer)
->withInstalled(true)
->withClasses(array_keys($app_classes))
->execute();
foreach ($apps as $app_class => $app) {
$installed_types += $app_classes[$app_class];
}
}
return $installed_types;
}
}
diff --git a/src/applications/phlux/phid/PhluxPHIDTypeVariable.php b/src/applications/phlux/phid/PhluxPHIDTypeVariable.php
index 165bc6d6e7..dc61151b86 100644
--- a/src/applications/phlux/phid/PhluxPHIDTypeVariable.php
+++ b/src/applications/phlux/phid/PhluxPHIDTypeVariable.php
@@ -1,43 +1,39 @@
<?php
final class PhluxPHIDTypeVariable extends PhabricatorPHIDType {
const TYPECONST = 'PVAR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Variable');
}
public function newObject() {
return new PhluxVariable();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhluxVariableQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$variable = $objects[$phid];
$key = $variable->getVariableKey();
$handle->setName($key);
$handle->setFullName(pht('Variable "%s"', $key));
$handle->setURI("/phlux/view/{$key}/");
}
}
}
diff --git a/src/applications/pholio/phid/PholioPHIDTypeImage.php b/src/applications/pholio/phid/PholioPHIDTypeImage.php
index 54b806cc21..0df43956fc 100644
--- a/src/applications/pholio/phid/PholioPHIDTypeImage.php
+++ b/src/applications/pholio/phid/PholioPHIDTypeImage.php
@@ -1,45 +1,41 @@
<?php
final class PholioPHIDTypeImage extends PhabricatorPHIDType {
const TYPECONST = 'PIMG';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Image');
}
public function newObject() {
return new PholioImage();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PholioImageQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$image = $objects[$phid];
$id = $image->getID();
$mock_id = $image->getMockID();
$name = $image->getName();
$handle->setURI("/M{$mock_id}/{$id}/");
$handle->setName($name);
$handle->setFullName($name);
}
}
}
diff --git a/src/applications/pholio/phid/PholioPHIDTypeMock.php b/src/applications/pholio/phid/PholioPHIDTypeMock.php
index 39025fcfd8..0cd08c8e68 100644
--- a/src/applications/pholio/phid/PholioPHIDTypeMock.php
+++ b/src/applications/pholio/phid/PholioPHIDTypeMock.php
@@ -1,81 +1,77 @@
<?php
final class PholioPHIDTypeMock extends PhabricatorPHIDType {
const TYPECONST = 'MOCK';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Mock');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationPholio';
}
public function newObject() {
return new PholioMock();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PholioMockQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$mock = $objects[$phid];
$id = $mock->getID();
$name = $mock->getName();
$handle->setURI("/M{$id}");
$handle->setName("M{$id}");
$handle->setFullName("M{$id}: {$name}");
if ($mock->isClosed()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public function canLoadNamedObject($name) {
return preg_match('/^M\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PholioMockQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/phragment/phid/PhragmentPHIDTypeFragment.php b/src/applications/phragment/phid/PhragmentPHIDTypeFragment.php
index 0a5484911e..2b26e6717c 100644
--- a/src/applications/phragment/phid/PhragmentPHIDTypeFragment.php
+++ b/src/applications/phragment/phid/PhragmentPHIDTypeFragment.php
@@ -1,45 +1,40 @@
<?php
-final class PhragmentPHIDTypeFragment
- extends PhabricatorPHIDType {
+final class PhragmentPHIDTypeFragment extends PhabricatorPHIDType {
const TYPECONST = 'PHRF';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Fragment');
}
public function newObject() {
return new PhragmentFragment();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhragmentFragmentQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$fragment = $objects[$phid];
$handle->setName(pht(
'Fragment %s: %s',
$fragment->getID(),
$fragment->getName()));
$handle->setURI($fragment->getURI());
}
}
}
diff --git a/src/applications/phragment/phid/PhragmentPHIDTypeFragmentVersion.php b/src/applications/phragment/phid/PhragmentPHIDTypeFragmentVersion.php
index b667625709..3811bd49e6 100644
--- a/src/applications/phragment/phid/PhragmentPHIDTypeFragmentVersion.php
+++ b/src/applications/phragment/phid/PhragmentPHIDTypeFragmentVersion.php
@@ -1,45 +1,40 @@
<?php
-final class PhragmentPHIDTypeFragmentVersion
- extends PhabricatorPHIDType {
+final class PhragmentPHIDTypeFragmentVersion extends PhabricatorPHIDType {
const TYPECONST = 'PHRV';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Fragment Version');
}
public function newObject() {
return new PhragmentFragmentVersion();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhragmentFragmentVersionQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$version = $objects[$phid];
$handle->setName(pht(
'Fragment Version %d: %s',
$version->getSequence(),
$version->getFragment()->getName()));
$handle->setURI($version->getURI());
}
}
}
diff --git a/src/applications/phragment/phid/PhragmentPHIDTypeSnapshot.php b/src/applications/phragment/phid/PhragmentPHIDTypeSnapshot.php
index 29e4c70884..235aaa34ad 100644
--- a/src/applications/phragment/phid/PhragmentPHIDTypeSnapshot.php
+++ b/src/applications/phragment/phid/PhragmentPHIDTypeSnapshot.php
@@ -1,44 +1,39 @@
<?php
-final class PhragmentPHIDTypeSnapshot
- extends PhabricatorPHIDType {
+final class PhragmentPHIDTypeSnapshot extends PhabricatorPHIDType {
const TYPECONST = 'PHRS';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Snapshot');
}
public function newObject() {
return new PhragmentSnapshot();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhragmentSnapshotQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
$viewer = $query->getViewer();
foreach ($handles as $phid => $handle) {
$snapshot = $objects[$phid];
$handle->setName(pht(
'Snapshot: %s',
$snapshot->getName()));
$handle->setURI($snapshot->getURI());
}
}
}
diff --git a/src/applications/phriction/phid/PhrictionPHIDTypeDocument.php b/src/applications/phriction/phid/PhrictionPHIDTypeDocument.php
index 01034362c6..f043db7b18 100644
--- a/src/applications/phriction/phid/PhrictionPHIDTypeDocument.php
+++ b/src/applications/phriction/phid/PhrictionPHIDTypeDocument.php
@@ -1,54 +1,50 @@
<?php
final class PhrictionPHIDTypeDocument extends PhabricatorPHIDType {
const TYPECONST = 'WIKI';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Wiki Document');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationPhriction';
}
public function newObject() {
return new PhrictionDocument();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhrictionDocumentQuery())
->withPHIDs($phids)
->needContent(true);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$document = $objects[$phid];
$content = $document->getContent();
$title = $content->getTitle();
$slug = $document->getSlug();
$status = $document->getStatus();
$handle->setName($title);
$handle->setURI(PhrictionDocument::getSlugURI($slug));
if ($status != PhrictionDocumentStatus::STATUS_EXISTS) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
}
diff --git a/src/applications/policy/phid/PhabricatorPolicyPHIDTypePolicy.php b/src/applications/policy/phid/PhabricatorPolicyPHIDTypePolicy.php
index 784ad8926a..225aa22ac1 100644
--- a/src/applications/policy/phid/PhabricatorPolicyPHIDTypePolicy.php
+++ b/src/applications/policy/phid/PhabricatorPolicyPHIDTypePolicy.php
@@ -1,41 +1,36 @@
<?php
-final class PhabricatorPolicyPHIDTypePolicy
- extends PhabricatorPHIDType {
+final class PhabricatorPolicyPHIDTypePolicy extends PhabricatorPHIDType {
const TYPECONST = 'PLCY';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Policy');
}
public function newObject() {
return new PhabricatorPolicy();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorPolicyQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$policy = $objects[$phid];
$handle->setName($policy->getName());
$handle->setURI($policy->getHref());
}
}
}
diff --git a/src/applications/ponder/phid/PonderPHIDTypeAnswer.php b/src/applications/ponder/phid/PonderPHIDTypeAnswer.php
index be6b4d6779..c4a6a7477c 100644
--- a/src/applications/ponder/phid/PonderPHIDTypeAnswer.php
+++ b/src/applications/ponder/phid/PonderPHIDTypeAnswer.php
@@ -1,42 +1,38 @@
<?php
final class PonderPHIDTypeAnswer extends PhabricatorPHIDType {
const TYPECONST = 'ANSW';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Answer');
}
public function newObject() {
return new PonderAnswer();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PonderAnswerQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$answer = $objects[$phid];
$id = $answer->getID();
$handle->setName("Answer {$id}");
$handle->setURI($answer->getURI());
}
}
}
diff --git a/src/applications/ponder/phid/PonderPHIDTypeQuestion.php b/src/applications/ponder/phid/PonderPHIDTypeQuestion.php
index 10000df7e0..d057241a95 100644
--- a/src/applications/ponder/phid/PonderPHIDTypeQuestion.php
+++ b/src/applications/ponder/phid/PonderPHIDTypeQuestion.php
@@ -1,76 +1,72 @@
<?php
final class PonderPHIDTypeQuestion extends PhabricatorPHIDType {
const TYPECONST = 'QUES';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Question');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationPonder';
}
public function newObject() {
return new PonderQuestion();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PonderQuestionQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$question = $objects[$phid];
$id = $question->getID();
$handle->setName("Q{$id}");
$handle->setURI("/Q{$id}");
$handle->setFullName($question->getFullTitle());
}
}
public function canLoadNamedObject($name) {
return preg_match('/^Q\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PonderQuestionQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/project/phid/PhabricatorProjectPHIDTypeColumn.php b/src/applications/project/phid/PhabricatorProjectPHIDTypeColumn.php
index ff2e764a94..eb22f2ce79 100644
--- a/src/applications/project/phid/PhabricatorProjectPHIDTypeColumn.php
+++ b/src/applications/project/phid/PhabricatorProjectPHIDTypeColumn.php
@@ -1,45 +1,41 @@
<?php
final class PhabricatorProjectPHIDTypeColumn extends PhabricatorPHIDType {
const TYPECONST = 'PCOL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Project Column');
}
public function newObject() {
return new PhabricatorProjectColumn();
}
public function getTypeIcon() {
return 'fa-columns bluegrey';
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorProjectColumnQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$column = $objects[$phid];
$handle->setName($column->getDisplayName());
$handle->setURI('/project/board/'.$column->getProject()->getID().'/');
$handle->setDisabled($column->isHidden());
}
}
}
diff --git a/src/applications/project/phid/PhabricatorProjectPHIDTypeProject.php b/src/applications/project/phid/PhabricatorProjectPHIDTypeProject.php
index 9148a3e186..5b78350fae 100644
--- a/src/applications/project/phid/PhabricatorProjectPHIDTypeProject.php
+++ b/src/applications/project/phid/PhabricatorProjectPHIDTypeProject.php
@@ -1,115 +1,111 @@
<?php
final class PhabricatorProjectPHIDTypeProject extends PhabricatorPHIDType {
const TYPECONST = 'PROJ';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Project');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationProject';
}
public function getTypeIcon() {
return 'fa-briefcase bluegrey';
}
public function newObject() {
return new PhabricatorProject();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorProjectQuery())
->withPHIDs($phids)
->needImages(true);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$project = $objects[$phid];
$name = $project->getName();
$id = $project->getID();
$slug = $project->getPrimarySlug();
$handle->setName($name);
$handle->setObjectName('#'.$slug);
$handle->setURI("/tag/{$slug}/");
$handle->setImageURI($project->getProfileImageURI());
$handle->setIcon($project->getIcon());
$handle->setTagColor($project->getColor());
if ($project->isArchived()) {
$handle->setStatus(PhabricatorObjectHandleStatus::STATUS_CLOSED);
}
}
}
public static function getProjectMonogramPatternFragment() {
// NOTE: See some discussion in ProjectRemarkupRule.
return '[^\s,#]+';
}
public function canLoadNamedObject($name) {
$fragment = self::getProjectMonogramPatternFragment();
return preg_match('/^#'.$fragment.'$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
// If the user types "#YoloSwag", we still want to match "#yoloswag", so
// we normalize, query, and then map back to the original inputs.
$map = array();
foreach ($names as $key => $slug) {
$map[$this->normalizeSlug(substr($slug, 1))][] = $slug;
}
$projects = id(new PhabricatorProjectQuery())
->setViewer($query->getViewer())
->withSlugs(array_keys($map))
->needSlugs(true)
->execute();
$result = array();
foreach ($projects as $project) {
$slugs = $project->getSlugs();
$slug_strs = mpull($slugs, 'getSlug');
foreach ($slug_strs as $slug) {
$slug_map = idx($map, $slug, array());
foreach ($slug_map as $original) {
$result[$original] = $project;
}
}
}
return $result;
}
private function normalizeSlug($slug) {
// NOTE: We're using phutil_utf8_strtolower() (and not PhabricatorSlug's
// normalize() method) because this normalization should be only somewhat
// liberal. We want "#YOLO" to match against "#yolo", but "#\\yo!!lo"
// should not. normalize() strips out most punctuation and leads to
// excessively aggressive matches.
return phutil_utf8_strtolower($slug);
}
}
diff --git a/src/applications/releeph/phid/ReleephPHIDTypeBranch.php b/src/applications/releeph/phid/ReleephPHIDTypeBranch.php
index 8978d77853..926021ef1c 100644
--- a/src/applications/releeph/phid/ReleephPHIDTypeBranch.php
+++ b/src/applications/releeph/phid/ReleephPHIDTypeBranch.php
@@ -1,41 +1,37 @@
<?php
final class ReleephPHIDTypeBranch extends PhabricatorPHIDType {
const TYPECONST = 'REBR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Releeph Branch');
}
public function newObject() {
return new ReleephBranch();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new ReleephBranchQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$branch = $objects[$phid];
$handle->setURI($branch->getURI());
$handle->setName($branch->getBasename());
$handle->setFullName($branch->getName());
}
}
}
diff --git a/src/applications/releeph/phid/ReleephPHIDTypeProduct.php b/src/applications/releeph/phid/ReleephPHIDTypeProduct.php
index da7a0a63d9..61bc5c536e 100644
--- a/src/applications/releeph/phid/ReleephPHIDTypeProduct.php
+++ b/src/applications/releeph/phid/ReleephPHIDTypeProduct.php
@@ -1,40 +1,36 @@
<?php
final class ReleephPHIDTypeProduct extends PhabricatorPHIDType {
const TYPECONST = 'REPR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Releeph Product');
}
public function newObject() {
return new ReleephProject();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new ReleephProductQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$product = $objects[$phid];
$handle->setName($product->getName());
$handle->setURI($product->getURI());
}
}
}
diff --git a/src/applications/releeph/phid/ReleephPHIDTypeRequest.php b/src/applications/releeph/phid/ReleephPHIDTypeRequest.php
index 36466d86ff..f5352350c1 100644
--- a/src/applications/releeph/phid/ReleephPHIDTypeRequest.php
+++ b/src/applications/releeph/phid/ReleephPHIDTypeRequest.php
@@ -1,44 +1,40 @@
<?php
final class ReleephPHIDTypeRequest extends PhabricatorPHIDType {
const TYPECONST = 'RERQ';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Releeph Request');
}
public function newObject() {
return new ReleephRequest();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new ReleephRequestQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$request = $objects[$phid];
$id = $request->getID();
$title = $request->getSummaryForDisplay();
$handle->setURI("/RQ{$id}");
$handle->setName($title);
$handle->setFullName("RQ{$id}: {$title}");
}
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeArcanistProject.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeArcanistProject.php
index e42ae18460..dcbb76b3ed 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeArcanistProject.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeArcanistProject.php
@@ -1,39 +1,35 @@
<?php
final class PhabricatorRepositoryPHIDTypeArcanistProject
extends PhabricatorPHIDType {
const TYPECONST = 'APRJ';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Arcanist Project');
}
public function newObject() {
return new PhabricatorRepositoryArcanistProject();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorRepositoryArcanistProjectQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$project = $objects[$phid];
$handle->setName($project->getName());
}
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeCommit.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeCommit.php
index 62075cabfb..acd548de05 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeCommit.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeCommit.php
@@ -1,87 +1,83 @@
<?php
final class PhabricatorRepositoryPHIDTypeCommit extends PhabricatorPHIDType {
const TYPECONST = 'CMIT';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Commit');
}
public function getPHIDTypeApplicationClass() {
return 'PhabricatorApplicationDiffusion';
}
public function newObject() {
return new PhabricatorRepositoryCommit();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new DiffusionCommitQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$commit = $objects[$phid];
$repository = $commit->getRepository();
$commit_identifier = $commit->getCommitIdentifier();
$name = $repository->formatCommitName($commit_identifier);
$summary = $commit->getSummary();
if (strlen($summary)) {
$full_name = $name.': '.$summary;
} else {
$full_name = $name;
}
$handle->setName($name);
$handle->setFullName($full_name);
$handle->setURI($commit->getURI());
$handle->setTimestamp($commit->getEpoch());
}
}
public static function getCommitObjectNamePattern() {
$min_unqualified = PhabricatorRepository::MINIMUM_UNQUALIFIED_HASH;
$min_qualified = PhabricatorRepository::MINIMUM_QUALIFIED_HASH;
return
'r[A-Z]+[1-9]\d*'.
'|'.
'r[A-Z]+[a-f0-9]{'.$min_qualified.',40}'.
'|'.
'[a-f0-9]{'.$min_unqualified.',40}';
}
public function canLoadNamedObject($name) {
$pattern = self::getCommitObjectNamePattern();
return preg_match('(^'.$pattern.'$)', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$query = id(new DiffusionCommitQuery())
->setViewer($query->getViewer())
->withIdentifiers($names);
$query->execute();
return $query->getIdentifierMap();
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeMirror.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeMirror.php
index 8dcf103dc8..541893844e 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeMirror.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeMirror.php
@@ -1,42 +1,37 @@
<?php
-final class PhabricatorRepositoryPHIDTypeMirror
- extends PhabricatorPHIDType {
+final class PhabricatorRepositoryPHIDTypeMirror extends PhabricatorPHIDType {
const TYPECONST = 'RMIR';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Repository Mirror');
}
public function newObject() {
return new PhabricatorRepositoryMirror();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorRepositoryMirrorQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$mirror = $objects[$phid];
$handle->setName(
pht('Mirror %d %s', $mirror->getID(), $mirror->getRemoteURI()));
$handle->setURI('/diffusion/mirror/'.$mirror->getID().'/');
}
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushEvent.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushEvent.php
index 800101f863..95daf9d2be 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushEvent.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushEvent.php
@@ -1,40 +1,35 @@
<?php
-final class PhabricatorRepositoryPHIDTypePushEvent
- extends PhabricatorPHIDType {
+final class PhabricatorRepositoryPHIDTypePushEvent extends PhabricatorPHIDType {
const TYPECONST = 'PSHE';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Push Event');
}
public function newObject() {
return new PhabricatorRepositoryPushEvent();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorRepositoryPushEventQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$event = $objects[$phid];
$handle->setName(pht('Push Event %d', $event->getID()));
}
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushLog.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushLog.php
index a2e5e57133..c734b05b6c 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushLog.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypePushLog.php
@@ -1,40 +1,35 @@
<?php
-final class PhabricatorRepositoryPHIDTypePushLog
- extends PhabricatorPHIDType {
+final class PhabricatorRepositoryPHIDTypePushLog extends PhabricatorPHIDType {
const TYPECONST = 'PSHL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Push Log');
}
public function newObject() {
return new PhabricatorRepositoryPushLog();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorRepositoryPushLogQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$log = $objects[$phid];
$handle->setName(pht('Push Log %d', $log->getID()));
}
}
}
diff --git a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeRepository.php b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeRepository.php
index 4b92c2d6b3..7f20c3d02d 100644
--- a/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeRepository.php
+++ b/src/applications/repository/phid/PhabricatorRepositoryPHIDTypeRepository.php
@@ -1,80 +1,76 @@
<?php
final class PhabricatorRepositoryPHIDTypeRepository
extends PhabricatorPHIDType {
const TYPECONST = 'REPO';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Repository');
}
public function getTypeIcon() {
return 'fa-database';
}
public function newObject() {
return new PhabricatorRepository();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorRepositoryQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$repository = $objects[$phid];
$monogram = $repository->getMonogram();
$callsign = $repository->getCallsign();
$name = $repository->getName();
$handle->setName($monogram);
$handle->setFullName("{$monogram} {$name}");
$handle->setURI("/diffusion/{$callsign}/");
}
}
public function canLoadNamedObject($name) {
return preg_match('/^r[A-Z]+$/', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorRepositoryQuery())
->setViewer($query->getViewer())
->withCallsigns(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $object) {
$callsign = $object->getCallsign();
foreach (idx($id_map, $callsign, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/slowvote/phid/PhabricatorSlowvotePHIDTypePoll.php b/src/applications/slowvote/phid/PhabricatorSlowvotePHIDTypePoll.php
index 36ad531375..834b70c698 100644
--- a/src/applications/slowvote/phid/PhabricatorSlowvotePHIDTypePoll.php
+++ b/src/applications/slowvote/phid/PhabricatorSlowvotePHIDTypePoll.php
@@ -1,70 +1,66 @@
<?php
final class PhabricatorSlowvotePHIDTypePoll extends PhabricatorPHIDType {
const TYPECONST = 'POLL';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Slowvote Poll');
}
public function newObject() {
return new PhabricatorSlowvotePoll();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorSlowvoteQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$poll = $objects[$phid];
$handle->setName('V'.$poll->getID());
$handle->setFullName('V'.$poll->getID().': '.$poll->getQuestion());
$handle->setURI('/V'.$poll->getID());
}
}
public function canLoadNamedObject($name) {
return preg_match('/^V\d*[1-9]\d*$/i', $name);
}
public function loadNamedObjects(
PhabricatorObjectQuery $query,
array $names) {
$id_map = array();
foreach ($names as $name) {
$id = (int)substr($name, 1);
$id_map[$id][] = $name;
}
$objects = id(new PhabricatorSlowvoteQuery())
->setViewer($query->getViewer())
->withIDs(array_keys($id_map))
->execute();
$results = array();
foreach ($objects as $id => $object) {
foreach (idx($id_map, $id, array()) as $name) {
$results[$name] = $object;
}
}
return $results;
}
}
diff --git a/src/applications/tokens/phid/PhabricatorTokenPHIDTypeToken.php b/src/applications/tokens/phid/PhabricatorTokenPHIDTypeToken.php
index c641a1efbd..ee5e5375ab 100644
--- a/src/applications/tokens/phid/PhabricatorTokenPHIDTypeToken.php
+++ b/src/applications/tokens/phid/PhabricatorTokenPHIDTypeToken.php
@@ -1,41 +1,37 @@
<?php
final class PhabricatorTokenPHIDTypeToken extends PhabricatorPHIDType {
const TYPECONST = 'TOKN';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Token');
}
public function newObject() {
return new PhabricatorToken();
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new PhabricatorTokenQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$token = $objects[$phid];
$name = $token->getName();
$handle->setName("{$name} Token");
}
}
}
diff --git a/src/applications/transactions/phid/PhabricatorApplicationTransactionPHIDTypeTransaction.php b/src/applications/transactions/phid/PhabricatorApplicationTransactionPHIDTypeTransaction.php
index 97841ba04f..195686d7bb 100644
--- a/src/applications/transactions/phid/PhabricatorApplicationTransactionPHIDTypeTransaction.php
+++ b/src/applications/transactions/phid/PhabricatorApplicationTransactionPHIDTypeTransaction.php
@@ -1,92 +1,88 @@
<?php
final class PhabricatorApplicationTransactionPHIDTypeTransaction
extends PhabricatorPHIDType {
const TYPECONST = 'XACT';
- public function getTypeConstant() {
- return self::TYPECONST;
- }
-
public function getTypeName() {
return pht('Transaction');
}
public function newObject() {
// NOTE: We could produce an object here, but we'd need to take a PHID type
// and subtype to do so. Currently, we never write edges to transactions,
// so leave this unimplemented for the moment.
return null;
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $object_query,
array $phids) {
throw new Exception();
}
public function loadObjects(
PhabricatorObjectQuery $object_query,
array $phids) {
static $queries;
if ($queries === null) {
$objects = id(new PhutilSymbolLoader())
->setAncestorClass('PhabricatorApplicationTransactionQuery')
->loadObjects();
$queries = array();
foreach ($objects as $object) {
$type = $object
->getTemplateApplicationTransaction()
->getApplicationTransactionType();
$queries[$type] = $object;
}
}
$phid_subtypes = array();
foreach ($phids as $phid) {
$subtype = phid_get_subtype($phid);
if ($subtype) {
$phid_subtypes[$subtype][] = $phid;
}
}
$results = array();
foreach ($phid_subtypes as $subtype => $subtype_phids) {
$query = idx($queries, $subtype);
if (!$query) {
continue;
}
$xaction_query = id(clone $query)
->setViewer($object_query->getViewer())
->setParentQuery($object_query)
->withPHIDs($subtype_phids);
if (!$xaction_query->canViewerUseQueryApplication()) {
$object_query->addPolicyFilteredPHIDs(array_fuse($subtype_phids));
continue;
}
$xactions = $xaction_query->execute();
$results += mpull($xactions, null, 'getPHID');
}
return $results;
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
// NOTE: We don't produce meaningful handles here because they're
// impractical to produce and no application uses them.
}
}

File Metadata

Mime Type
text/x-diff
Expires
Thu, Aug 14, 10:38 AM (5 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
202256
Default Alt Text
(103 KB)

Event Timeline