Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2892878
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
21 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
index 71fbc53..e82d16b 100644
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1,162 +1,163 @@
<?php
/**
* This file is automatically generated. Use 'arc liberate' to rebuild it.
*
* @generated
* @phutil-library-version 2
*/
phutil_register_library_map(array(
'__library_version__' => 2,
'class' => array(
'SemiStructuredBaseController' => 'controller/SemiStructuredBaseController.php',
'SemiStructuredDAO' => 'storage/SemiStructuredDAO.php',
'SemiStructuredDataApplication' => 'application/SemiStructuredDataApplication.php',
'SemiStructuredInstanceConfiguredCustomField' => 'customfield/SemiStructuredInstanceConfiguredCustomField.php',
'SemiStructuredInstanceConfiguredCustomFieldStorage' => 'storage/SemiStructuredInstanceConfiguredCustomFieldStorage.php',
'SemiStructuredInstanceCustomField' => 'customfield/SemiStructuredInstanceCustomField.php',
'SemiStructuredInstanceCustomFieldNumericIndex' => 'storage/SemiStructuredInstanceCustomFieldNumericIndex.php',
'SemiStructuredInstanceCustomFieldStringIndex' => 'storage/SemiStructuredInstanceCustomFieldStringIndex.php',
'SemiStructuredInstanceEditConduitAPIMethod' => 'conduit/SemiStructuredInstanceEditConduitAPIMethod.php',
'SemiStructuredInstanceSearchConduitAPIMethod' => 'conduit/SemiStructuredInstanceSearchConduitAPIMethod.php',
'SemiStructuredObjectInstance' => 'storage/SemiStructuredObjectInstance.php',
'SemiStructuredObjectInstanceClassTransaction' => 'xaction/instance/SemiStructuredObjectInstanceClassTransaction.php',
'SemiStructuredObjectInstanceController' => 'controller/instance/SemiStructuredObjectInstanceController.php',
'SemiStructuredObjectInstanceDescriptionTransaction' => 'xaction/instance/SemiStructuredObjectInstanceDescriptionTransaction.php',
'SemiStructuredObjectInstanceEditController' => 'controller/instance/SemiStructuredObjectInstanceEditController.php',
'SemiStructuredObjectInstanceEditEngine' => 'editor/SemiStructuredObjectInstanceEditEngine.php',
'SemiStructuredObjectInstanceFerretEngine' => 'search/SemiStructuredObjectInstanceFerretEngine.php',
'SemiStructuredObjectInstanceFulltextEngine' => 'search/SemiStructuredObjectInstanceFulltextEngine.php',
'SemiStructuredObjectInstanceListController' => 'controller/instance/SemiStructuredObjectInstanceListController.php',
'SemiStructuredObjectInstanceMailReceiver' => 'mail/SemiStructuredObjectInstanceMailReceiver.php',
'SemiStructuredObjectInstanceNameTransaction' => 'xaction/instance/SemiStructuredObjectInstanceNameTransaction.php',
'SemiStructuredObjectInstancePHIDType' => 'phid/SemiStructuredObjectInstancePHIDType.php',
'SemiStructuredObjectInstanceQuery' => 'query/SemiStructuredObjectInstanceQuery.php',
'SemiStructuredObjectInstanceRawDataTransaction' => 'xaction/instance/SemiStructuredObjectInstanceRawDataTransaction.php',
'SemiStructuredObjectInstanceReplyHandler' => 'mail/SemiStructuredObjectInstanceReplyHandler.php',
'SemiStructuredObjectInstanceSearchEngine' => 'query/SemiStructuredObjectInstanceSearchEngine.php',
'SemiStructuredObjectInstanceTransaction' => 'storage/SemiStructuredObjectInstanceTransaction.php',
'SemiStructuredObjectInstanceTransactionComment' => 'storage/SemiStructuredObjectInstanceTransactionComment.php',
'SemiStructuredObjectInstanceTransactionEditor' => 'editor/SemiStructuredObjectInstanceTransactionEditor.php',
'SemiStructuredObjectInstanceTransactionQuery' => 'query/SemiStructuredObjectInstanceTransactionQuery.php',
'SemiStructuredObjectInstanceTransactionType' => 'xaction/instance/SemiStructuredObjectInstanceTransactionType.php',
'SemiStructuredObjectInstanceViewController' => 'controller/instance/SemiStructuredObjectInstanceViewController.php',
'SemiStructuredObjectNewInstanceController' => 'controller/class/SemiStructuredObjectNewInstanceController.php',
'SemiStructuredObjectType' => 'storage/SemiStructuredObjectType.php',
'SemiStructuredObjectTypeArchiveController' => 'controller/class/SemiStructuredObjectTypeArchiveController.php',
'SemiStructuredObjectTypeController' => 'controller/class/SemiStructuredObjectTypeController.php',
'SemiStructuredObjectTypeCustomFieldsTransaction' => 'xaction/class/SemiStructuredObjectTypeCustomFieldsTransaction.php',
'SemiStructuredObjectTypeDescriptionTransaction' => 'xaction/class/SemiStructuredObjectTypeDescriptionTransaction.php',
'SemiStructuredObjectTypeEditController' => 'controller/class/SemiStructuredObjectTypeEditController.php',
'SemiStructuredObjectTypeEditEngine' => 'editor/SemiStructuredObjectTypeEditEngine.php',
'SemiStructuredObjectTypeFerretEngine' => 'search/SemiStructuredObjectTypeFerretEngine.php',
'SemiStructuredObjectTypeFulltextEngine' => 'search/SemiStructuredObjectTypeFulltextEngine.php',
'SemiStructuredObjectTypeListController' => 'controller/class/SemiStructuredObjectTypeListController.php',
'SemiStructuredObjectTypeMailReceiver' => 'mail/SemiStructuredObjectTypeMailReceiver.php',
'SemiStructuredObjectTypeNameTransaction' => 'xaction/class/SemiStructuredObjectTypeNameTransaction.php',
'SemiStructuredObjectTypePHIDType' => 'phid/SemiStructuredObjectTypePHIDType.php',
'SemiStructuredObjectTypeQuery' => 'query/SemiStructuredObjectTypeQuery.php',
'SemiStructuredObjectTypeRemarkupRule' => 'remarkup/SemiStructuredObjectTypeRemarkupRule.php',
'SemiStructuredObjectTypeReplyHandler' => 'mail/SemiStructuredObjectTypeReplyHandler.php',
'SemiStructuredObjectTypeSearchEngine' => 'query/SemiStructuredObjectTypeSearchEngine.php',
'SemiStructuredObjectTypeStatusTransaction' => 'xaction/class/SemiStructuredObjectTypeStatusTransaction.php',
'SemiStructuredObjectTypeTransaction' => 'storage/SemiStructuredObjectTypeTransaction.php',
'SemiStructuredObjectTypeTransactionComment' => 'storage/SemiStructuredObjectTypeTransactionComment.php',
'SemiStructuredObjectTypeTransactionEditor' => 'editor/SemiStructuredObjectTypeTransactionEditor.php',
'SemiStructuredObjectTypeTransactionQuery' => 'query/SemiStructuredObjectTypeTransactionQuery.php',
'SemiStructuredObjectTypeTransactionType' => 'xaction/class/SemiStructuredObjectTypeTransactionType.php',
'SemiStructuredObjectTypeViewController' => 'controller/class/SemiStructuredObjectTypeViewController.php',
'SemiStructuredPatchList' => 'storage/SemiStructuredPatchList.php',
'SemiStructuredSchemaSpec' => 'storage/SemiStructuredSchemaSpec.php',
'SemiStructuredStaticSearchField' => '_to_upstream/SemiStructuredStaticSearchField.php',
),
'function' => array(),
'xmap' => array(
'SemiStructuredBaseController' => 'PhabricatorController',
'SemiStructuredDAO' => 'PhabricatorLiskDAO',
'SemiStructuredDataApplication' => 'PhabricatorApplication',
'SemiStructuredInstanceConfiguredCustomField' => array(
'SemiStructuredInstanceCustomField',
'PhabricatorStandardCustomFieldInterface',
),
'SemiStructuredInstanceConfiguredCustomFieldStorage' => 'PhabricatorCustomFieldStorage',
'SemiStructuredInstanceCustomField' => 'PhabricatorCustomField',
'SemiStructuredInstanceCustomFieldNumericIndex' => 'PhabricatorCustomFieldNumericIndexStorage',
'SemiStructuredInstanceCustomFieldStringIndex' => 'PhabricatorCustomFieldStringIndexStorage',
'SemiStructuredInstanceEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
'SemiStructuredInstanceSearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod',
'SemiStructuredObjectInstance' => array(
'SemiStructuredDAO',
'PhabricatorPolicyInterface',
'PhabricatorApplicationTransactionInterface',
'PhabricatorSubscribableInterface',
'PhabricatorFlaggableInterface',
'PhabricatorProjectInterface',
'PhabricatorFerretInterface',
'PhabricatorFulltextInterface',
'PhabricatorMentionableInterface',
'PhabricatorConduitResultInterface',
'PhabricatorCustomFieldInterface',
'PhabricatorDestructibleInterface',
),
'SemiStructuredObjectInstanceClassTransaction' => 'SemiStructuredObjectInstanceTransactionType',
'SemiStructuredObjectInstanceController' => 'SemiStructuredBaseController',
'SemiStructuredObjectInstanceDescriptionTransaction' => 'SemiStructuredObjectInstanceTransactionType',
'SemiStructuredObjectInstanceEditController' => 'SemiStructuredBaseController',
'SemiStructuredObjectInstanceEditEngine' => 'PhabricatorEditEngine',
'SemiStructuredObjectInstanceFerretEngine' => 'PhabricatorFerretEngine',
'SemiStructuredObjectInstanceFulltextEngine' => 'PhabricatorFulltextEngine',
'SemiStructuredObjectInstanceListController' => 'SemiStructuredObjectTypeController',
'SemiStructuredObjectInstanceMailReceiver' => 'PhabricatorObjectMailReceiver',
'SemiStructuredObjectInstanceNameTransaction' => 'SemiStructuredObjectInstanceTransactionType',
'SemiStructuredObjectInstancePHIDType' => 'PhabricatorPHIDType',
'SemiStructuredObjectInstanceQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'SemiStructuredObjectInstanceRawDataTransaction' => 'SemiStructuredObjectInstanceTransactionType',
'SemiStructuredObjectInstanceReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'SemiStructuredObjectInstanceSearchEngine' => 'PhabricatorApplicationSearchEngine',
'SemiStructuredObjectInstanceTransaction' => 'PhabricatorModularTransaction',
'SemiStructuredObjectInstanceTransactionComment' => 'PhabricatorApplicationTransactionComment',
'SemiStructuredObjectInstanceTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
'SemiStructuredObjectInstanceTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'SemiStructuredObjectInstanceTransactionType' => 'PhabricatorModularTransactionType',
'SemiStructuredObjectInstanceViewController' => 'SemiStructuredObjectInstanceController',
'SemiStructuredObjectNewInstanceController' => 'SemiStructuredObjectTypeController',
'SemiStructuredObjectType' => array(
'SemiStructuredDAO',
'PhabricatorPolicyInterface',
'PhabricatorApplicationTransactionInterface',
'PhabricatorMentionableInterface',
'PhabricatorSubscribableInterface',
'PhabricatorProjectInterface',
'PhabricatorFlaggableInterface',
'PhabricatorDestructibleInterface',
'PhabricatorFerretInterface',
+ 'PhabricatorFulltextInterface',
),
'SemiStructuredObjectTypeArchiveController' => 'SemiStructuredBaseController',
'SemiStructuredObjectTypeController' => 'SemiStructuredBaseController',
'SemiStructuredObjectTypeCustomFieldsTransaction' => 'SemiStructuredObjectTypeTransactionType',
'SemiStructuredObjectTypeDescriptionTransaction' => 'SemiStructuredObjectTypeTransactionType',
'SemiStructuredObjectTypeEditController' => 'SemiStructuredBaseController',
'SemiStructuredObjectTypeEditEngine' => 'PhabricatorEditEngine',
'SemiStructuredObjectTypeFerretEngine' => 'PhabricatorFerretEngine',
- 'SemiStructuredObjectTypeFulltextEngine' => 'PhabricatorFerretEngine',
+ 'SemiStructuredObjectTypeFulltextEngine' => 'PhabricatorFulltextEngine',
'SemiStructuredObjectTypeListController' => 'SemiStructuredBaseController',
'SemiStructuredObjectTypeMailReceiver' => 'PhabricatorObjectMailReceiver',
'SemiStructuredObjectTypeNameTransaction' => 'SemiStructuredObjectTypeTransactionType',
'SemiStructuredObjectTypePHIDType' => 'PhabricatorPHIDType',
'SemiStructuredObjectTypeQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'SemiStructuredObjectTypeRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'SemiStructuredObjectTypeReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'SemiStructuredObjectTypeSearchEngine' => 'PhabricatorApplicationSearchEngine',
'SemiStructuredObjectTypeStatusTransaction' => 'SemiStructuredObjectTypeTransactionType',
'SemiStructuredObjectTypeTransaction' => 'PhabricatorModularTransaction',
'SemiStructuredObjectTypeTransactionComment' => 'PhabricatorApplicationTransactionComment',
'SemiStructuredObjectTypeTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
'SemiStructuredObjectTypeTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
'SemiStructuredObjectTypeTransactionType' => 'PhabricatorModularTransactionType',
'SemiStructuredObjectTypeViewController' => 'SemiStructuredObjectTypeController',
'SemiStructuredPatchList' => 'PhabricatorSQLPatchList',
'SemiStructuredSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'SemiStructuredStaticSearchField' => 'PhabricatorSearchField',
),
));
diff --git a/src/phid/SemiStructuredObjectInstancePHIDType.php b/src/phid/SemiStructuredObjectInstancePHIDType.php
index e379250..7d5af6f 100644
--- a/src/phid/SemiStructuredObjectInstancePHIDType.php
+++ b/src/phid/SemiStructuredObjectInstancePHIDType.php
@@ -1,47 +1,47 @@
<?php
final class SemiStructuredObjectInstancePHIDType extends PhabricatorPHIDType {
const TYPECONST = 'SSIN';
public function getTypeName() {
return pht('Object Instance');
}
public function newObject() {
return new SemiStructuredObjectInstance();
}
public function getPHIDTypeApplicationClass() {
return 'SemiStructuredDataApplication';
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new SemiStructuredObjectInstanceQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$item = $objects[$phid];
$id = $item->getID();
$class = $item->getClass();
$handle->setName(
pht("%s\xE2\x96\xB9%s",
$class->getName(),
$item->getName()));
- $handle->setURI("/semistruct/instance/{$id}/");
+ $handle->setURI($item->getURI());
}
}
}
diff --git a/src/phid/SemiStructuredObjectTypePHIDType.php b/src/phid/SemiStructuredObjectTypePHIDType.php
index c2ab5f3..482711c 100644
--- a/src/phid/SemiStructuredObjectTypePHIDType.php
+++ b/src/phid/SemiStructuredObjectTypePHIDType.php
@@ -1,42 +1,42 @@
<?php
final class SemiStructuredObjectTypePHIDType extends PhabricatorPHIDType {
const TYPECONST = 'SSCL';
public function getTypeName() {
return pht('Object Type');
}
public function newObject() {
return new SemiStructuredObjectType();
}
public function getPHIDTypeApplicationClass() {
return 'SemiStructuredDataApplication';
}
protected function buildQueryForObjects(
PhabricatorObjectQuery $query,
array $phids) {
return id(new SemiStructuredObjectTypeQuery())
->withPHIDs($phids);
}
public function loadHandles(
PhabricatorHandleQuery $query,
array $handles,
array $objects) {
foreach ($handles as $phid => $handle) {
$item = $objects[$phid];
$id = $item->getID();
$handle->setName($item->getName());
- $handle->setURI("/semistruct/types/{$id}/");
+ $handle->setURI($item->getURI());
}
}
}
diff --git a/src/search/SemiStructuredObjectInstanceFulltextEngine.php b/src/search/SemiStructuredObjectInstanceFulltextEngine.php
index 2778488..d9ed334 100644
--- a/src/search/SemiStructuredObjectInstanceFulltextEngine.php
+++ b/src/search/SemiStructuredObjectInstanceFulltextEngine.php
@@ -1,25 +1,25 @@
<?php
final class SemiStructuredObjectInstanceFulltextEngine
extends PhabricatorFulltextEngine {
protected function buildAbstractDocument(
PhabricatorSearchAbstractDocument $document,
- $instance) {
+ $instance) {
$document->setDocumentTitle($instance->getName());
$document->addField(
PhabricatorSearchDocumentFieldType::FIELD_BODY,
$instance->getDescription());
// TODO raw data?
$document->addRelationship(
'clss',
$instance->getClassPHID(),
SemiStructuredObjectTypePHIDType::TYPECONST,
PhabricatorTime::getNow());
}
}
diff --git a/src/search/SemiStructuredObjectTypeFulltextEngine.php b/src/search/SemiStructuredObjectTypeFulltextEngine.php
index b1a7a17..b422281 100644
--- a/src/search/SemiStructuredObjectTypeFulltextEngine.php
+++ b/src/search/SemiStructuredObjectTypeFulltextEngine.php
@@ -1,18 +1,17 @@
<?php
final class SemiStructuredObjectTypeFulltextEngine
- extends PhabricatorFerretEngine {
+ extends PhabricatorFulltextEngine {
- public function getApplicationName() {
- return 'maniphest';
- }
+ protected function buildAbstractDocument(
+ PhabricatorSearchAbstractDocument $document,
+ $object_type) {
- public function getScopeName() {
- return 'task';
- }
+ $document->setDocumentTitle($object_type->getName());
- public function newSearchEngine() {
- return new ManiphestTaskSearchEngine();
- }
+ $document->addField(
+ PhabricatorSearchDocumentFieldType::FIELD_BODY,
+ $object_type->getDescription());
+ }
}
diff --git a/src/storage/SemiStructuredObjectType.php b/src/storage/SemiStructuredObjectType.php
index 2013dde..a684551 100644
--- a/src/storage/SemiStructuredObjectType.php
+++ b/src/storage/SemiStructuredObjectType.php
@@ -1,155 +1,164 @@
<?php
final class SemiStructuredObjectType extends SemiStructuredDAO
implements
PhabricatorPolicyInterface,
PhabricatorApplicationTransactionInterface,
// PhabricatorMarkupInterface, ?
PhabricatorMentionableInterface,
PhabricatorSubscribableInterface,
PhabricatorProjectInterface,
// PhabricatorConduitResultInterface
PhabricatorFlaggableInterface,
PhabricatorDestructibleInterface,
- PhabricatorFerretInterface {
+ PhabricatorFerretInterface,
+ PhabricatorFulltextInterface {
protected $viewPolicy;
protected $editPolicy;
protected $name;
protected $status;
protected $description;
protected $customFieldsConfig = array();
// icon/logo
const STATUS_ACTIVE = 'active';
const STATUS_ARCHIVED = 'archived';
public static function initializeNewObjectType(PhabricatorUser $actor) {
return id(new self())
->setName('')
->setViewPolicy(PhabricatorPolicies::getMostOpenPolicy())
->setEditPolicy($actor->getPHID())
->setStatus(self::STATUS_ACTIVE);
}
public function getCustomFieldsConfig() {
if (!$this->customFieldsConfig) {
return array();
}
return $this->customFieldsConfig;
}
public static function getStatusNameMap() {
return array(
self::STATUS_ACTIVE => pht('Active'),
self::STATUS_ARCHIVED => pht('Archived'),
);
}
protected function getConfiguration() {
return array(
self::CONFIG_AUX_PHID => true,
self::CONFIG_SERIALIZATION => array(
'customFieldsConfig' => self::SERIALIZATION_JSON,
),
self::CONFIG_COLUMN_SCHEMA => array(
'name' => 'sort255',
'status' => 'text32',
'description' => 'text',
),
) + parent::getConfiguration();
}
public function getPHIDType() {
return SemiStructuredObjectTypePHIDType::TYPECONST;
}
public function isArchived() {
return ($this->getStatus() == self::STATUS_ARCHIVED);
}
public function getURI() {
return urisprintf('/semistruct/type/%d/', $this->getID());
}
public function getObjectName() {
return pht('Object Type %d', $this->getID());
}
public function getIcon() {
// TODO copy the feature from Projects, where you can put a custom image
// or select from a list.
return SemiStructuredDataApplication::ICON_OBJECT_TYPE;
}
/* -( PhabricatorApplicationTransactionInterface )------------------------- */
public function getApplicationTransactionEditor() {
return new SemiStructuredObjectTypeTransactionEditor();
}
public function getApplicationTransactionTemplate() {
return new SemiStructuredObjectTypeTransaction();
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */
public function getCapabilities() {
return array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
// TODO can-create-instances
);
}
public function getPolicy($capability) {
switch ($capability) {
case PhabricatorPolicyCapability::CAN_VIEW:
return $this->getViewPolicy();
case PhabricatorPolicyCapability::CAN_EDIT:
return $this->getEditPolicy();
}
}
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
return false;
}
+/* -( PhabricatorFerretInterface )----------------------------------------- */
+
+
+public function newFerretEngine() {
+ return new SemiStructuredObjectTypeFerretEngine();
+}
+
+/* -( PhabricatorFulltextInterface )--------------------------------------- */
+
+
+public function newFulltextEngine() {
+ return new SemiStructuredObjectTypeFulltextEngine();
+}
+
+
/* -( PhabricatorDestructibleInterface )----------------------------------- */
public function destroyObjectPermanently(
PhabricatorDestructionEngine $engine) {
$this->openTransaction();
$this->delete();
$this->saveTransaction();
}
/* -( PhabricatorSubscribableInterface )----------------------------------- */
public function isAutomaticallySubscribed($phid) {
return false;
}
-
-/* -( PhabricatorFerretInterface )----------------------------------------- */
-
- public function newFerretEngine() {
- return new SemiStructuredObjectTypeFerretEngine();
- }
-
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Jan 19, 17:29 (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1118367
Default Alt Text
(21 KB)
Attached To
Mode
R6 Semi Structured
Attached
Detach File
Event Timeline
Log In to Comment