mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-13 15:28:35 +01:00
Support Spaces in Pholio
Summary: Ref T8493. Add Spaces support to Pholio. This is straightforward; Pholio has no clone/copy/fork or weird parent/child stuff going on. Test Plan: Created a mock, put it in a space, looked at it as another user, searched for stuff in spaces, viewed Macros. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T8493 Differential Revision: https://secure.phabricator.com/D13231
This commit is contained in:
parent
739bdeccab
commit
de0e0d995b
7 changed files with 44 additions and 12 deletions
2
resources/sql/autopatches/20150609.spaces.1.pholio.sql
Normal file
2
resources/sql/autopatches/20150609.spaces.1.pholio.sql
Normal file
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE {$NAMESPACE}_pholio.pholio_mock
|
||||
ADD spacePHID VARBINARY(64);
|
|
@ -2580,7 +2580,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSpacesCapabilityCreateSpaces' => 'applications/spaces/capability/PhabricatorSpacesCapabilityCreateSpaces.php',
|
||||
'PhabricatorSpacesCapabilityDefaultEdit' => 'applications/spaces/capability/PhabricatorSpacesCapabilityDefaultEdit.php',
|
||||
'PhabricatorSpacesCapabilityDefaultView' => 'applications/spaces/capability/PhabricatorSpacesCapabilityDefaultView.php',
|
||||
'PhabricatorSpacesControl' => 'applications/spaces/view/PhabricatorSpacesControl.php',
|
||||
'PhabricatorSpacesController' => 'applications/spaces/controller/PhabricatorSpacesController.php',
|
||||
'PhabricatorSpacesDAO' => 'applications/spaces/storage/PhabricatorSpacesDAO.php',
|
||||
'PhabricatorSpacesEditController' => 'applications/spaces/controller/PhabricatorSpacesEditController.php',
|
||||
|
@ -6091,7 +6090,6 @@ phutil_register_library_map(array(
|
|||
'PhabricatorSpacesCapabilityCreateSpaces' => 'PhabricatorPolicyCapability',
|
||||
'PhabricatorSpacesCapabilityDefaultEdit' => 'PhabricatorPolicyCapability',
|
||||
'PhabricatorSpacesCapabilityDefaultView' => 'PhabricatorPolicyCapability',
|
||||
'PhabricatorSpacesControl' => 'AphrontFormControl',
|
||||
'PhabricatorSpacesController' => 'PhabricatorController',
|
||||
'PhabricatorSpacesDAO' => 'PhabricatorLiskDAO',
|
||||
'PhabricatorSpacesEditController' => 'PhabricatorSpacesController',
|
||||
|
@ -6418,6 +6416,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorProjectInterface',
|
||||
'PhabricatorDestructibleInterface',
|
||||
'PhabricatorSpacesInterface',
|
||||
),
|
||||
'PholioMockCommentController' => 'PholioController',
|
||||
'PholioMockEditController' => 'PholioController',
|
||||
|
|
|
@ -141,7 +141,10 @@ final class PhabricatorMacroSearchEngine
|
|||
foreach ($macros as $macro) {
|
||||
$file = $macro->getFile();
|
||||
|
||||
$item = new PHUIPinboardItemView();
|
||||
$item = id(new PHUIPinboardItemView())
|
||||
->setUser($viewer)
|
||||
->setObject($macro);
|
||||
|
||||
if ($file) {
|
||||
$item->setImageURI($file->getURIForTransform($xform));
|
||||
list($x, $y) = $xform->getTransformedDimensions($file);
|
||||
|
|
|
@ -65,6 +65,7 @@ final class PholioMockEditController extends PholioController {
|
|||
$v_edit = $mock->getEditPolicy();
|
||||
$v_cc = PhabricatorSubscribersQuery::loadSubscribersForPHID(
|
||||
$mock->getPHID());
|
||||
$v_space = $mock->getSpacePHID();
|
||||
|
||||
if ($request->isFormPost()) {
|
||||
$xactions = array();
|
||||
|
@ -75,6 +76,7 @@ final class PholioMockEditController extends PholioController {
|
|||
$type_view = PhabricatorTransactions::TYPE_VIEW_POLICY;
|
||||
$type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY;
|
||||
$type_cc = PhabricatorTransactions::TYPE_SUBSCRIBERS;
|
||||
$type_space = PhabricatorTransactions::TYPE_SPACE;
|
||||
|
||||
$v_name = $request->getStr('name');
|
||||
$v_desc = $request->getStr('description');
|
||||
|
@ -83,6 +85,7 @@ final class PholioMockEditController extends PholioController {
|
|||
$v_edit = $request->getStr('can_edit');
|
||||
$v_cc = $request->getArr('cc');
|
||||
$v_projects = $request->getArr('projects');
|
||||
$v_space = $request->getStr('spacePHID');
|
||||
|
||||
$mock_xactions = array();
|
||||
$mock_xactions[$type_name] = $v_name;
|
||||
|
@ -91,6 +94,7 @@ final class PholioMockEditController extends PholioController {
|
|||
$mock_xactions[$type_view] = $v_view;
|
||||
$mock_xactions[$type_edit] = $v_edit;
|
||||
$mock_xactions[$type_cc] = array('=' => $v_cc);
|
||||
$mock_xactions[$type_space] = $v_space;
|
||||
|
||||
if (!strlen($request->getStr('name'))) {
|
||||
$e_name = pht('Required');
|
||||
|
@ -350,6 +354,7 @@ final class PholioMockEditController extends PholioController {
|
|||
->setCapability(PhabricatorPolicyCapability::CAN_VIEW)
|
||||
->setPolicyObject($mock)
|
||||
->setPolicies($policies)
|
||||
->setSpacePHID($v_space)
|
||||
->setName('can_view'))
|
||||
->appendChild(
|
||||
id(new AphrontFormPolicyControl())
|
||||
|
|
|
@ -83,12 +83,6 @@ final class PholioMockSearchEngine extends PhabricatorApplicationSearchEngine {
|
|||
return parent::buildSavedQueryFromBuiltin($query_key);
|
||||
}
|
||||
|
||||
protected function getRequiredHandlePHIDsForResultList(
|
||||
array $mocks,
|
||||
PhabricatorSavedQuery $query) {
|
||||
return mpull($mocks, 'getAuthorPHID');
|
||||
}
|
||||
|
||||
protected function renderResultList(
|
||||
array $mocks,
|
||||
PhabricatorSavedQuery $query,
|
||||
|
@ -96,6 +90,7 @@ final class PholioMockSearchEngine extends PhabricatorApplicationSearchEngine {
|
|||
assert_instances_of($mocks, 'PholioMock');
|
||||
|
||||
$viewer = $this->requireViewer();
|
||||
$handles = $viewer->loadHandles(mpull($mocks, 'getAuthorPHID'));
|
||||
|
||||
$xform = PhabricatorFileTransform::getTransformByKey(
|
||||
PhabricatorFileThumbnailTransform::TRANSFORM_PINBOARD);
|
||||
|
@ -109,7 +104,9 @@ final class PholioMockSearchEngine extends PhabricatorApplicationSearchEngine {
|
|||
|
||||
$header = 'M'.$mock->getID().' '.$mock->getName();
|
||||
$item = id(new PHUIPinboardItemView())
|
||||
->setUser($viewer)
|
||||
->setHeader($header)
|
||||
->setObject($mock)
|
||||
->setURI('/M'.$mock->getID())
|
||||
->setImageURI($image_uri)
|
||||
->setImageSize($x, $y)
|
||||
|
|
|
@ -9,7 +9,8 @@ final class PholioMock extends PholioDAO
|
|||
PhabricatorFlaggableInterface,
|
||||
PhabricatorApplicationTransactionInterface,
|
||||
PhabricatorProjectInterface,
|
||||
PhabricatorDestructibleInterface {
|
||||
PhabricatorDestructibleInterface,
|
||||
PhabricatorSpacesInterface {
|
||||
|
||||
const MARKUP_FIELD_DESCRIPTION = 'markup:description';
|
||||
|
||||
|
@ -26,6 +27,7 @@ final class PholioMock extends PholioDAO
|
|||
protected $coverPHID;
|
||||
protected $mailKey;
|
||||
protected $status;
|
||||
protected $spacePHID;
|
||||
|
||||
private $images = self::ATTACHABLE;
|
||||
private $allImages = self::ATTACHABLE;
|
||||
|
@ -308,4 +310,13 @@ final class PholioMock extends PholioDAO
|
|||
$this->saveTransaction();
|
||||
}
|
||||
|
||||
|
||||
/* -( PhabricatorSpacesInterface )----------------------------------------- */
|
||||
|
||||
|
||||
public function getSpacePHID() {
|
||||
return $this->spacePHID;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ final class PHUIPinboardItemView extends AphrontView {
|
|||
private $header;
|
||||
private $iconBlock = array();
|
||||
private $disabled;
|
||||
|
||||
private $object;
|
||||
private $imageWidth;
|
||||
private $imageHeight;
|
||||
|
||||
|
@ -42,6 +42,11 @@ final class PHUIPinboardItemView extends AphrontView {
|
|||
return $this;
|
||||
}
|
||||
|
||||
public function setObject($object) {
|
||||
$this->object = $object;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function render() {
|
||||
require_celerity_resource('phui-pinboard-view-css');
|
||||
$header = null;
|
||||
|
@ -57,7 +62,17 @@ final class PHUIPinboardItemView extends AphrontView {
|
|||
'class' => 'phui-pinboard-item-header '.
|
||||
'sprite-gradient '.$header_color,
|
||||
),
|
||||
phutil_tag('a', array('href' => $this->uri), $this->header));
|
||||
array(
|
||||
id(new PHUISpacesNamespaceContextView())
|
||||
->setUser($this->getUser())
|
||||
->setObject($this->object),
|
||||
phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => $this->uri,
|
||||
),
|
||||
$this->header),
|
||||
));
|
||||
}
|
||||
|
||||
$image = null;
|
||||
|
|
Loading…
Add table
Reference in a new issue