Skip to content

Commit 1d832fd

Browse files
committed
wip
1 parent 5893279 commit 1d832fd

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

resources/views/dashboard.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@extends('root::app')
22

33
{{-- Title --}}
4-
@section('title', 'Dashboard')
4+
@section('title', __('Dashboard'))
55

66
{{-- Content --}}
77
@section('content')

src/Resources/Resource.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
use Cone\Root\Traits\ResolvesFilters;
3030
use Cone\Root\Traits\ResolvesWidgets;
3131
use Cone\Root\Traits\Translatable;
32+
use Cone\Root\Widgets\Metric;
33+
use Cone\Root\Widgets\Widget;
3234
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
3335
use Illuminate\Contracts\Support\Arrayable;
3436
use Illuminate\Contracts\Support\MessageBag;
@@ -422,6 +424,16 @@ protected function resolveAction(Request $request, Action $action): void
422424
$action->withQuery(fn (): Builder => $this->resolveFilteredQuery($request));
423425
}
424426

427+
/**
428+
* Handle the callback for the widget resolution.
429+
*/
430+
protected function resolveWidget(Request $request, Widget $widget): void
431+
{
432+
if ($widget instanceof Metric) {
433+
$widget->withQuery(fn (): Builder => $this->resolveQuery($request));
434+
}
435+
}
436+
425437
/**
426438
* Get the per page options.
427439
*/

src/Widgets/Metric.php

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Cone\Root\Widgets;
44

55
use Closure;
6+
use Cone\Root\Exceptions\QueryResolutionException;
67
use DateInterval;
78
use DatePeriod;
89
use DateTime;
@@ -27,23 +28,16 @@ abstract class Metric extends Widget
2728
*/
2829
protected ?Closure $queryResolver = null;
2930

30-
/**
31-
* Create a new Eloquent query.
32-
*/
33-
abstract public function query(): Builder;
34-
3531
/**
3632
* Resolve the query.
3733
*/
3834
public function resolveQuery(Request $request): Builder
3935
{
40-
$query = $this->query();
41-
42-
if (! is_null($this->queryResolver)) {
43-
call_user_func_array($this->queryResolver, [$request, $query]);
36+
if (is_null($this->queryResolver)) {
37+
throw new QueryResolutionException;
4438
}
4539

46-
return $query;
40+
return call_user_func_array($this->queryResolver, [$request]);
4741
}
4842

4943
/**

stubs/Trend.stub

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace {{ namespace }};
44

55
use Cone\Root\Widgets\Trend;
6+
use Illuminate\Database\Eloquent\Builder;
67
use Illuminate\Http\Request;
78

89
class {{ class }} extends Trend

stubs/Value.stub

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace {{ namespace }};
44

55
use Cone\Root\Widgets\Value;
6+
use Illuminate\Database\Eloquent\Builder;
67
use Illuminate\Http\Request;
78

89
class {{ class }} extends Value

0 commit comments

Comments
 (0)