From 8d97b52c882e9c7a067c16597415e9ca602e1b61 Mon Sep 17 00:00:00 2001 From: ilhamwara Date: Wed, 9 Jul 2025 14:31:08 +0700 Subject: [PATCH] update --- app/Http/Controllers/HomeController.php | 115 ++++++++++++++++- .../Opendata/DatasetController.php | 11 +- app/Models/Dataset.php | 4 + resources/views/dashboard.blade.php | 116 ------------------ .../modules/dashboard/dashboard.blade.php | 86 +++++++++++++ .../views/modules/dashboard/dataset.blade.php | 55 +++++++++ routes/modules/modules.php | 8 +- 7 files changed, 273 insertions(+), 122 deletions(-) delete mode 100644 resources/views/dashboard.blade.php create mode 100644 resources/views/modules/dashboard/dashboard.blade.php create mode 100644 resources/views/modules/dashboard/dataset.blade.php diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 2feb200..4a0f6eb 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -3,9 +3,16 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Models\Dataset; +use App\Models\Master\Topik; +use App\Models\Master\Template; +use App\Models\Master\Group; class HomeController extends Controller { + protected $template = 'modules.dashboard'; + protected $route = 'modules.dashboard'; + /** * Create a new controller instance. * @@ -23,7 +30,111 @@ class HomeController extends Controller */ public function dashboard() { - $data['title'] = 'Dashboard'; - return view('dashboard',$data); + $data['title'] = 'Dashboard'; + $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get(); + $data['group'] = Group::where('MsGroupId','!=',1)->get(); + $data['classDataset'] = Dataset::class; + + return view($this->template.'.dashboard',$data); + } + + public function dataset($alias) + { + $data['title'] = 'Dashboard'; + $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get(); + $data['group'] = Group::where('MsGroupId','!=',1)->get(); + $data['alias'] = $alias; + + return view($this->template.'.dataset',$data); + } + + public function grid(Request $request) + { + if(session('group_id') == 1){ + $data = Dataset::orderBy('DatasetId','DESC')->limit(10)->get(); + }else{ + $data = Dataset::orderBy('DatasetId','DESC')->limit(10)->whereIn('created_by',[auth()->user()->id,1])->get(); + } + // $data = User::with(['group'])->orderBy('id','DESC')->get(); + $_data = []; + + foreach ($data as $key => $row) { + + $action = ''; + $action .= '
'; + $action .= ''; + $action .= '
'; + $status = ''; + + if($row->status == 1){ + $status = ''; + }else{ + $status = ''; + } + + $_data[] = [ + 'no' => $key+1, + 'id' => encode_id($row->id), + 'name' => @$row->name, + 'publik' => @$row->publik, + 'tahun' => @$row->tahun, + 'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)), + 'instansi' => @$row->instansi->name, + 'action' => @$action, + 'status' => @$status, + ]; + + } + + // return response()->json($_data); // Return the data as a JSON response + return response()->json($_data); + + } + + public function datasetGrid($alias,Request $request) + { + if(session('group_id') == 1){ + $data = Dataset::whereHas('instansi',function($query) use ($alias){ + $query->where('parent','ilike','%'.$alias.'%'); + })->orderBy('DatasetId','DESC')->get(); + }else{ + $data = Dataset::whereHas('instansi',function($query) use ($alias){ + $query->where('parent','ilike','%'.$alias.'%'); + })->orderBy('DatasetId','DESC')->whereIn('created_by',[auth()->user()->id,1])->get(); + } + // $data = User::with(['group'])->orderBy('id','DESC')->get(); + $_data = []; + + foreach ($data as $key => $row) { + + $action = ''; + $action .= '
'; + $action .= ''; + $action .= '
'; + $status = ''; + + if($row->status == 1){ + $status = ''; + }else{ + $status = ''; + } + + $_data[] = [ + 'no' => $key+1, + 'id' => encode_id($row->id), + 'name' => @$row->name, + 'publik' => @$row->publik, + 'tahun' => @$row->tahun, + 'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)), + 'instansi' => @$row->instansi->name, + 'action' => @$action, + 'status' => @$status, + ]; + + } + + // return response()->json($_data); // Return the data as a JSON response + return response()->json($_data); + } } diff --git a/app/Http/Controllers/Opendata/DatasetController.php b/app/Http/Controllers/Opendata/DatasetController.php index af0525b..04e38ee 100644 --- a/app/Http/Controllers/Opendata/DatasetController.php +++ b/app/Http/Controllers/Opendata/DatasetController.php @@ -56,8 +56,11 @@ class DatasetController extends Controller public function grid(Request $request) { - - $data = Dataset::orderBy('DatasetId','DESC')->get(); + if(session('group_id') == 1){ + $data = Dataset::orderBy('DatasetId','DESC')->get(); + }else{ + $data = Dataset::orderBy('DatasetId','DESC')->whereIn('created_by',[auth()->user()->id,1])->get(); + } // $data = User::with(['group'])->orderBy('id','DESC')->get(); $_data = []; @@ -69,7 +72,9 @@ class DatasetController extends Controller if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ $action .= '
'; - $action .= ''; + if($row->created_by == auth()->user()->id){ + $action .= ''; + } $action .= ''; if(session('group_id') == 1){ // $action .= ''; diff --git a/app/Models/Dataset.php b/app/Models/Dataset.php index 526641f..b59a58d 100644 --- a/app/Models/Dataset.php +++ b/app/Models/Dataset.php @@ -17,6 +17,10 @@ class Dataset extends Model return $this->belongsTo('App\Models\Master\Instansi','instansi_id'); } + function user() { + return $this->belongsTo('App\Models\User','created_by'); + } + function template() { return $this->belongsTo('App\Models\Master\Template','template_id'); } diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php deleted file mode 100644 index b5045b0..0000000 --- a/resources/views/dashboard.blade.php +++ /dev/null @@ -1,116 +0,0 @@ -@extends('layouts.master') -@section('content') - -
-

