-
-
Notifications
You must be signed in to change notification settings - Fork 625
Expand file tree
/
Copy pathFolderAsset.php
More file actions
71 lines (55 loc) · 1.85 KB
/
FolderAsset.php
File metadata and controls
71 lines (55 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace Statamic\Http\Resources\CP\Assets;
use Illuminate\Http\Resources\Json\JsonResource;
use Statamic\Facades\User;
use Statamic\Support\Str;
class FolderAsset extends JsonResource
{
use HasThumbnails;
protected $blueprint;
protected $columns;
public function blueprint($blueprint)
{
$this->blueprint = $blueprint;
return $this;
}
public function columns($columns)
{
$this->columns = $columns;
return $this;
}
public function toArray($request)
{
return [
'id' => $this->id(),
'basename' => $this->basename(),
'path' => $this->path(),
'extension' => $this->extension(),
'url' => $this->absoluteUrl(),
'width' => $this->width(),
'height' => $this->height(),
'duration_formatted' => ($duration = $this->duration()) ? Str::durationForHumans($duration) : null,
'size_formatted' => Str::fileSizeForHumans($this->size(), 0),
'last_modified_relative' => $this->lastModified()->diffForHumans(),
'editable' => User::current()->can('edit', $this->resource),
$this->merge($this->values()),
$this->merge($this->thumbnails()),
];
}
protected function values($extra = [])
{
return $this->columns->mapWithKeys(function ($column) use ($extra) {
$key = $column->field;
$field = $this->blueprint->field($key);
$value = $extra[$key] ?? $this->resource->get($key) ?? $field?->defaultValue();
if (! $field) {
return [$key => $value];
}
$value = $field->setValue($value)
->setParent($this->resource)
->preProcessIndex()
->value();
return [$key => $value];
});
}
}