Completed
Pull Request — master (#2498)
by
unknown
02:28
created

Image::display()   B

Complexity

Conditions 7
Paths 2

Size

Total Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
nc 2
nop 4
dl 0
loc 19
rs 8.8333
c 0
b 0
f 0
1
<?php
2
3
namespace Encore\Admin\Grid\Displayers;
4
5
use Illuminate\Contracts\Support\Arrayable;
6
use Illuminate\Support\Facades\Storage;
7
use Encore\Admin\Admin;
8
9
class Image extends AbstractDisplayer
10
{
11
    public function display($server = '', $width = 200, $height = 200, $expand = false)
12
    {
13
        if ($this->value instanceof Arrayable) {
14
            $this->value = $this->value->toArray();
15
        }
16
17
        return collect((array) $this->value)->filter()->map(function ($path) use ($server, $width, $height, $expand) {
18
            if (url()->isValidUrl($path)) {
19
                $src = $path;
20
            } elseif ($server) {
21
                $src = $server.$path;
22
            } else {
23
                $src = Storage::disk(config('admin.upload.disk'))->url($path);
24
            }
25
26
            if ($expand) Admin::script("$('img.img-expand').on('click', function() { $('.img-expanded').attr('src', $(this).attr('src')); $('#img-expand-" . $this->getKey() . "').modal('show'); });");
27
            return ($expand?'<div class="modal fade" id="img-expand-' . $this->getKey() . '" tabindex="-1" role="dialog" aria-labelledby="img-expand" aria-hidden="true"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-body"><img src="" class="img-expanded" style="width: 100%;"></div></div></div></div>':'') . "<img src='$src' style='max-width:{$width}px;max-height:{$height}px' class='img img-thumbnail" . ($expand?' img-expand':'') . "' />";
28
        })->implode('&nbsp;');
29
    }
30
}
31