Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/project/engine/PhabricatorBoardRenderingEngine.php b/src/applications/project/engine/PhabricatorBoardRenderingEngine.php
index ca8b0633da..d76497bc21 100644
--- a/src/applications/project/engine/PhabricatorBoardRenderingEngine.php
+++ b/src/applications/project/engine/PhabricatorBoardRenderingEngine.php
@@ -1,144 +1,146 @@
<?php
final class PhabricatorBoardRenderingEngine extends Phobject {
private $viewer;
private $objects;
private $excludedProjectPHIDs;
private $editMap;
private $loaded;
private $handles;
private $coverFiles;
public function setViewer(PhabricatorUser $viewer) {
$this->viewer = $viewer;
return $this;
}
public function getViewer() {
return $this->viewer;
}
public function setObjects(array $objects) {
$this->objects = mpull($objects, null, 'getPHID');
return $this;
}
public function getObjects() {
return $this->objects;
}
public function setExcludedProjectPHIDs(array $phids) {
$this->excludedProjectPHIDs = $phids;
return $this;
}
public function getExcludedProjectPHIDs() {
return $this->excludedProjectPHIDs;
}
public function setEditMap(array $edit_map) {
$this->editMap = $edit_map;
return $this;
}
public function getEditMap() {
return $this->editMap;
}
public function renderCard($phid) {
$this->willRender();
$viewer = $this->getViewer();
$object = idx($this->getObjects(), $phid);
$card = id(new ProjectBoardTaskCard())
->setViewer($viewer)
->setTask($object)
->setCanEdit($this->getCanEdit($phid));
$owner_phid = $object->getOwnerPHID();
if ($owner_phid) {
$owner_handle = $this->handles[$owner_phid];
$card->setOwner($owner_handle);
}
$project_phids = $object->getProjectPHIDs();
$project_handles = array_select_keys($this->handles, $project_phids);
if ($project_handles) {
- $card->setProjectHandles($project_handles);
+ $card
+ ->setHideArchivedProjects(true)
+ ->setProjectHandles($project_handles);
}
$cover_phid = $object->getCoverImageThumbnailPHID();
if ($cover_phid) {
$cover_file = idx($this->coverFiles, $cover_phid);
if ($cover_file) {
$card->setCoverImageFile($cover_file);
}
}
return $card;
}
private function willRender() {
if ($this->loaded) {
return;
}
$phids = array();
foreach ($this->objects as $object) {
$owner_phid = $object->getOwnerPHID();
if ($owner_phid) {
$phids[$owner_phid] = $owner_phid;
}
foreach ($object->getProjectPHIDs() as $phid) {
$phids[$phid] = $phid;
}
}
if ($this->excludedProjectPHIDs) {
foreach ($this->excludedProjectPHIDs as $excluded_phid) {
unset($phids[$excluded_phid]);
}
}
$viewer = $this->getViewer();
$handles = $viewer->loadHandles($phids);
$handles = iterator_to_array($handles);
$this->handles = $handles;
$cover_phids = array();
foreach ($this->objects as $object) {
$cover_phid = $object->getCoverImageThumbnailPHID();
if ($cover_phid) {
$cover_phids[$cover_phid] = $cover_phid;
}
}
if ($cover_phids) {
$cover_files = id(new PhabricatorFileQuery())
->setViewer($viewer)
->withPHIDs($cover_phids)
->execute();
$cover_files = mpull($cover_files, null, 'getPHID');
} else {
$cover_files = array();
}
$this->coverFiles = $cover_files;
$this->loaded = true;
}
private function getCanEdit($phid) {
if ($this->editMap === null) {
return true;
}
return idx($this->editMap, $phid);
}
}
diff --git a/src/applications/project/view/ProjectBoardTaskCard.php b/src/applications/project/view/ProjectBoardTaskCard.php
index 1a6807ec45..3a7016ca74 100644
--- a/src/applications/project/view/ProjectBoardTaskCard.php
+++ b/src/applications/project/view/ProjectBoardTaskCard.php
@@ -1,150 +1,162 @@
<?php
final class ProjectBoardTaskCard extends Phobject {
private $viewer;
private $projectHandles;
private $task;
private $owner;
private $canEdit;
private $coverImageFile;
+ private $hideArchivedProjects;
public function setViewer(PhabricatorUser $viewer) {
$this->viewer = $viewer;
return $this;
}
public function getViewer() {
return $this->viewer;
}
public function setProjectHandles(array $handles) {
$this->projectHandles = $handles;
return $this;
}
public function getProjectHandles() {
return $this->projectHandles;
}
public function setCoverImageFile(PhabricatorFile $cover_image_file) {
$this->coverImageFile = $cover_image_file;
return $this;
}
public function getCoverImageFile() {
return $this->coverImageFile;
}
+ public function setHideArchivedProjects($hide_archived_projects) {
+ $this->hideArchivedProjects = $hide_archived_projects;
+ return $this;
+ }
+
+ public function getHideArchivedProjects() {
+ return $this->hideArchivedProjects;
+ }
+
public function setTask(ManiphestTask $task) {
$this->task = $task;
return $this;
}
public function getTask() {
return $this->task;
}
public function setOwner(PhabricatorObjectHandle $owner = null) {
$this->owner = $owner;
return $this;
}
public function getOwner() {
return $this->owner;
}
public function setCanEdit($can_edit) {
$this->canEdit = $can_edit;
return $this;
}
public function getCanEdit() {
return $this->canEdit;
}
public function getItem() {
$task = $this->getTask();
$owner = $this->getOwner();
$can_edit = $this->getCanEdit();
$viewer = $this->getViewer();
$color_map = ManiphestTaskPriority::getColorMap();
$bar_color = idx($color_map, $task->getPriority(), 'grey');
$card = id(new PHUIObjectItemView())
->setObject($task)
->setUser($viewer)
->setObjectName('T'.$task->getID())
->setHeader($task->getTitle())
->setGrippable($can_edit)
->setHref('/T'.$task->getID())
->addSigil('project-card')
->setDisabled($task->isClosed())
->addAction(
id(new PHUIListItemView())
->setName(pht('Edit'))
->setIcon('fa-pencil')
->addSigil('edit-project-card')
->setHref('/maniphest/task/edit/'.$task->getID().'/'))
->setBarColor($bar_color);
if ($owner) {
$card->addHandleIcon($owner, $owner->getName());
}
$cover_file = $this->getCoverImageFile();
if ($cover_file) {
$card->setCoverImage($cover_file->getBestURI());
}
if (ManiphestTaskPoints::getIsEnabled()) {
$points = $task->getPoints();
if ($points !== null) {
$points_tag = id(new PHUITagView())
->setType(PHUITagView::TYPE_SHADE)
->setColor(PHUITagView::COLOR_GREY)
->setSlimShady(true)
->setName($points)
->addClass('phui-workcard-points');
$card->addAttribute($points_tag);
}
}
$subtype = $task->newSubtypeObject();
if ($subtype && $subtype->hasTagView()) {
$subtype_tag = $subtype->newTagView()
->setSlimShady(true);
$card->addAttribute($subtype_tag);
}
if ($task->isClosed()) {
$icon = ManiphestTaskStatus::getStatusIcon($task->getStatus());
$icon = id(new PHUIIconView())
->setIcon($icon.' grey');
$card->addAttribute($icon);
$card->setBarColor('grey');
}
$project_handles = $this->getProjectHandles();
// Remove any archived projects from the list.
- if ($project_handles) {
- foreach ($project_handles as $key => $handle) {
- if ($handle->getStatus() == PhabricatorObjectHandle::STATUS_CLOSED) {
- unset($project_handles[$key]);
+ if ($this->hideArchivedProjects) {
+ if ($project_handles) {
+ foreach ($project_handles as $key => $handle) {
+ if ($handle->getStatus() == PhabricatorObjectHandle::STATUS_CLOSED) {
+ unset($project_handles[$key]);
+ }
}
}
}
if ($project_handles) {
$project_handles = array_reverse($project_handles);
$tag_list = id(new PHUIHandleTagListView())
->setSlim(true)
->setHandles($project_handles);
$card->addAttribute($tag_list);
}
$card->addClass('phui-workcard');
return $card;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Wed, Apr 30, 8:43 AM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
108629
Default Alt Text
(8 KB)

Event Timeline