Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2890918
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
3 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/applications/maniphest/xaction/ManiphestTaskCoverImageTransaction.php b/src/applications/maniphest/xaction/ManiphestTaskCoverImageTransaction.php
index eb29c711f8..5e6f63c5c4 100644
--- a/src/applications/maniphest/xaction/ManiphestTaskCoverImageTransaction.php
+++ b/src/applications/maniphest/xaction/ManiphestTaskCoverImageTransaction.php
@@ -1,106 +1,124 @@
<?php
final class ManiphestTaskCoverImageTransaction
extends ManiphestTaskTransactionType {
const TRANSACTIONTYPE = 'cover-image';
public function generateOldValue($object) {
return $object->getCoverImageFilePHID();
}
public function applyInternalEffects($object, $value) {
$file_phid = $value;
if ($file_phid) {
$file = id(new PhabricatorFileQuery())
->setViewer($this->getActor())
->withPHIDs(array($file_phid))
->executeOne();
} else {
$file = null;
}
if (!$file || !$file->isTransformableImage()) {
$object->setProperty('cover.filePHID', null);
$object->setProperty('cover.thumbnailPHID', null);
return;
}
$xform_key = PhabricatorFileThumbnailTransform::TRANSFORM_WORKCARD;
$xform = PhabricatorFileTransform::getTransformByKey($xform_key)
->executeTransform($file);
$object->setProperty('cover.filePHID', $file->getPHID());
$object->setProperty('cover.thumbnailPHID', $xform->getPHID());
}
public function getTitle() {
$old = $this->getOldValue();
$new = $this->getNewValue();
if ($old === null) {
return pht(
'%s set the cover image to %s.',
$this->renderAuthor(),
$this->renderHandle($new));
}
return pht(
'%s updated the cover image to %s.',
$this->renderAuthor(),
$this->renderHandle($new));
}
public function getTitleForFeed() {
$old = $this->getOldValue();
if ($old === null) {
return pht(
'%s added a cover image to %s.',
$this->renderAuthor(),
$this->renderObject());
}
return pht(
'%s updated the cover image for %s.',
$this->renderAuthor(),
$this->renderObject());
}
public function validateTransactions($object, array $xactions) {
$errors = array();
$viewer = $this->getActor();
foreach ($xactions as $xaction) {
$file_phid = $xaction->getNewValue();
$file = id(new PhabricatorFileQuery())
->setViewer($viewer)
->withPHIDs(array($file_phid))
->executeOne();
if (!$file) {
$errors[] = $this->newInvalidError(
- pht('"%s" is not a valid file PHID.',
- $file_phid));
- } else {
- if (!$file->isViewableImage()) {
- $mime_type = $file->getMimeType();
- $errors[] = $this->newInvalidError(
- pht('File mime type of "%s" is not a valid viewable image.',
- $mime_type));
- }
+ pht(
+ 'File PHID ("%s") is invalid, or you do not have permission '.
+ 'to view it.',
+ $file_phid),
+ $xaction);
+ continue;
}
+ if (!$file->isViewableImage()) {
+ $errors[] = $this->newInvalidError(
+ pht(
+ 'File ("%s", with MIME type "%s") is not a viewable image file.',
+ $file_phid,
+ $file->getMimeType()),
+ $xaction);
+ continue;
+ }
+
+ if (!$file->isTransformableImage()) {
+ $errors[] = $this->newInvalidError(
+ pht(
+ 'File ("%s", with MIME type "%s") can not be transformed into '.
+ 'a thumbnail. You may be missing support for this file type in '.
+ 'the "GD" extension.',
+ $file_phid,
+ $file->getMimeType()),
+ $xaction);
+ continue;
+ }
}
return $errors;
}
public function getIcon() {
return 'fa-image';
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Jan 19, 14:21 (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1125439
Default Alt Text
(3 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment