diff --git a/lib/Activity/ActivityManager.php b/lib/Activity/ActivityManager.php index c8c12e711..6ad70294b 100644 --- a/lib/Activity/ActivityManager.php +++ b/lib/Activity/ActivityManager.php @@ -246,6 +246,19 @@ class ActivityManager { try { $event = $this->createEvent($objectType, $entity, $subject, $additionalParams, $author); if ($event !== null) { + $json = json_encode($event->getSubjectParameters()); + if (mb_strlen($json) > 4000) { + $params = json_decode(json_encode($event->getSubjectParameters()), true); + + $newContent = $params['after']; + unset($params['before'], $params['after'], $params['card']['description']); + + $params['after'] = mb_substr($newContent, 0, 2000); + if (mb_strlen($newContent) > 2000) { + $params['after'] .= '...'; + } + $event->setSubject($event->getSubject(), $params); + } $this->sendToUsers($event); } } catch (\Exception $e) { diff --git a/lib/Activity/DeckProvider.php b/lib/Activity/DeckProvider.php index c238b760d..c461b0321 100644 --- a/lib/Activity/DeckProvider.php +++ b/lib/Activity/DeckProvider.php @@ -329,8 +329,8 @@ class DeckProvider implements IProvider { if (array_key_exists('diff', $subjectParams) && $subjectParams['diff']) { $diff = new Diff(); // Don't add diff as message since we are limited to 255 chars here - //$event->setMessage($subjectParams['after']); - $event->setParsedMessage('
' . $diff->render($subjectParams['before'], $subjectParams['after']) . '
'); + $event->setParsedMessage($subjectParams['after']); + //$event->setParsedMessage('
' . $diff->render($subjectParams['before'], $subjectParams['after']) . '
'); return $params; } if (array_key_exists('before', $subjectParams)) { diff --git a/tests/unit/Activity/DeckProviderTest.php b/tests/unit/Activity/DeckProviderTest.php index 775bfc3ac..409dd1432 100644 --- a/tests/unit/Activity/DeckProviderTest.php +++ b/tests/unit/Activity/DeckProviderTest.php @@ -287,7 +287,7 @@ class DeckProviderTest extends TestCase { $this->assertEquals('test string Card', $event->getParsedSubject()); $this->assertEquals('test string {card}', $event->getRichSubject()); $this->assertEquals('BCD', $event->getMessage()); - $this->assertEquals('
ABCD
', $event->getParsedMessage()); + $this->assertEquals('BCD', $event->getParsedMessage()); } public function testParseParamForBoard() {