Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F17728676
D17043.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
D17043.diff
View Options
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -518,6 +518,8 @@
'DifferentialRevisionDependedOnByRevisionEdgeType' => 'applications/differential/edge/DifferentialRevisionDependedOnByRevisionEdgeType.php',
'DifferentialRevisionDependsOnRevisionEdgeType' => 'applications/differential/edge/DifferentialRevisionDependsOnRevisionEdgeType.php',
'DifferentialRevisionEditController' => 'applications/differential/controller/DifferentialRevisionEditController.php',
+ 'DifferentialRevisionEditEngine' => 'applications/differential/editor/DifferentialRevisionEditEngine.php',
+ 'DifferentialRevisionEditProController' => 'applications/differential/controller/DifferentialRevisionEditProController.php',
'DifferentialRevisionFulltextEngine' => 'applications/differential/search/DifferentialRevisionFulltextEngine.php',
'DifferentialRevisionGraph' => 'infrastructure/graph/DifferentialRevisionGraph.php',
'DifferentialRevisionHasChildRelationship' => 'applications/differential/relationships/DifferentialRevisionHasChildRelationship.php',
@@ -5164,6 +5166,8 @@
'DifferentialRevisionDependedOnByRevisionEdgeType' => 'PhabricatorEdgeType',
'DifferentialRevisionDependsOnRevisionEdgeType' => 'PhabricatorEdgeType',
'DifferentialRevisionEditController' => 'DifferentialController',
+ 'DifferentialRevisionEditEngine' => 'PhabricatorEditEngine',
+ 'DifferentialRevisionEditProController' => 'DifferentialController',
'DifferentialRevisionFulltextEngine' => 'PhabricatorFulltextEngine',
'DifferentialRevisionGraph' => 'PhabricatorObjectGraph',
'DifferentialRevisionHasChildRelationship' => 'DifferentialRevisionRelationship',
diff --git a/src/applications/differential/application/PhabricatorDifferentialApplication.php b/src/applications/differential/application/PhabricatorDifferentialApplication.php
--- a/src/applications/differential/application/PhabricatorDifferentialApplication.php
+++ b/src/applications/differential/application/PhabricatorDifferentialApplication.php
@@ -67,6 +67,8 @@
'revision/' => array(
'edit/(?:(?P<id>[1-9]\d*)/)?'
=> 'DifferentialRevisionEditController',
+ $this->getEditRoutePattern('editpro/')
+ => 'DifferentialRevisionEditProController',
'land/(?:(?P<id>[1-9]\d*))/(?P<strategy>[^/]+)/'
=> 'DifferentialRevisionLandController',
'closedetails/(?P<phid>[^/]+)/'
diff --git a/src/applications/differential/controller/DifferentialRevisionEditProController.php b/src/applications/differential/controller/DifferentialRevisionEditProController.php
new file mode 100644
--- /dev/null
+++ b/src/applications/differential/controller/DifferentialRevisionEditProController.php
@@ -0,0 +1,12 @@
+<?php
+
+final class DifferentialRevisionEditProController
+ extends DifferentialController {
+
+ public function handleRequest(AphrontRequest $request) {
+ return id(new DifferentialRevisionEditEngine())
+ ->setController($this)
+ ->buildResponse();
+ }
+
+}
diff --git a/src/applications/differential/editor/DifferentialRevisionEditEngine.php b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
new file mode 100644
--- /dev/null
+++ b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
@@ -0,0 +1,66 @@
+<?php
+
+final class DifferentialRevisionEditEngine
+ extends PhabricatorEditEngine {
+
+ const ENGINECONST = 'differential.revision';
+
+ public function getEngineName() {
+ return pht('Revisions');
+ }
+
+ public function getSummaryHeader() {
+ return pht('Configure Revision Forms');
+ }
+
+ public function getSummaryText() {
+ return pht(
+ 'Configure creation and editing revision forms in Differential.');
+ }
+
+ public function getEngineApplicationClass() {
+ return 'PhabricatorDifferentialApplication';
+ }
+
+ protected function supportsEditEngineConfiguration() {
+ return false;
+ }
+
+ protected function newEditableObject() {
+ $viewer = $this->getViewer();
+ return DifferentialRevision::initializeNewRevision($viewer);
+ }
+
+ protected function newObjectQuery() {
+ return new DifferentialRevisionQuery();
+ }
+
+ protected function getObjectCreateTitleText($object) {
+ return pht('Create New Revision');
+ }
+
+ protected function getObjectEditTitleText($object) {
+ return pht('Edit Revision: %s', $object->getTitle());
+ }
+
+ protected function getObjectEditShortText($object) {
+ return $object->getMonogram();
+ }
+
+ protected function getObjectCreateShortText() {
+ return pht('Create Revision');
+ }
+
+ protected function getObjectName() {
+ return pht('Revision');
+ }
+
+ protected function getObjectViewURI($object) {
+ return $object->getURI();
+ }
+
+ protected function buildCustomEditFields($object) {
+ return array();
+ }
+
+}
diff --git a/src/infrastructure/customfield/engineextension/PhabricatorCustomFieldEditEngineExtension.php b/src/infrastructure/customfield/engineextension/PhabricatorCustomFieldEditEngineExtension.php
--- a/src/infrastructure/customfield/engineextension/PhabricatorCustomFieldEditEngineExtension.php
+++ b/src/infrastructure/customfield/engineextension/PhabricatorCustomFieldEditEngineExtension.php
@@ -27,6 +27,12 @@
PhabricatorEditEngine $engine,
PhabricatorApplicationTransactionInterface $object) {
+ // TODO: Remove this hack once Differential modernizes more fully. Today,
+ // its custom fields are too custom to interact cleanly with EditEngine.
+ if ($object instanceof DifferentialRevision) {
+ return array();
+ }
+
$viewer = $this->getViewer();
$field_list = PhabricatorCustomField::getObjectFields(
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Jul 20, 4:50 PM (5 h, 37 s ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8535566
Default Alt Text
D17043.diff (5 KB)
Attached To
Mode
D17043: Add a very basic EditPro controller for Differential
Attached
Detach File
Event Timeline
Log In to Comment