Dashboard

-
- - - -
-
-
-
-
-
-
Data Biro
-
{{date('Y')}}
-
-

825

-
- -
-
-
- -
-
-
-
-
-
Data Badan
-
{{date('Y')}}
-
-

825

-
- -
-
-
- -
-
-
-
-
-
Data Deputi
-
{{date('Y')}}
-
-

825

-
- -
-
-
- -
-
-
-
-
-
Data Dinas
-
{{date('Y')}}
-
-

825

-
- -
-
-
-
-
-
-
-
-
Data Update Terakhir
-
-
- - - - - -
NoOPD
-
-

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Illum ipsum amet recusandae animi atque? Dolore doloremque maiores libero, laborum error incidunt neque dolorem recusandae provident quam obcaecati corporis necessitatibus odio?

-
-
-
- -@endsection -@section('js') - - - - - - - - -@endsection \ No newline at end of file diff --git a/resources/views/modules/dashboard/dashboard.blade.php b/resources/views/modules/dashboard/dashboard.blade.php new file mode 100644 index 0000000..cb5cb4c --- /dev/null +++ b/resources/views/modules/dashboard/dashboard.blade.php @@ -0,0 +1,86 @@ +@extends('layouts.master') +@section('content') + +
+

Dashboard

+
+ + + +
+ @foreach($group as $dataGroup) +
+
+
+
+
+
Data {{$dataGroup->name}}
+
{{date('Y')}}
+
+ whereHas('instansi',function($query) use ($dataGroup){ + $query->where('parent','ilike','%'.$dataGroup->alias.'%'); + })->count(); + ?> +

{{$count}}

+
+ +
+
+
+ @endforeach + + +
+
+
+
+
+
+
10 Data Update Terakhir
+
+ + + + + + + + + + + + + +
#NoNama InstansiNama DatasetTahunStatusTanggal Dibuat
+
+
+
+
+ +@endsection +@section('js') + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/modules/dashboard/dataset.blade.php b/resources/views/modules/dashboard/dataset.blade.php new file mode 100644 index 0000000..573b7d9 --- /dev/null +++ b/resources/views/modules/dashboard/dataset.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.master') +@section('content') + +
+

Dashboard

+
+ +
+
+
+
+
+  Kembali +
+ + + + + + + + + + + + + +
#NoNama InstansiNama DatasetTahunStatusTanggal Dibuat
+
+
+
+
+ +@endsection +@section('js') + + + + + + + + +@endsection \ No newline at end of file diff --git a/routes/modules/modules.php b/routes/modules/modules.php index 088d974..339d2c4 100644 --- a/routes/modules/modules.php +++ b/routes/modules/modules.php @@ -10,7 +10,13 @@ use App\Http\Controllers\Management\AksesController; use App\Http\Controllers\Opendata\DatasetController; -Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard'); +Route::name('dashboard.')->prefix('dashboard')->group(function () { + Route::get('/',[HomeController::class,'dashboard'])->name('dashboard'); + Route::get('/dataset/{alias}',[HomeController::class,'dataset'])->name('dataset'); + Route::get('/grid',[HomeController::class,'grid'])->name('grid'); + Route::get('/datasetGrid/{alias}',[HomeController::class,'datasetGrid'])->name('datasetGrid'); +}); + Route::name('opendata.')->prefix('opendata')->group(function () { Route::name('dataset.')->prefix('dataset')->group(function () {