mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 14:00:56 +01:00
Remove several "loadArcanistProject()" methods
Summary: Ref T3551. Releeph has old-style `loadX()` methods; get rid of one of them. Differential has a couple of copies of this too, clean them up. Test Plan: - Viewed various differential revisions (with and without projects). - Viewed and edited Releeph products. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T3551 Differential Revision: https://secure.phabricator.com/D8768
This commit is contained in:
parent
05e30a024d
commit
f4c8a34abe
7 changed files with 57 additions and 31 deletions
|
@ -33,6 +33,7 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
|||
$diffs = id(new DifferentialDiffQuery())
|
||||
->setViewer($request->getUser())
|
||||
->withRevisionIDs(array($this->revisionID))
|
||||
->needArcanistProjects(true)
|
||||
->execute();
|
||||
$diffs = array_reverse($diffs, $preserve_keys = true);
|
||||
|
||||
|
@ -61,8 +62,18 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
|||
$diff_vs = null;
|
||||
}
|
||||
|
||||
$arc_project = $target->loadArcanistProject();
|
||||
$repository = ($arc_project ? $arc_project->loadRepository() : null);
|
||||
$repository = null;
|
||||
$repository_phid = $target->getRepositoryPHID();
|
||||
if ($repository_phid) {
|
||||
if ($repository_phid == $revision->getRepositoryPHID()) {
|
||||
$repository = $revision->getRepository();
|
||||
} else {
|
||||
$repository = id(new PhabricatorRepositoryQuery())
|
||||
->setViewer($user)
|
||||
->withPHIDs(array($repository_phid))
|
||||
->executeOne();
|
||||
}
|
||||
}
|
||||
|
||||
list($changesets, $vs_map, $vs_changesets, $rendering_references) =
|
||||
$this->loadChangesetsAndVsMap(
|
||||
|
@ -219,6 +230,7 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
|||
'whitespace',
|
||||
DifferentialChangesetParser::WHITESPACE_IGNORE_ALL);
|
||||
|
||||
$arc_project = $target->getArcanistProject();
|
||||
if ($arc_project) {
|
||||
list($symbol_indexes, $project_phids) = $this->buildSymbolIndexes(
|
||||
$arc_project,
|
||||
|
|
|
@ -95,27 +95,6 @@ final class DifferentialDiff
|
|||
return $name;
|
||||
}
|
||||
|
||||
public function loadArcanistProject() {
|
||||
if (!$this->getArcanistProjectPHID()) {
|
||||
return null;
|
||||
}
|
||||
return id(new PhabricatorRepositoryArcanistProject())->loadOneWhere(
|
||||
'phid = %s',
|
||||
$this->getArcanistProjectPHID());
|
||||
}
|
||||
|
||||
public function getBackingVersionControlSystem() {
|
||||
$arcanist_project = $this->loadArcanistProject();
|
||||
if (!$arcanist_project) {
|
||||
return null;
|
||||
}
|
||||
$repository = $arcanist_project->loadRepository();
|
||||
if (!$repository) {
|
||||
return null;
|
||||
}
|
||||
return $repository->getVersionControlSystem();
|
||||
}
|
||||
|
||||
public function save() {
|
||||
$this->openTransaction();
|
||||
$ret = parent::save();
|
||||
|
|
|
@ -15,6 +15,7 @@ final class ReleephProductEditController extends ReleephProductController {
|
|||
$product = id(new ReleephProjectQuery())
|
||||
->setViewer($viewer)
|
||||
->withIDs(array($this->productID))
|
||||
->needArcanistProjects(true)
|
||||
->requireCapabilities(
|
||||
array(
|
||||
PhabricatorPolicyCapability::CAN_VIEW,
|
||||
|
@ -145,7 +146,7 @@ final class ReleephProductEditController extends ReleephProductController {
|
|||
id(new AphrontFormStaticControl())
|
||||
->setLabel(pht('Arc Project'))
|
||||
->setValue(
|
||||
$product->loadArcanistProject()->getName()))
|
||||
$product->getArcanistProject()->getName()))
|
||||
->appendChild(
|
||||
id(new AphrontFormStaticControl())
|
||||
->setLabel(pht('Releeph Project PHID'))
|
||||
|
|
|
@ -53,7 +53,7 @@ final class ReleephProductListController extends ReleephController
|
|||
),
|
||||
'r'.$repo->getCallsign()));
|
||||
|
||||
$arc = $product->loadArcanistProject();
|
||||
$arc = $product->getArcanistProject();
|
||||
if ($arc) {
|
||||
$item->addAttribute($arc->getName());
|
||||
}
|
||||
|
|
|
@ -13,7 +13,8 @@ final class ReleephProductSearchEngine
|
|||
|
||||
public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
|
||||
$query = id(new ReleephProjectQuery())
|
||||
->setOrder(ReleephProjectQuery::ORDER_NAME);
|
||||
->setOrder(ReleephProjectQuery::ORDER_NAME)
|
||||
->needArcanistProjects(true);
|
||||
|
||||
$active = $saved->getParameter('active');
|
||||
$value = idx($this->getActiveValues(), $active);
|
||||
|
|
|
@ -8,6 +8,7 @@ final class ReleephProjectQuery
|
|||
private $phids;
|
||||
|
||||
private $needRepositories;
|
||||
private $needArcanistProjects;
|
||||
|
||||
private $order = 'order-id';
|
||||
const ORDER_ID = 'order-id';
|
||||
|
@ -33,6 +34,11 @@ final class ReleephProjectQuery
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function needArcanistProjects($need) {
|
||||
$this->needArcanistProjects = $need;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function loadPage() {
|
||||
$table = new ReleephProject();
|
||||
$conn_r = $table->establishConnection('r');
|
||||
|
@ -71,6 +77,29 @@ final class ReleephProjectQuery
|
|||
return $projects;
|
||||
}
|
||||
|
||||
public function didFilterPage(array $products) {
|
||||
|
||||
if ($this->needArcanistProjects) {
|
||||
$project_ids = array_filter(mpull($products, 'getArcanistProjectID'));
|
||||
if ($project_ids) {
|
||||
$projects = id(new PhabricatorRepositoryArcanistProject())
|
||||
->loadAllWhere('id IN (%Ld)', $project_ids);
|
||||
$projects = mpull($projects, null, 'getID');
|
||||
} else {
|
||||
$projects = array();
|
||||
}
|
||||
|
||||
foreach ($products as $product) {
|
||||
$project_id = $product->getArcanistProjectID();
|
||||
$project = idx($projects, $project_id);
|
||||
$product->attachArcanistProject($project);
|
||||
}
|
||||
}
|
||||
|
||||
return $products;
|
||||
}
|
||||
|
||||
|
||||
private function buildWhereClause(AphrontDatabaseConnection $conn_r) {
|
||||
$where = array();
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ final class ReleephProject extends ReleephDAO
|
|||
protected $details = array();
|
||||
|
||||
private $repository = self::ATTACHABLE;
|
||||
private $arcanistProject = self::ATTACHABLE;
|
||||
|
||||
public function getConfiguration() {
|
||||
return array(
|
||||
|
@ -53,11 +54,14 @@ final class ReleephProject extends ReleephDAO
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function loadArcanistProject() {
|
||||
return $this->loadOneRelative(
|
||||
new PhabricatorRepositoryArcanistProject(),
|
||||
'id',
|
||||
'getArcanistProjectID');
|
||||
public function getArcanistProject() {
|
||||
return $this->assertAttached($this->arcanistProject);
|
||||
}
|
||||
|
||||
public function attachArcanistProject(
|
||||
PhabricatorRepositoryArcanistProject $arcanist_project = null) {
|
||||
$this->arcanistProject = $arcanist_project;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPushers() {
|
||||
|
|
Loading…
Reference in a new issue