/**
  * Handle the columns.
  *
  * @param FileTableBuilder $builder
  */
 public function handle(FileTableBuilder $builder)
 {
     $builder->setColumns(['entry.preview' => ['heading' => 'anomaly.module.files::field.preview.name'], 'name' => ['sort_column' => 'name', 'wrapper' => '
                 <h4>
                     {value.link}
                     <br>
                     <small>{value.disk}://{value.folder}/{value.file}</small>
                     <small>{value.size}{value.keywords}</small>
                 </h4>', 'value' => ['file' => 'entry.name', 'link' => 'entry.edit_link', 'folder' => 'entry.folder.slug', 'keywords' => 'entry.keywords.labels', 'disk' => 'entry.folder.disk.slug', 'size' => function (FileInterface $entry) {
         if (!in_array($entry->getExtension(), config('anomaly.module.files::mimes.thumbnails'))) {
             return null;
         }
         return '<span class="label label-info">' . $entry->getWidth() . ' x ' . $entry->getHeight() . '</span>';
     }]]]);
 }
 /**
  * Handle the filters.
  *
  * @param FileTableBuilder          $builder
  * @param FolderRepositoryInterface $folders
  * @param Repository                $cache
  * @param Request                   $request
  */
 public function handle(FileTableBuilder $builder, FolderRepositoryInterface $folders, Repository $cache, Request $request)
 {
     $allowed = [];
     $config = $cache->get('file-field_type::' . $request->route('key'), []);
     foreach (array_get($config, 'folders', []) as $identifier) {
         /* @var FolderInterface $folder */
         if ($folder = $this->dispatch(new GetFolder($identifier))) {
             $allowed[$folder->getId()] = $folder->getName();
         }
     }
     if (!$allowed) {
         $allowed = $folders->all()->lists('name', 'id')->all();
     }
     $builder->setFolders($allowed)->setFilters(['folder' => ['exact' => true, 'filter' => 'select', 'options' => $allowed, 'enabled' => count($allowed) !== 1], 'name']);
 }
 /**
  * Return an index of existing files.
  *
  * @param FileTableBuilder $table
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function index(FileTableBuilder $table)
 {
     return $table->render();
 }