Changes for #180

This commit is contained in:
the-djmaze 2022-01-10 14:30:55 +01:00
parent 9bfbd755c2
commit 0e2e44a269
2 changed files with 29 additions and 30 deletions

View file

@ -132,19 +132,11 @@ export class AttachmentModel extends AbstractModel {
return serverRequestRaw('View', this.download);
}
/**
* @returns {string}
*/
linkThumbnail() {
return this.hasThumbnail() ? serverRequestRaw('ViewThumbnail', this.download) : '';
}
/**
* @returns {string}
*/
linkThumbnailPreviewStyle() {
const link = this.linkThumbnail();
return link ? 'background:url(' + link + ')' : '';
return this.hasThumbnail() ? 'background:url(' + serverRequestRaw('ViewThumbnail', this.download) + ')' : '';
}
/**

View file

@ -63,29 +63,36 @@ class Attachment implements \JsonSerializable
public function FileName(bool $bCalculateOnEmpty = false) : string
{
$sFileName = '';
if ($this->oBodyStructure)
{
$sFileName = $this->oBodyStructure->FileName();
if ($bCalculateOnEmpty && !\strlen(\trim($sFileName)))
{
$sMimeType = \strtolower(\trim($this->MimeType()));
if ('message/rfc822' === $sMimeType)
{
$sFileName = 'message'.$this->MimeIndex().'.eml';
}
else if ('text/calendar' === $sMimeType)
{
$sFileName = 'calendar'.$this->MimeIndex().'.ics';
}
else if (\strlen($sMimeType))
{
$sFileName = \str_replace('/', $this->MimeIndex().'.', $sMimeType);
}
}
if (!$this->oBodyStructure) {
return '';
}
return $sFileName;
$sFileName = \trim($this->oBodyStructure->FileName());
if (\strlen($sFileName) || !$bCalculateOnEmpty) {
return $sFileName;
}
$sIdx = '-' . $this->MimeIndex();
$sMimeType = \strtolower(\trim($this->MimeType()));
if ('message/rfc822' === $sMimeType) {
return "message{$sIdx}.eml";
}
if ('text/calendar' === $sMimeType) {
return "calendar{$sIdx}.ics";
}
if ('text/plain' === $sMimeType) {
return "part{$sIdx}.txt";
}
if (\preg_match('@text/(vcard|html|csv|xml|css|asp)@', $sMimeType, $aMatch)
|| \preg_match('@image/(png|jpeg|gif|bmp|cgm|ief|tiff|webp)@', $sMimeType, $aMatch)) {
return "part{$sIdx}.{$aMatch[1]}";
}
if (\strlen($sMimeType)) {
return \str_replace('/', $sIdx.'.', $sMimeType);
}
return ($this->oBodyStructure->IsInline() ? 'part' : 'inline' ) . $sIdx;
}
public function MimeType() : string