1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-01 11:12:42 +01:00
phorge-phorge/src/applications/transactions/interface/PhabricatorApplicationTransactionInterface.php
Bob Trahan 6ab3f06b6e Transactions - adding willRenderTimeline to handle tricky cases
Summary: Fixes T6693.

Test Plan:
Made a bunch of comments on a diff with differential, being sure to leave inlines here and there. This reproduced the issue in T6693. With this patch this issue no longer reproduces!

Successfully "showed older changes" in Maniphest too.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin, epriestley

Maniphest Tasks: T6693

Differential Revision: https://secure.phabricator.com/D10931
2014-12-04 13:58:52 -08:00

74 lines
2 KiB
PHP

<?php
/**
* Allow infrastructure to apply transactions to the implementing object.
*
* For example, implementing this interface allows Subscriptions to apply CC
* transactions, and allows Harbormaster to apply build result notifications.
*/
interface PhabricatorApplicationTransactionInterface {
/**
* Return a @{class:PhabricatorApplicationTransactionEditor} which can be
* used to apply transactions to this object.
*
* @return PhabricatorApplicationTransactionEditor Editor for this object.
*/
public function getApplicationTransactionEditor();
/**
* Return the object to apply transactions to. Normally this is the current
* object (that is, `$this`), but in some cases transactions may apply to
* a different object: for example, @{class:DifferentialDiff} applies
* transactions to the associated @{class:DifferentialRevision}.
*
* @return PhabricatorLiskDAO Object to apply transactions to.
*/
public function getApplicationTransactionObject();
/**
* Return a template transaction for this object.
*
* @return PhabricatorApplicationTransaction
*/
public function getApplicationTransactionTemplate();
/**
* Hook to augment the $timeline with additional data for rendering.
*
* @return PhabricatorApplicationTransactionView
*/
public function willRenderTimeline(
PhabricatorApplicationTransactionView $timeline,
AphrontRequest $request);
}
// TEMPLATE IMPLEMENTATION /////////////////////////////////////////////////////
/* -( PhabricatorApplicationTransactionInterface )------------------------- */
/*
public function getApplicationTransactionEditor() {
return new <<<???>>>Editor();
}
public function getApplicationTransactionObject() {
return $this;
}
public function getApplicationTransactionTemplate() {
return new <<<???>>>Transaction();
}
public function willRenderTimeline(
PhabricatorApplicationTransactionView $timeline,
AphrontRequest $request) {
return $timeline;
}
*/