Path: blob/master/src/applications/conpherence/xaction/ConpherenceThreadTitleTransaction.php
12256 views
<?php12final class ConpherenceThreadTitleTransaction3extends ConpherenceThreadTransactionType {45const TRANSACTIONTYPE = 'title';67public function generateOldValue($object) {8return $object->getTitle();9}1011public function applyInternalEffects($object, $value) {12$object->setTitle($value);13}1415public function getTitle() {16$old = $this->getOldValue();17$new = $this->getNewValue();1819if (strlen($old) && strlen($new)) {20return pht(21'%s renamed this room from %s to %s.',22$this->renderAuthor(),23$this->renderOldValue(),24$this->renderNewValue());25} else {26return pht(27'%s created this room.',28$this->renderAuthor());29}30}3132public function getTitleForFeed() {33$old = $this->getOldValue();34$new = $this->getNewValue();3536if (strlen($old) && strlen($new)) {37return pht(38'%s renamed %s from %s to %s.',39$this->renderAuthor(),40$this->renderObject(),41$this->renderOldValue(),42$this->renderNewValue());43} else {44return pht(45'%s created %s.',46$this->renderAuthor(),47$this->renderObject());48}49}505152public function validateTransactions($object, array $xactions) {53$errors = array();5455if ($this->isEmptyTextTransaction($object->getTitle(), $xactions)) {56$errors[] = $this->newRequiredError(57pht('Rooms must have a title.'));58}5960$max_length = $object->getColumnMaximumByteLength('title');61foreach ($xactions as $xaction) {62$new_value = $xaction->getNewValue();63$new_length = strlen($new_value);64if ($new_length > $max_length) {65$errors[] = $this->newInvalidError(66pht('The title can be no longer than %s characters.',67new PhutilNumber($max_length)));68}69}7071return $errors;72}7374}757677