1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 15:22:41 +01:00

Support object mentions in Calendar Event descriptions

Summary:
Ref T7924. This:

  - Adds support for remarkup block changes to Modular Transactions.
  - Exposes remarkup changes from the Calendar event "Description" transaction.

This makes stuff like mentions and file embeds work properly.

Test Plan:
Mentioned a task in an event description, saw a mention appear on the task.

Uploaded a file to an event description, saw the file become "Attached" to the event.

(Neither of these worked properly before.)

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T7924

Differential Revision: https://secure.phabricator.com/D16481
This commit is contained in:
epriestley 2016-08-31 14:59:37 -07:00
parent 25a7266d15
commit 27cfd8d19e
3 changed files with 24 additions and 0 deletions

View file

@ -39,4 +39,15 @@ final class PhabricatorCalendarEventDescriptionTransaction
->setNewText($this->getNewValue()); ->setNewText($this->getNewValue());
} }
public function newRemarkupChanges() {
$changes = array();
$changes[] = $this->newRemarkupChange()
->setOldValue($this->getOldValue())
->setNewValue($this->getNewValue());
return $changes;
}
} }

View file

@ -149,4 +149,8 @@ abstract class PhabricatorModularTransaction
return parent::renderChangeDetails($viewer); return parent::renderChangeDetails($viewer);
} }
final protected function newRemarkupChanges() {
return $this->getTransactionImplementation()->newRemarkupChanges();
}
} }

View file

@ -67,6 +67,10 @@ abstract class PhabricatorModularTransactionType
throw new PhutilMethodNotImplementedException(); throw new PhutilMethodNotImplementedException();
} }
public function newRemarkupChanges() {
return array();
}
final public function setStorage( final public function setStorage(
PhabricatorApplicationTransaction $xaction) { PhabricatorApplicationTransaction $xaction) {
$this->storage = $xaction; $this->storage = $xaction;
@ -253,4 +257,9 @@ abstract class PhabricatorModularTransactionType
return ($target == PhabricatorApplicationTransaction::TARGET_TEXT); return ($target == PhabricatorApplicationTransaction::TARGET_TEXT);
} }
final protected function newRemarkupChange() {
return id(new PhabricatorTransactionRemarkupChange())
->setTransaction($this->getStorage());
}
} }