Page MenuHomePhabricator

D18822.diff
No OneTemporary

D18822.diff

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
@@ -1004,6 +1004,7 @@
'DrydockBlueprintCustomField' => 'applications/drydock/customfield/DrydockBlueprintCustomField.php',
'DrydockBlueprintDatasource' => 'applications/drydock/typeahead/DrydockBlueprintDatasource.php',
'DrydockBlueprintDisableController' => 'applications/drydock/controller/DrydockBlueprintDisableController.php',
+ 'DrydockBlueprintEditConduitAPIMethod' => 'applications/drydock/conduit/DrydockBlueprintEditConduitAPIMethod.php',
'DrydockBlueprintEditController' => 'applications/drydock/controller/DrydockBlueprintEditController.php',
'DrydockBlueprintEditEngine' => 'applications/drydock/editor/DrydockBlueprintEditEngine.php',
'DrydockBlueprintEditor' => 'applications/drydock/editor/DrydockBlueprintEditor.php',
@@ -6090,6 +6091,7 @@
'DrydockBlueprintCustomField' => 'PhabricatorCustomField',
'DrydockBlueprintDatasource' => 'PhabricatorTypeaheadDatasource',
'DrydockBlueprintDisableController' => 'DrydockBlueprintController',
+ 'DrydockBlueprintEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
'DrydockBlueprintEditController' => 'DrydockBlueprintController',
'DrydockBlueprintEditEngine' => 'PhabricatorEditEngine',
'DrydockBlueprintEditor' => 'PhabricatorApplicationTransactionEditor',
diff --git a/src/applications/drydock/conduit/DrydockBlueprintEditConduitAPIMethod.php b/src/applications/drydock/conduit/DrydockBlueprintEditConduitAPIMethod.php
new file mode 100644
--- /dev/null
+++ b/src/applications/drydock/conduit/DrydockBlueprintEditConduitAPIMethod.php
@@ -0,0 +1,20 @@
+<?php
+
+final class DrydockBlueprintEditConduitAPIMethod
+ extends PhabricatorEditEngineAPIMethod {
+
+ public function getAPIMethodName() {
+ return 'drydock.blueprint.edit';
+ }
+
+ public function newEditEngine() {
+ return new DrydockBlueprintEditEngine();
+ }
+
+ public function getMethodSummary() {
+ return pht(
+ 'WARNING: Apply transactions to edit an existing blueprint. This method '.
+ 'can not create new blueprints.');
+ }
+
+}
diff --git a/src/applications/drydock/editor/DrydockBlueprintEditEngine.php b/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
--- a/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
+++ b/src/applications/drydock/editor/DrydockBlueprintEditEngine.php
@@ -51,6 +51,17 @@
return $blueprint;
}
+ protected function newEditableObjectForDocumentation() {
+ // In order to generate the proper list of fields/transactions for a
+ // blueprint, a blueprint's type needs to be known upfront, and there's
+ // currently no way to pre-specify the type. Hardcoding an implementation
+ // here prevents the fatal on the Conduit API page and allows transactions
+ // to be edited.
+ $impl = new DrydockWorkingCopyBlueprintImplementation();
+ $this->setBlueprintImplementation($impl);
+ return $this->newEditableObject();
+ }
+
protected function newObjectQuery() {
return new DrydockBlueprintQuery();
}
diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php
--- a/src/applications/transactions/editengine/PhabricatorEditEngine.php
+++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php
@@ -630,6 +630,15 @@
return $this->isCreate;
}
+ /**
+ * Initialize a new object for documentation creation.
+ *
+ * @return object Newly initialized object.
+ * @task load
+ */
+ protected function newEditableObjectForDocumentation() {
+ return $this->newEditableObject();
+ }
/**
* Flag this workflow as a create or edit.
@@ -2198,7 +2207,7 @@
return array();
}
- $object = $this->newEditableObject();
+ $object = $this->newEditableObjectForDocumentation();
$fields = $this->buildEditFields($object);
return $this->getConduitEditTypesFromFields($fields);
}

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 12:51 PM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6278003
Default Alt Text
D18822.diff (3 KB)

Event Timeline