@inject ('datagrid', 'App\Renderers\DatagridRenderer') {!! $datagrid->filters($filters)->render( $filterService, // Columns [ // Avatar [ 'type' => 'avatar' ], // Name 'name', 'type', [ 'label' => trans('locations.fields.location'), 'field' => 'parentLocation.name', 'render' => function($model) { if ($model->parentLocation) { return '' . e($model->parentLocation->name) . ''; } } ], [ 'label' => trans('locations.fields.characters'), 'visible' => $campaign->enabled('characters'), 'render' => function($model) { $total = $model->characters->count(); foreach ($model->descendants()->with('characters')->get() as $child) { $total += $child->characters->count(); } return $total; }, 'disableSort' => true, ], [ 'label' => trans('locations.fields.map'), 'field' => 'map', 'render' => function($model) { if (!empty($model->map) && (!$model->is_map_private || auth()->check() && auth()->user()->can('map', $model))) { return ''; } return null; }, ], [ 'type' => 'is_private', ] ], // Data $models, // Options [ 'route' => 'locations.index', 'baseRoute' => 'locations', 'trans' => 'locations.fields.', ] ) !!}