diff --git a/resources/sql/autopatches/20140210.projcfield.4.memmig.sql b/resources/sql/autopatches/20140210.projcfield.4.memmig.sql --- a/resources/sql/autopatches/20140210.projcfield.4.memmig.sql +++ b/resources/sql/autopatches/20140210.projcfield.4.memmig.sql @@ -1,6 +1,6 @@ /* These are here so `grep` will find them if we ever change things: */ -/* PhabricatorEdgeConfig::TYPE_PROJ_MEMBER = 13 */ +/* PhabricatorProjectProjectHasMemberEdgeType::EDGECONST = 13 */ /* PhabricatorEdgeConfig::TYPE_OBJECT_HAS_SUBSCRIBER = 21 */ INSERT IGNORE INTO {$NAMESPACE}_project.edge (src, type, dst, dateCreated) diff --git a/resources/sql/patches/20130716.archivememberlessprojects.php b/resources/sql/patches/20130716.archivememberlessprojects.php --- a/resources/sql/patches/20130716.archivememberlessprojects.php +++ b/resources/sql/patches/20130716.archivememberlessprojects.php @@ -9,7 +9,7 @@ $members = PhabricatorEdgeQuery::loadDestinationPHIDs( $project->getPHID(), - PhabricatorEdgeConfig::TYPE_PROJ_MEMBER); + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST); if (count($members)) { echo sprintf( diff --git a/resources/sql/patches/migrate-project-edges.php b/resources/sql/patches/migrate-project-edges.php --- a/resources/sql/patches/migrate-project-edges.php +++ b/resources/sql/patches/migrate-project-edges.php @@ -25,7 +25,7 @@ foreach ($members as $user_phid) { $editor->addEdge( $proj->getPHID(), - PhabricatorEdgeConfig::TYPE_PROJ_MEMBER, + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST, $user_phid); } $editor->save(); 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 @@ -2155,6 +2155,7 @@ 'PhabricatorProjectIcon' => 'applications/project/icon/PhabricatorProjectIcon.php', 'PhabricatorProjectInterface' => 'applications/project/interface/PhabricatorProjectInterface.php', 'PhabricatorProjectListController' => 'applications/project/controller/PhabricatorProjectListController.php', + 'PhabricatorProjectMemberOfProjectEdgeType' => 'applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php', 'PhabricatorProjectMembersEditController' => 'applications/project/controller/PhabricatorProjectMembersEditController.php', 'PhabricatorProjectMembersRemoveController' => 'applications/project/controller/PhabricatorProjectMembersRemoveController.php', 'PhabricatorProjectMoveController' => 'applications/project/controller/PhabricatorProjectMoveController.php', @@ -2162,6 +2163,7 @@ 'PhabricatorProjectObjectHasProjectEdgeType' => 'applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php', 'PhabricatorProjectOrUserDatasource' => 'applications/project/typeahead/PhabricatorProjectOrUserDatasource.php', 'PhabricatorProjectProfileController' => 'applications/project/controller/PhabricatorProjectProfileController.php', + 'PhabricatorProjectProjectHasMemberEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php', 'PhabricatorProjectProjectHasObjectEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasObjectEdgeType.php', 'PhabricatorProjectProjectPHIDType' => 'applications/project/phid/PhabricatorProjectProjectPHIDType.php', 'PhabricatorProjectQuery' => 'applications/project/query/PhabricatorProjectQuery.php', @@ -5350,6 +5352,7 @@ 'PhabricatorProjectEditorTestCase' => 'PhabricatorTestCase', 'PhabricatorProjectIcon' => 'Phobject', 'PhabricatorProjectListController' => 'PhabricatorProjectController', + 'PhabricatorProjectMemberOfProjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectMembersEditController' => 'PhabricatorProjectController', 'PhabricatorProjectMembersRemoveController' => 'PhabricatorProjectController', 'PhabricatorProjectMoveController' => 'PhabricatorProjectController', @@ -5357,6 +5360,7 @@ 'PhabricatorProjectObjectHasProjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectOrUserDatasource' => 'PhabricatorTypeaheadCompositeDatasource', 'PhabricatorProjectProfileController' => 'PhabricatorProjectController', + 'PhabricatorProjectProjectHasMemberEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectProjectHasObjectEdgeType' => 'PhabricatorEdgeType', 'PhabricatorProjectProjectPHIDType' => 'PhabricatorPHIDType', 'PhabricatorProjectQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', diff --git a/src/applications/owners/storage/PhabricatorOwnersOwner.php b/src/applications/owners/storage/PhabricatorOwnersOwner.php --- a/src/applications/owners/storage/PhabricatorOwnersOwner.php +++ b/src/applications/owners/storage/PhabricatorOwnersOwner.php @@ -57,7 +57,9 @@ if ($project_phids) { $query = id(new PhabricatorEdgeQuery()) ->withSourcePHIDs($project_phids) - ->withEdgeTypes(array(PhabricatorEdgeConfig::TYPE_PROJ_MEMBER)); + ->withEdgeTypes(array( + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST, + )); $query->execute(); $users_in_project_phids = $query->getDestinationPHIDs(); } diff --git a/src/applications/project/conduit/ProjectCreateConduitAPIMethod.php b/src/applications/project/conduit/ProjectCreateConduitAPIMethod.php --- a/src/applications/project/conduit/ProjectCreateConduitAPIMethod.php +++ b/src/applications/project/conduit/ProjectCreateConduitAPIMethod.php @@ -43,7 +43,9 @@ $xactions[] = id(new PhabricatorProjectTransaction()) ->setTransactionType(PhabricatorTransactions::TYPE_EDGE) - ->setMetadataValue('edge:type', PhabricatorEdgeConfig::TYPE_PROJ_MEMBER) + ->setMetadataValue( + 'edge:type', + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST) ->setNewValue( array( '+' => array_fuse($members), diff --git a/src/applications/project/controller/PhabricatorProjectEditDetailsController.php b/src/applications/project/controller/PhabricatorProjectEditDetailsController.php --- a/src/applications/project/controller/PhabricatorProjectEditDetailsController.php +++ b/src/applications/project/controller/PhabricatorProjectEditDetailsController.php @@ -128,7 +128,7 @@ ->setTransactionType(PhabricatorTransactions::TYPE_EDGE) ->setMetadataValue( 'edge:type', - PhabricatorEdgeConfig::TYPE_PROJ_MEMBER) + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST) ->setNewValue( array( '+' => array($viewer->getPHID() => $viewer->getPHID()), diff --git a/src/applications/project/controller/PhabricatorProjectMembersEditController.php b/src/applications/project/controller/PhabricatorProjectMembersEditController.php --- a/src/applications/project/controller/PhabricatorProjectMembersEditController.php +++ b/src/applications/project/controller/PhabricatorProjectMembersEditController.php @@ -42,7 +42,7 @@ $member_spec['+'] = array_fuse($add_members); } - $type_member = PhabricatorEdgeConfig::TYPE_PROJ_MEMBER; + $type_member = PhabricatorProjectProjectHasMemberEdgeType::EDGECONST; $xactions = array(); diff --git a/src/applications/project/controller/PhabricatorProjectMembersRemoveController.php b/src/applications/project/controller/PhabricatorProjectMembersRemoveController.php --- a/src/applications/project/controller/PhabricatorProjectMembersRemoveController.php +++ b/src/applications/project/controller/PhabricatorProjectMembersRemoveController.php @@ -40,7 +40,7 @@ $member_spec = array(); $member_spec['-'] = array($remove_phid => $remove_phid); - $type_member = PhabricatorEdgeConfig::TYPE_PROJ_MEMBER; + $type_member = PhabricatorProjectProjectHasMemberEdgeType::EDGECONST; $xactions = array(); diff --git a/src/applications/project/controller/PhabricatorProjectUpdateController.php b/src/applications/project/controller/PhabricatorProjectUpdateController.php --- a/src/applications/project/controller/PhabricatorProjectUpdateController.php +++ b/src/applications/project/controller/PhabricatorProjectUpdateController.php @@ -56,7 +56,7 @@ break; } - $type_member = PhabricatorEdgeConfig::TYPE_PROJ_MEMBER; + $type_member = PhabricatorProjectProjectHasMemberEdgeType::EDGECONST; $member_spec = array( $edge_action => array($user->getPHID() => $user->getPHID()), ); diff --git a/src/applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php b/src/applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php new file mode 100644 --- /dev/null +++ b/src/applications/project/edge/PhabricatorProjectMemberOfProjectEdgeType.php @@ -0,0 +1,103 @@ +getMetadataValue('edge:type'); switch ($edge_type) { - case PhabricatorEdgeConfig::TYPE_PROJ_MEMBER: + case PhabricatorProjectProjectHasMemberEdgeType::EDGECONST: case PhabricatorEdgeConfig::TYPE_OBJECT_HAS_WATCHER: $old = $xaction->getOldValue(); $new = $xaction->getNewValue(); @@ -190,7 +190,8 @@ // When removing members, we remove their subscription too. // When unwatching, we leave subscriptions, since it's fine to be // subscribed to a project but not be a member of it. - if ($edge_type == PhabricatorEdgeConfig::TYPE_PROJ_MEMBER) { + $edge_const = PhabricatorProjectProjectHasMemberEdgeType::EDGECONST; + if ($edge_type == $edge_const) { $rem = array_keys(array_diff_key($old, $new)); } else { $rem = array(); @@ -366,7 +367,7 @@ return; case PhabricatorTransactions::TYPE_EDGE: switch ($xaction->getMetadataValue('edge:type')) { - case PhabricatorEdgeConfig::TYPE_PROJ_MEMBER: + case PhabricatorProjectProjectHasMemberEdgeType::EDGECONST: $old = $xaction->getOldValue(); $new = $xaction->getNewValue(); diff --git a/src/applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php b/src/applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php --- a/src/applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php +++ b/src/applications/project/editor/__tests__/PhabricatorProjectEditorTestCase.php @@ -274,7 +274,9 @@ $xactions = array(); $xactions[] = id(new PhabricatorProjectTransaction()) ->setTransactionType(PhabricatorTransactions::TYPE_EDGE) - ->setMetadataValue('edge:type', PhabricatorEdgeConfig::TYPE_PROJ_MEMBER) + ->setMetadataValue( + 'edge:type', + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST) ->setNewValue($spec); $editor = id(new PhabricatorProjectTransactionEditor()) diff --git a/src/applications/project/query/PhabricatorProjectQuery.php b/src/applications/project/query/PhabricatorProjectQuery.php --- a/src/applications/project/query/PhabricatorProjectQuery.php +++ b/src/applications/project/query/PhabricatorProjectQuery.php @@ -138,7 +138,7 @@ $viewer_phid = $this->getViewer()->getPHID(); $project_phids = mpull($projects, 'getPHID'); - $member_type = PhabricatorEdgeConfig::TYPE_PROJ_MEMBER; + $member_type = PhabricatorProjectProjectHasMemberEdgeType::EDGECONST; $watcher_type = PhabricatorEdgeConfig::TYPE_OBJECT_HAS_WATCHER; $need_edge_types = array(); @@ -338,7 +338,7 @@ $conn_r, 'LEFT JOIN %T vm ON vm.src = p.phid AND vm.type = %d AND vm.dst = %s', PhabricatorEdgeConfig::TABLE_NAME_EDGE, - PhabricatorEdgeConfig::TYPE_PROJ_MEMBER, + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST, $this->getViewer()->getPHID()); } @@ -347,7 +347,7 @@ $conn_r, 'JOIN %T e ON e.src = p.phid AND e.type = %d', PhabricatorEdgeConfig::TABLE_NAME_EDGE, - PhabricatorEdgeConfig::TYPE_PROJ_MEMBER); + PhabricatorProjectProjectHasMemberEdgeType::EDGECONST); } if ($this->slugs !== null) { diff --git a/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php b/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php --- a/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php +++ b/src/infrastructure/edges/constants/PhabricatorEdgeConfig.php @@ -5,9 +5,6 @@ const TABLE_NAME_EDGE = 'edge'; const TABLE_NAME_EDGEDATA = 'edgedata'; - const TYPE_PROJ_MEMBER = 13; - const TYPE_MEMBER_OF_PROJ = 14; - const TYPE_OBJECT_HAS_SUBSCRIBER = 21; const TYPE_SUBSCRIBED_TO_OBJECT = 22; @@ -103,9 +100,6 @@ private static function getInverse($edge_type) { static $map = array( - self::TYPE_PROJ_MEMBER => self::TYPE_MEMBER_OF_PROJ, - self::TYPE_MEMBER_OF_PROJ => self::TYPE_PROJ_MEMBER, - self::TYPE_OBJECT_HAS_SUBSCRIBER => self::TYPE_SUBSCRIBED_TO_OBJECT, self::TYPE_SUBSCRIBED_TO_OBJECT => self::TYPE_OBJECT_HAS_SUBSCRIBER, @@ -179,10 +173,6 @@ switch ($type) { case self::TYPE_MOCK_HAS_TASK: return '%s edited task(s), added %d: %s; removed %d: %s.'; - case self::TYPE_PROJ_MEMBER: - return '%s edited member(s), added %d: %s; removed %d: %s.'; - case self::TYPE_MEMBER_OF_PROJ: - return '%s edited project(s), added %d: %s; removed %d: %s.'; case self::TYPE_OBJECT_HAS_SUBSCRIBER: return '%s edited subscriber(s), added %d: %s; removed %d: %s.'; case self::TYPE_SUBSCRIBED_TO_OBJECT: @@ -216,10 +206,6 @@ switch ($type) { case self::TYPE_MOCK_HAS_TASK: return '%s added %d task(s): %s.'; - case self::TYPE_PROJ_MEMBER: - return '%s added %d member(s): %s.'; - case self::TYPE_MEMBER_OF_PROJ: - return '%s added %d project(s): %s.'; case self::TYPE_OBJECT_HAS_SUBSCRIBER: return '%s added %d subscriber(s): %s.'; case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: @@ -250,10 +236,6 @@ switch ($type) { case self::TYPE_MOCK_HAS_TASK: return '%s removed %d task(s): %s.'; - case self::TYPE_PROJ_MEMBER: - return '%s removed %d member(s): %s.'; - case self::TYPE_MEMBER_OF_PROJ: - return '%s removed %d project(s): %s.'; case self::TYPE_OBJECT_HAS_SUBSCRIBER: return '%s removed %d subscriber(s): %s.'; case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: @@ -284,10 +266,6 @@ switch ($type) { case self::TYPE_MOCK_HAS_TASK: return '%s updated tasks of %s.'; - case self::TYPE_PROJ_MEMBER: - return '%s updated members of %s.'; - case self::TYPE_MEMBER_OF_PROJ: - return '%s updated projects of %s.'; case self::TYPE_OBJECT_HAS_SUBSCRIBER: return '%s updated subscribers of %s.'; case self::TYPE_OBJECT_HAS_UNSUBSCRIBER: diff --git a/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php b/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php --- a/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php +++ b/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php @@ -133,31 +133,31 @@ '%s edited member(s), added %d: %s; removed %d: %s.' => '%s edited members, added: %3$s; removed: %5$s.', - '%s added %d member(s): %s.' => array( + '%s added %s member(s): %s.' => array( array( '%s added a member: %3$s.', '%s added members: %3$s.', ), ), - '%s removed %d member(s): %s.' => array( + '%s removed %s member(s): %s.' => array( array( '%s removed a member: %3$s.', '%s removed members: %3$s.', ), ), - '%s edited project(s), added %d: %s; removed %d: %s.' => + '%s edited project(s), added %s: %s; removed %s: %s.' => '%s edited projects, added: %3$s; removed: %5$s.', - '%s added %d project(s): %s.' => array( + '%s added %s project(s): %s.' => array( array( '%s added a project: %3$s.', '%s added projects: %3$s.', ), ), - '%s removed %d project(s): %s.' => array( + '%s removed %s project(s): %s.' => array( array( '%s removed a project: %3$s.', '%s removed projects: %3$s.', @@ -792,20 +792,6 @@ '%s edited %s revision(s) for %s, added %s: %s; removed %s: %s.' => '%s edited revisions for %3$s, added: %5$s; removed %7$s.', - '%s added %s project(s): %s.' => array( - array( - '%s added a project: %3$s.', - '%s added projects: %3$s.', - ), - ), - - '%s removed %s project(s): %s.' => array( - array( - '%s removed a project: %3$s.', - '%s removed projects: %3$s.', - ), - ), - '%s edited %s project(s), added %s: %s; removed %s: %s.' => '%s edited projects, added %4$s; removed %6$s.',