Add device group filter to widgets (#9692)

This commit is contained in:
Jellyfrog
2019-08-08 02:59:14 +02:00
committed by Tony Murray
parent b8c96abc35
commit fc281ccc4b
35 changed files with 262 additions and 64 deletions

View File

@@ -33,6 +33,9 @@ use Illuminate\View\View;
class ComponentStatusController extends WidgetController
{
protected $title = 'Component Status';
protected $defaults = [
'device_group' => null,
];
/**
* @param Request $request
@@ -40,6 +43,7 @@ class ComponentStatusController extends WidgetController
*/
public function getView(Request $request)
{
$data = $this->getSettings();
$status = [
[
'color' => 'text-success',
@@ -59,6 +63,9 @@ class ComponentStatusController extends WidgetController
->select('status', DB::raw("count('status') as total"))
->groupBy('status')
->where('disabled', "!=", 0)
->when($data['device_group'], function ($query) use ($data) {
$query->inDeviceGroup($data['device_group']);
})
->get()->pluck('total', 'status')->toArray();
foreach ($status as $key => $value) {
@@ -67,4 +74,9 @@ class ComponentStatusController extends WidgetController
return view('widgets.component-status', compact('status'));
}
public function getSettingsView(Request $request)
{
return view('widgets.settings.component-status', $this->getSettings(true));
}
}