Path: blob/master/src/applications/files/xaction/PhabricatorFileAltTextTransaction.php
12241 views
<?php12final class PhabricatorFileAltTextTransaction3extends PhabricatorFileTransactionType {45const TRANSACTIONTYPE = 'file:alt';67public function generateOldValue($object) {8return $object->getCustomAltText();9}1011public function generateNewValue($object, $value) {12$value = phutil_string_cast($value);1314if (!strlen($value)) {15$value = null;16}1718return $value;19}2021public function applyInternalEffects($object, $value) {22$object->setCustomAltText($value);23}2425public function getTitle() {26$old_value = $this->getOldValue();27$new_value = $this->getNewValue();2829if ($old_value == null || !strlen($old_value)) {30return pht(31'%s set the alternate text for this file to %s.',32$this->renderAuthor(),33$this->renderNewValue());34} else if ($new_value === null || !strlen($new_value)) {35return pht(36'%s removed the alternate text for this file (was %s).',37$this->renderAuthor(),38$this->renderOldValue());39} else {40return pht(41'%s changed the alternate text for this file from %s to %s.',42$this->renderAuthor(),43$this->renderOldValue(),44$this->renderNewValue());45}46}4748public function getTitleForFeed() {49$old_value = $this->getOldValue();50$new_value = $this->getNewValue();5152if ($old_value === null || !strlen($old_value)) {53return pht(54'%s set the alternate text for %s to %s.',55$this->renderAuthor(),56$this->renderObject(),57$this->renderNewValue());58} else if ($new_value === null || !strlen($new_value)) {59return pht(60'%s removed the alternate text for %s (was %s).',61$this->renderAuthor(),62$this->renderObject(),63$this->renderOldValue());64} else {65return pht(66'%s changed the alternate text for %s from %s to %s.',67$this->renderAuthor(),68$this->renderObject(),69$this->renderOldValue(),70$this->renderNewValue());71}72}7374public function validateTransactions($object, array $xactions) {75$errors = array();7677$max_length = 1024;78foreach ($xactions as $xaction) {79$new_value = $xaction->getNewValue();8081$new_length = strlen($new_value);82if ($new_length > $max_length) {83$errors[] = $this->newInvalidError(84pht(85'File alternate text must not be longer than %s character(s).',86new PhutilNumber($max_length)));87}88}8990return $errors;91}9293}949596