mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 00:17:34 -05:00 
			
		
		
		
	Filter images
This commit is contained in:
		
							parent
							
								
									c46ce9bc81
								
							
						
					
					
						commit
						9b383b525b
					
				
							
								
								
									
										30
									
								
								app/Helpers/Document/WithTypeHelpers.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								app/Helpers/Document/WithTypeHelpers.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Invoice Ninja (https://invoiceninja.com).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @license https://opensource.org/licenses/AAL
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Helpers\Document;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					trait WithTypeHelpers
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Returns boolean based on checks for image.
 | 
				
			||||||
 | 
					     * 
 | 
				
			||||||
 | 
					     * @return bool 
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function isImage(): bool
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (in_array($this->type, ['png', 'svg', 'jpeg', 'jpg', 'tiff', 'gif'])) {
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -11,6 +11,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace App\Models;
 | 
					namespace App\Models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Helpers\Document\WithTypeHelpers;
 | 
				
			||||||
use App\Models\Filterable;
 | 
					use App\Models\Filterable;
 | 
				
			||||||
use Illuminate\Database\Eloquent\SoftDeletes;
 | 
					use Illuminate\Database\Eloquent\SoftDeletes;
 | 
				
			||||||
use Illuminate\Support\Facades\Storage;
 | 
					use Illuminate\Support\Facades\Storage;
 | 
				
			||||||
@ -19,6 +20,7 @@ class Document extends BaseModel
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    use SoftDeletes;
 | 
					    use SoftDeletes;
 | 
				
			||||||
    use Filterable;
 | 
					    use Filterable;
 | 
				
			||||||
 | 
					    use WithTypeHelpers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const DOCUMENT_PREVIEW_SIZE = 300; // pixels
 | 
					    const DOCUMENT_PREVIEW_SIZE = 300; // pixels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -756,6 +756,10 @@ html {
 | 
				
			|||||||
        $container->setAttribute('style', 'display:grid; grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr);');
 | 
					        $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) {
 | 
					        foreach ($this->entity->documents as $document) {
 | 
				
			||||||
 | 
					            if (!$document->isImage()) {
 | 
				
			||||||
 | 
					                continue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $image = $dom->createElement('img');
 | 
					            $image = $dom->createElement('img');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            $image->setAttribute('src', $document->generateUrl());
 | 
					            $image->setAttribute('src', $document->generateUrl());
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										45
									
								
								tests/Unit/WithTypeHelpersTest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								tests/Unit/WithTypeHelpersTest.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Invoice Ninja (https://invoiceninja.com).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @link https://github.com/invoiceninja/invoiceninja source repository
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @license https://opensource.org/licenses/AAL
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Tests\Unit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Models\Account;
 | 
				
			||||||
 | 
					use App\Models\Company;
 | 
				
			||||||
 | 
					use App\Models\Document;
 | 
				
			||||||
 | 
					use Tests\TestCase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class WithTypeHelpersTest extends TestCase
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public function testIsImageHelper(): void
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $account = Account::factory()->create();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $company = Company::factory()->create([
 | 
				
			||||||
 | 
					            'account_id' => $account->id,
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /** @var Document */
 | 
				
			||||||
 | 
					        $document = Document::factory()->create([
 | 
				
			||||||
 | 
					            'company_id' => $company->id,
 | 
				
			||||||
 | 
					            'type' => 'jpeg',
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->assertTrue($document->isImage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /** @var Document */
 | 
				
			||||||
 | 
					        $document = Document::factory()->create([
 | 
				
			||||||
 | 
					            'company_id' => $company->id,
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->assertFalse($document->isImage());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user