[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/transactions/editor/ -> PhabricatorApplicationTransactionEditor.php (summary)

(no description)

File Size: 2543 lines (75 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 103 functions

  setActingAsPHID()
  getActingAsPHID()
  setContinueOnNoEffect()
  getContinueOnNoEffect()
  setContinueOnMissingFields()
  getContinueOnMissingFields()
  setParentMessageID()
  getParentMessageID()
  getIsNewObject()
  getMentionedPHIDs()
  setIsPreview()
  getIsPreview()
  setIsInverseEdgeEditor()
  getIsInverseEdgeEditor()
  setIsHeraldEditor()
  getIsHeraldEditor()
  setDisableEmail()
  getDisableEmail()
  setUnmentionablePHIDMap()
  getUnmentionablePHIDMap()
  getTransactionTypes()
  adjustTransactionValues()
  getTransactionOldValue()
  getTransactionNewValue()
  getCustomTransactionOldValue()
  getCustomTransactionNewValue()
  transactionHasEffect()
  shouldApplyInitialEffects()
  applyInitialEffects()
  applyInternalEffects()
  applyExternalEffects()
  applyCustomInternalTransaction()
  applyCustomExternalTransaction()
  populateTransaction()
  applyFinalEffects()
  setContentSource()
  setContentSourceFromRequest()
  setContentSourceFromConduitRequest()
  getContentSource()
  applyTransactions()
  didApplyTransactions()
  shouldReadLock()
  loadHandles()
  loadSubscribers()
  validateEditParameters()
  requireCapabilities()
  buildSubscribeTransaction()
  getRemarkupBlocksFromTransaction()
  mergeTransactions()
  expandTransactions()
  expandTransaction()
  expandSupportTransactions()
  expandRemarkupBlockTransactions()
  expandCustomRemarkupBlockTransactions()
  combineTransactions()
  mergePHIDOrEdgeTransactions()
  mergeEdgeData()
  getPHIDTransactionNewValue()
  getEdgeTransactionNewValue()
  checkEdgeList()
  normalizeEdgeTransactionValue()
  sortTransactions()
  filterTransactions()
  validateTransaction()
  validatePolicyTransaction()
  adjustObjectForPolicyChecks()
  validateIsEmptyTextField()
  applyImplicitCC()
  shouldImplyCC()
  shouldSendMail()
  sendMail()
  addMailProjectMetadata()
  getMailThreadID()
  getStrongestAction()
  buildReplyHandler()
  getMailSubjectPrefix()
  getMailTags()
  getMailTagsMap()
  getMailAction()
  buildMailTemplate()
  getMailTo()
  getMailCC()
  buildMailBody()
  shouldPublishFeedStory()
  getFeedStoryType()
  getFeedRelatedPHIDs()
  getFeedNotifyPHIDs()
  getFeedStoryData()
  publishFeedStory()
  supportsSearch()
  shouldApplyHeraldRules()
  buildHeraldAdapter()
  setHeraldAdapter()
  getHeraldAdapter()
  setHeraldTranscript()
  getHeraldTranscript()
  applyHeraldRules()
  didApplyHeraldRules()
  getCustomFieldForTransaction()
  extractFilePHIDs()
  extractFilePHIDsFromCustomTransaction()
  attachFiles()
  applyInverseEdgeTransactions()

Functions
Functions that are not part of a class:

setActingAsPHID($acting_as_phid)   X-Ref
No description

getActingAsPHID()   X-Ref
No description

setContinueOnNoEffect($continue)   X-Ref
When the editor tries to apply transactions that have no effect, should
it raise an exception (default) or drop them and continue?

Generally, you will set this flag for edits coming from "Edit" interfaces,
and leave it cleared for edits coming from "Comment" interfaces, so the
user will get a useful error if they try to submit a comment that does
nothing (e.g., empty comment with a status change that has already been
performed by another user).

param: bool  True to drop transactions without effect and continue.
return: this

getContinueOnNoEffect()   X-Ref
No description

setContinueOnMissingFields($continue_on_missing_fields)   X-Ref
When the editor tries to apply transactions which don't populate all of
an object's required fields, should it raise an exception (default) or
drop them and continue?

For example, if a user adds a new required custom field (like "Severity")
to a task, all existing tasks won't have it populated. When users
manually edit existing tasks, it's usually desirable to have them provide
a severity. However, other operations (like batch editing just the
owner of a task) will fail by default.

By setting this flag for edit operations which apply to specific fields
(like the priority, batch, and merge editors in Maniphest), these
operations can continue to function even if an object is outdated.

param: bool  True to continue when transactions don't completely satisfy
return: this

getContinueOnMissingFields()   X-Ref
No description

setParentMessageID($parent_message_id)   X-Ref
Not strictly necessary, but reply handlers ideally set this value to
make email threading work better.


getParentMessageID()   X-Ref
No description

getIsNewObject()   X-Ref
No description

getMentionedPHIDs()   X-Ref
No description

setIsPreview($is_preview)   X-Ref
No description

getIsPreview()   X-Ref
No description

setIsInverseEdgeEditor($is_inverse_edge_editor)   X-Ref
No description

getIsInverseEdgeEditor()   X-Ref
No description

setIsHeraldEditor($is_herald_editor)   X-Ref
No description

getIsHeraldEditor()   X-Ref
No description

setDisableEmail($disable_email)   X-Ref
Prevent this editor from generating email when applying transactions.

param: bool  True to disable email.
return: this

getDisableEmail()   X-Ref
No description

setUnmentionablePHIDMap(array $map)   X-Ref
No description

getUnmentionablePHIDMap()   X-Ref
No description

getTransactionTypes()   X-Ref
No description

adjustTransactionValues(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

getTransactionOldValue(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

getTransactionNewValue(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

getCustomTransactionOldValue(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

getCustomTransactionNewValue(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

transactionHasEffect(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

shouldApplyInitialEffects(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

applyInitialEffects(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

applyInternalEffects(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

applyExternalEffects(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

applyCustomInternalTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

applyCustomExternalTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

populateTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
Fill in a transaction's common values, like author and content source.


applyFinalEffects(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

setContentSource(PhabricatorContentSource $content_source)   X-Ref
No description

setContentSourceFromRequest(AphrontRequest $request)   X-Ref
No description

setContentSourceFromConduitRequest(ConduitAPIRequest $request)   X-Ref
No description

getContentSource()   X-Ref
No description

applyTransactions(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

didApplyTransactions(array $xactions)   X-Ref
No description

shouldReadLock(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
Determine if the editor should hold a read lock on the object while
applying a transaction.

If the editor does not hold a lock, two editors may read an object at the
same time, then apply their changes without any synchronization. For most
transactions, this does not matter much. However, it is important for some
transactions. For example, if an object has a transaction count on it, both
editors may read the object with `count = 23`, then independently update it
and save the object with `count = 24` twice. This will produce the wrong
state: the object really has 25 transactions, but the count is only 24.

Generally, transactions fall into one of four buckets:

- Append operations: Actions like adding a comment to an object purely
add information to its state, and do not depend on the current object
state in any way. These transactions never need to hold locks.
- Overwrite operations: Actions like changing the title or description
of an object replace the current value with a new value, so the end
state is consistent without a lock. We currently do not lock these
transactions, although we may in the future.
- Edge operations: Edge and subscription operations have internal
synchronization which limits the damage race conditions can cause.
We do not currently lock these transactions, although we may in the
future.
- Update operations: Actions like incrementing a count on an object.
These operations generally should use locks, unless it is not
important that the state remain consistent in the presence of races.

param: PhabricatorLiskDAO  Object being updated.
param: PhabricatorApplicationTransaction Transaction being applied.
return: bool                True to synchronize the edit with a lock.

loadHandles(array $xactions)   X-Ref
No description

loadSubscribers(PhabricatorLiskDAO $object)   X-Ref
No description

validateEditParameters(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

requireCapabilities(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

buildSubscribeTransaction(PhabricatorLiskDAO $object,array $xactions,array $blocks)   X-Ref
No description

getRemarkupBlocksFromTransaction(PhabricatorApplicationTransaction $transaction)   X-Ref
No description

mergeTransactions(PhabricatorApplicationTransaction $u,PhabricatorApplicationTransaction $v)   X-Ref
No description

expandTransactions(PhabricatorLiskDAO $object,array $xactions)   X-Ref
Optionally expand transactions which imply other effects. For example,
resigning from a revision in Differential implies removing yourself as
a reviewer.


expandTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

expandSupportTransactions(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

expandRemarkupBlockTransactions(PhabricatorLiskDAO $object,array $xactions,$blocks,PhutilMarkupEngine $engine)   X-Ref
No description

expandCustomRemarkupBlockTransactions(PhabricatorLiskDAO $object,array $xactions,$blocks,PhutilMarkupEngine $engine)   X-Ref
No description

combineTransactions(array $xactions)   X-Ref
Attempt to combine similar transactions into a smaller number of total
transactions. For example, two transactions which edit the title of an
object can be merged into a single edit.


mergePHIDOrEdgeTransactions(PhabricatorApplicationTransaction $u,PhabricatorApplicationTransaction $v)   X-Ref
No description

mergeEdgeData($type, array $u, array $v)   X-Ref
No description

getPHIDTransactionNewValue(PhabricatorApplicationTransaction $xaction)   X-Ref
No description

getEdgeTransactionNewValue(PhabricatorApplicationTransaction $xaction)   X-Ref
No description

checkEdgeList($list)   X-Ref
No description

normalizeEdgeTransactionValue(PhabricatorApplicationTransaction $xaction,$edge,$dst_phid)   X-Ref
No description

sortTransactions(array $xactions)   X-Ref
No description

filterTransactions(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

validateTransaction(PhabricatorLiskDAO $object,$type,array $xactions)   X-Ref
Hook for validating transactions. This callback will be invoked for each
available transaction type, even if an edit does not apply any transactions
of that type. This allows you to raise exceptions when required fields are
missing, by detecting that the object has no field value and there is no
transaction which sets one.

param: PhabricatorLiskDAO Object being edited.
param: string Transaction type to validate.
param: list<PhabricatorApplicationTransaction> Transactions of given type,
return: list<PhabricatorApplicationTransactionValidationError> List of

validatePolicyTransaction(PhabricatorLiskDAO $object,array $xactions,$transaction_type,$capability)   X-Ref
No description

adjustObjectForPolicyChecks(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

validateIsEmptyTextField($field_value, array $xactions)   X-Ref
Check for a missing text field.

A text field is missing if the object has no value and there are no
transactions which set a value, or if the transactions remove the value.
This method is intended to make implementing @{method:validateTransaction}
more convenient:

$missing = $this->validateIsEmptyTextField(
$object->getName(),
$xactions);

This will return `true` if the net effect of the object and transactions
is an empty field.

param: wild Current field value.
param: list<PhabricatorApplicationTransaction> Transactions editing the
return: bool True if the field will be an empty text field after edits.

applyImplicitCC(PhabricatorLiskDAO $object,array $xactions)   X-Ref
When a user interacts with an object, we might want to add them to CC.


shouldImplyCC(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref
No description

shouldSendMail(PhabricatorLiskDAO $object,array $xactions)   X-Ref


sendMail(PhabricatorLiskDAO $object,array $xactions)   X-Ref


addMailProjectMetadata(PhabricatorLiskDAO $object,PhabricatorMetaMTAMail $template)   X-Ref
No description

getMailThreadID(PhabricatorLiskDAO $object)   X-Ref
No description

getStrongestAction(PhabricatorLiskDAO $object,array $xactions)   X-Ref


buildReplyHandler(PhabricatorLiskDAO $object)   X-Ref


getMailSubjectPrefix()   X-Ref


getMailTags(PhabricatorLiskDAO $object,array $xactions)   X-Ref


getMailTagsMap()   X-Ref


getMailAction(PhabricatorLiskDAO $object,array $xactions)   X-Ref


buildMailTemplate(PhabricatorLiskDAO $object)   X-Ref


getMailTo(PhabricatorLiskDAO $object)   X-Ref


getMailCC(PhabricatorLiskDAO $object)   X-Ref


buildMailBody(PhabricatorLiskDAO $object,array $xactions)   X-Ref


shouldPublishFeedStory(PhabricatorLiskDAO $object,array $xactions)   X-Ref


getFeedStoryType()   X-Ref


getFeedRelatedPHIDs(PhabricatorLiskDAO $object,array $xactions)   X-Ref


getFeedNotifyPHIDs(PhabricatorLiskDAO $object,array $xactions)   X-Ref


getFeedStoryData(PhabricatorLiskDAO $object,array $xactions)   X-Ref


publishFeedStory(PhabricatorLiskDAO $object,array $xactions,array $mailed_phids)   X-Ref


supportsSearch()   X-Ref


shouldApplyHeraldRules(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

buildHeraldAdapter(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

setHeraldAdapter(HeraldAdapter $adapter)   X-Ref
No description

getHeraldAdapter()   X-Ref
No description

setHeraldTranscript(HeraldTranscript $transcript)   X-Ref
No description

getHeraldTranscript()   X-Ref
No description

applyHeraldRules(PhabricatorLiskDAO $object,array $xactions)   X-Ref
No description

didApplyHeraldRules(PhabricatorLiskDAO $object,HeraldAdapter $adapter,HeraldTranscript $transcript)   X-Ref
No description

getCustomFieldForTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref


extractFilePHIDs(PhabricatorLiskDAO $object,array $xactions)   X-Ref
Extract the PHIDs of any files which these transactions attach.


extractFilePHIDsFromCustomTransaction(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction)   X-Ref


attachFiles(PhabricatorLiskDAO $object,array $file_phids)   X-Ref


applyInverseEdgeTransactions(PhabricatorLiskDAO $object,PhabricatorApplicationTransaction $xaction,$inverse_type)   X-Ref
No description



Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1