2019-11-16 10:21:14 +03:00

115 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers\Common;
use App\Abstracts\Http\Controller;
use App\Models\Common\Dashboard as Model;
use App\Models\Common\DashboardWidget;
use App\Http\Requests\Common\Dashboard as Request;
class Dashboard extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$dashboard_id = session('dashboard_id', 0);
// Change Dashboard
if (request()->get('dashboard_id', 0)) {
$dashboard_id = request()->get('dashboard_id');
session(['dashboard_id' => $dashboard_id]);
}
$user_id = user()->id;
$dashboards = Model::where('user_id', $user_id)->enabled()->get();
if (!$dashboard_id) {
$dashboard_id = $dashboards->first()->id;
}
// Dashboard
$dashboard = Model::find($dashboard_id);
// Dashboard Widgets
$widgets = DashboardWidget::where('dashboard_id', $dashboard->id)
->where('user_id', $user_id)
->orderBy('sort', 'asc')->get();
return view('common.dashboard.index', compact('dashboards','dashboard', 'widgets'));
}
/**
* Store a newly created resource in storage.
*
* @param $request
* @return Response
*/
public function store(Request $request)
{
$request['enabled'] = 1;
$request['user_id'] = user()->id;
$dashboard = Model::create($request->input());
$response['data'] = $dashboard;
$response['redirect'] = route('dashboard');
return response()->json($response);
}
/**
* Show the form for editing the specified resource.
*
* @param Model $dashboard
*
* @return Response
*/
public function edit(Model $dashboard)
{
return response()->json($dashboard);
}
/**
* Update the specified resource in storage.
*
* @param Model $dashboard
* @param $request
* @return Response
*/
public function update(Model $dashboard, Request $request)
{
$request['enabled'] = 1;
$dashboard->update($request->input());
$response['data'] = $dashboard;
$response['redirect'] = route('dashboard');
return response()->json($response);
}
/**
* Remove the specified resource from storage.
*
* @param Model $dashboard
*
* @return Response
*/
public function destroy(Model $dashboard)
{
$dashboard->delete();
session(['dashboard_id' => user()->dashboards()->pluck('id')->first()]);
$response['redirect'] = route('dashboard');
return response()->json($response);
}
}