diff --git a/app/Helpers/Document/WithTypeHelpers.php b/app/Helpers/Document/WithTypeHelpers.php new file mode 100644 index 000000000000..55fad141aa96 --- /dev/null +++ b/app/Helpers/Document/WithTypeHelpers.php @@ -0,0 +1,30 @@ +type, ['png', 'svg', 'jpeg', 'jpg', 'tiff', 'gif'])) { + return true; + } + + return false; + } +} diff --git a/app/Models/Document.php b/app/Models/Document.php index 70a5d8b8a5ff..20059e724ad2 100644 --- a/app/Models/Document.php +++ b/app/Models/Document.php @@ -11,6 +11,7 @@ namespace App\Models; +use App\Helpers\Document\WithTypeHelpers; use App\Models\Filterable; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Storage; @@ -19,6 +20,7 @@ class Document extends BaseModel { use SoftDeletes; use Filterable; + use WithTypeHelpers; const DOCUMENT_PREVIEW_SIZE = 300; // pixels diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index ef9ab63ecedf..9887357474b1 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -481,6 +481,8 @@ class HtmlEngine $data['$statement_amount'] = ['value' => '', 'label' => ctrans('texts.amount')]; $data['$statement'] = ['value' => '', 'label' => ctrans('texts.statement')]; + $data['$entity_images'] = ['value' => $this->generateEntityImagesMarkup(), 'label' => '']; + $arrKeysLength = array_map('strlen', array_keys($data)); array_multisort($arrKeysLength, SORT_DESC, $data); @@ -737,4 +739,38 @@ html { return $css; } + + /** + * Generate markup for HTML images on entity. + * + * @return string|void + */ + protected function generateEntityImagesMarkup() + { + if ($this->client->getSetting('embed_documents') === false) { + return ''; + } + + $dom = new \DOMDocument('1.0', 'UTF-8'); + + $container = $dom->createElement('div'); + $container->setAttribute('style', 'display:grid; grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr);'); + + foreach ($this->entity->documents as $document) { + if (!$document->isImage()) { + continue; + } + + $image = $dom->createElement('img'); + + $image->setAttribute('src', $document->generateUrl()); + $image->setAttribute('style', 'max-height: 100px; margin-top: 20px;'); + + $container->appendChild($image); + } + + $dom->appendChild($container); + + return $dom->saveHTML(); + } } diff --git a/database/migrations/2021_11_03_131308_onboarding.php b/database/migrations/2021_11_08_131308_onboarding.php similarity index 100% rename from database/migrations/2021_11_03_131308_onboarding.php rename to database/migrations/2021_11_08_131308_onboarding.php diff --git a/resources/views/pdf-designs/bold.html b/resources/views/pdf-designs/bold.html index 245515e97374..a05851f097d5 100644 --- a/resources/views/pdf-designs/bold.html +++ b/resources/views/pdf-designs/bold.html @@ -367,6 +367,9 @@ + +$entity_images +