Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F96294348
ProjectAddProjectsEmailCommand.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Dec 24, 17:24
Size
1 KB
Mime Type
text/x-php
Expires
Thu, Dec 26, 17:24 (2 d)
Engine
blob
Format
Raw Data
Handle
23151624
Attached To
rPH Phabricator
ProjectAddProjectsEmailCommand.php
View Options
<?php
final
class
ProjectAddProjectsEmailCommand
extends
MetaMTAEmailTransactionCommand
{
public
function
getCommand
()
{
return
'projects'
;
}
public
function
getCommandSyntax
()
{
return
'**!projects** //#project ...//'
;
}
public
function
getCommandSummary
()
{
return
pht
(
'Add related projects.'
);
}
public
function
getCommandDescription
()
{
return
pht
(
'Add one or more projects to the object by listing their hashtags. '
.
'Separate projects with spaces. For example, use `!projects #ios '
.
'#feature` to add both related projects.'
.
"
\n\n
"
.
'Projects which are invalid or unrecognized will be ignored. This '
.
'command has no effect if you do not specify any projects.'
);
}
public
function
getCommandAliases
()
{
return
array
(
'project'
,
);
}
public
function
isCommandSupportedForObject
(
PhabricatorApplicationTransactionInterface
$object
)
{
return
(
$object
instanceof
PhabricatorProjectInterface
);
}
public
function
buildTransactions
(
PhabricatorUser
$viewer
,
PhabricatorApplicationTransactionInterface
$object
,
PhabricatorMetaMTAReceivedMail
$mail
,
$command
,
array
$argv
)
{
$project_phids
=
id
(
new
PhabricatorObjectListQuery
())
->
setViewer
(
$viewer
)
->
setAllowedTypes
(
array
(
PhabricatorProjectProjectPHIDType
::
TYPECONST
,
))
->
setObjectList
(
implode
(
' '
,
$argv
))
->
setAllowPartialResults
(
true
)
->
execute
();
$xactions
=
array
();
$type_project
=
PhabricatorProjectObjectHasProjectEdgeType
::
EDGECONST
;
$xactions
[]
=
$object
->
getApplicationTransactionTemplate
()
->
setTransactionType
(
PhabricatorTransactions
::
TYPE_EDGE
)
->
setMetadataValue
(
'edge:type'
,
$type_project
)
->
setNewValue
(
array
(
'+'
=>
array_fuse
(
$project_phids
),
));
return
$xactions
;
}
}
Event Timeline
Log In to Comment