@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Support Spaces in Maniphest

Summary:
Ref T8493. Tricks:

- "Create Similar Task" and "Create Subtask" should copy the parent's Space.
- Normal list view + workboard card view.

Test Plan:
- Created a task, edited space, etc.
- Viewed tasks with different users.
- Created a "Similar Task" (saw proper Space).
- Created a subtask (saw proper Space).
- Viewed workboard.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T8493

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

+29 -5
+2
resources/sql/autopatches/20150609.spaces.2.maniphest.sql
··· 1 + ALTER TABLE {$NAMESPACE}_maniphest.maniphest_task 2 + ADD spacePHID VARBINARY(64);
+1
src/__phutil_library_map__.php
··· 4405 4405 'PhabricatorDestructibleInterface', 4406 4406 'PhabricatorApplicationTransactionInterface', 4407 4407 'PhabricatorProjectInterface', 4408 + 'PhabricatorSpacesInterface', 4408 4409 ), 4409 4410 'ManiphestTaskClosedStatusDatasource' => 'PhabricatorTypeaheadDatasource', 4410 4411 'ManiphestTaskDependedOnByTaskEdgeType' => 'PhabricatorEdgeType',
+7
src/applications/maniphest/controller/ManiphestTaskEditController.php
··· 155 155 156 156 $aux_fields = $field_list->getFields(); 157 157 158 + $v_space = $task->getSpacePHID(); 159 + 158 160 if ($request->isFormPost()) { 159 161 $changes = array(); 160 162 161 163 $new_title = $request->getStr('title'); 162 164 $new_desc = $request->getStr('description'); 163 165 $new_status = $request->getStr('status'); 166 + $v_space = $request->getStr('spacePHID'); 164 167 165 168 if (!$task->getID()) { 166 169 $workflow = 'create'; ··· 268 271 } 269 272 270 273 if ($can_edit_policies) { 274 + $changes[PhabricatorTransactions::TYPE_SPACE] = $v_space; 271 275 $changes[PhabricatorTransactions::TYPE_VIEW_POLICY] = 272 276 $request->getStr('viewPolicy'); 273 277 $changes[PhabricatorTransactions::TYPE_EDIT_POLICY] = ··· 477 481 $task->setViewPolicy($template_task->getViewPolicy()); 478 482 $task->setEditPolicy($template_task->getEditPolicy()); 479 483 484 + $v_space = $template_task->getSpacePHID(); 485 + 480 486 $template_fields = PhabricatorCustomField::getObjectFields( 481 487 $template_task, 482 488 PhabricatorCustomField::ROLE_EDIT); ··· 643 649 ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) 644 650 ->setPolicyObject($task) 645 651 ->setPolicies($policies) 652 + ->setSpacePHID($v_space) 646 653 ->setName('viewPolicy')) 647 654 ->appendChild( 648 655 id(new AphrontFormPolicyControl())
+11 -1
src/applications/maniphest/storage/ManiphestTask.php
··· 12 12 PhabricatorCustomFieldInterface, 13 13 PhabricatorDestructibleInterface, 14 14 PhabricatorApplicationTransactionInterface, 15 - PhabricatorProjectInterface { 15 + PhabricatorProjectInterface, 16 + PhabricatorSpacesInterface { 16 17 17 18 const MARKUP_FIELD_DESCRIPTION = 'markup:desc'; 18 19 ··· 35 36 protected $projectPHIDs = array(); 36 37 37 38 protected $ownerOrdering; 39 + protected $spacePHID; 38 40 39 41 private $subscriberPHIDs = self::ATTACHABLE; 40 42 private $groupByProjectPHID = self::ATTACHABLE; ··· 377 379 AphrontRequest $request) { 378 380 379 381 return $timeline; 382 + } 383 + 384 + 385 + /* -( PhabricatorSpacesInterface )----------------------------------------- */ 386 + 387 + 388 + public function getSpacePHID() { 389 + return $this->spacePHID; 380 390 } 381 391 382 392 }
+6 -4
src/applications/maniphest/view/ManiphestTaskListView.php
··· 57 57 } 58 58 59 59 foreach ($this->tasks as $task) { 60 - $item = new PHUIObjectItemView(); 61 - $item->setObjectName('T'.$task->getID()); 62 - $item->setHeader($task->getTitle()); 63 - $item->setHref('/T'.$task->getID()); 60 + $item = id(new PHUIObjectItemView()) 61 + ->setUser($this->getUser()) 62 + ->setObject($task) 63 + ->setObjectName('T'.$task->getID()) 64 + ->setHeader($task->getTitle()) 65 + ->setHref('/T'.$task->getID()); 64 66 65 67 if ($task->getOwnerPHID()) { 66 68 $owner = $handles[$task->getOwnerPHID()];
+2
src/applications/project/view/ProjectBoardTaskCard.php
··· 49 49 $bar_color = idx($color_map, $task->getPriority(), 'grey'); 50 50 51 51 $card = id(new PHUIObjectItemView()) 52 + ->setObject($task) 53 + ->setUser($this->getViewer()) 52 54 ->setObjectName('T'.$task->getID()) 53 55 ->setHeader($task->getTitle()) 54 56 ->setGrippable($can_edit)