Nova | Package |
---|---|
V1-V3 | V1-V3 |
V4 | V4 |
composer require think.studio/nova-list-card
class FundsWithReportsCount extends ListCard
{
public function __construct($component = null)
{
parent::__construct($component);
$this->resource(\App\Nova\Resources\Fund::class)
->heading($this->name(), 'Reports')
->withCount('reports')
->orderBy('reports_count', 'desc')
->limit(100)
->value('reports_count');
}
public function cacheFor(): int|Carbon
{
return Carbon::now()->addMinutes(2);
}
}
class FundsWithReportIncomeSum extends ListCard
{
public function __construct($component = null)
{
parent::__construct($component);
$this->resource(\App\Nova\Resources\Fund::class)
->heading($this->name(), 'Total Income')
->withSum('reports', 'income')
->orderBy('reports_sum_income', 'desc')
->limit(100)
->value('reports_sum_income');
}
}
class FundsCustomList extends ListCard
{
public function __construct($component = null)
{
parent::__construct($component);
$this->resource(\App\Nova\Resources\Fund::class)
->heading($this->name())
->limit(100)
->timestamp('updated_at', 'm/Y')
->queryCallback(fn (Builder $q) => $q->where('publication_status', 'draft'));
}
public function name(): string
{
return 'Draft funds';
}
}
class FundsWithValueFormat extends ListCard
{
public function __construct($component = null)
{
parent::__construct($component);
$this->resource(\App\Nova\Resources\Fund::class)
->heading($this->name(), 'Created at')
->limit(100)
->timestamp('updated_at', 'm/Y')
->value('created_at', 'datetime', 'm/Y')
->classes('bg-yellow-300')
->noMaxHeight();
}
}