update
parent
146df57870
commit
587bdaeb81
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use Illuminate\Http\Request;
|
||||
use App\Models\Dataset;
|
||||
use App\Models\Master\Topik;
|
||||
use App\Models\Master\Instansi;
|
||||
use App\Models\Master\Template;
|
||||
use App\Models\Master\Group;
|
||||
|
||||
|
@ -37,7 +38,8 @@ class HomeController extends Controller
|
|||
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->whereIn('instansi_id',[auth()->user()->ms_instansi_id])->limit(10)->get();
|
||||
}
|
||||
// $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get();
|
||||
$data['group'] = Group::where('MsGroupId','!=',1)->get();
|
||||
$data['group'] = Group::where('MsGroupId','!=',1)->where('name','!=','Balai')->get();
|
||||
$data['resource'] = Template::with(['dataset'])->where('show_dashboard',1)->get();
|
||||
$data['classDataset'] = Dataset::class;
|
||||
|
||||
return view($this->template.'.dashboard',$data);
|
||||
|
@ -142,4 +144,25 @@ class HomeController extends Controller
|
|||
return response()->json($_data);
|
||||
|
||||
}
|
||||
|
||||
function resource($id){
|
||||
$keyId = decode_id($id);
|
||||
$data['id'] = $id;
|
||||
|
||||
$data['title'] = 'Dashboard';
|
||||
$data['dataset'] = Dataset::where('template_id',$keyId)->pluck('instansi_id')->toArray();
|
||||
$data['instansi'] = Instansi::whereIn('MsInstansiId',$data['dataset'])->paginate(9);
|
||||
|
||||
return view($this->template.'.resource',$data);
|
||||
}
|
||||
function resource_instansi($instansi_id,$id){
|
||||
|
||||
$data['id'] = decode_id($id);
|
||||
$data['instansi_id'] = decode_id($instansi_id);
|
||||
$data['dataset'] = Dataset::with(['template'])->where('instansi_id',decode_id($instansi_id))->where('template_id',decode_id($id))->first();
|
||||
$data['title'] = 'Dashboard '.@$data['dataset']->template->name;
|
||||
|
||||
return view($this->template.'.resource_detail',$data);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,9 +57,9 @@ class DatasetController extends Controller
|
|||
public function grid(Request $request)
|
||||
{
|
||||
if(session('group_id') == 1){
|
||||
$data = Dataset::orderBy('DatasetId','DESC')->get();
|
||||
$data = Dataset::with(['template'])->orderBy('DatasetId','DESC')->get();
|
||||
}else{
|
||||
$data = Dataset::orderBy('DatasetId','DESC')->whereIn('instansi_id',[auth()->user()->ms_instansi_id])->get();
|
||||
$data = Dataset::with(['template'])->orderBy('DatasetId','DESC')->whereIn('instansi_id',[auth()->user()->ms_instansi_id])->get();
|
||||
}
|
||||
// $data = User::with(['group'])->orderBy('id','DESC')->get();
|
||||
$_data = [];
|
||||
|
@ -99,6 +99,7 @@ class DatasetController extends Controller
|
|||
'name' => @$row->name,
|
||||
'publik' => @$row->publik,
|
||||
'tahun' => @$row->tahun,
|
||||
'template' => @$row->template->name,
|
||||
'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)),
|
||||
'instansi' => @$row->instansi->name,
|
||||
'action' => @$action,
|
||||
|
|
|
@ -12,4 +12,8 @@ class Template extends Model
|
|||
protected $table = 'ms_template';
|
||||
protected $primaryKey = 'MsTemplateId';
|
||||
protected $guarded = [];
|
||||
|
||||
function dataset(){
|
||||
return $this->hasMany(\App\Models\Dataset::class, 'template_id');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,37 @@
|
|||
|
||||
</div>
|
||||
<div class="grid xl:grid-cols-1 lg:grid-cols-1 grid-cols-1 gap-6 mb-6">
|
||||
<div class="card">
|
||||
<div class="p-6">
|
||||
<div>
|
||||
<div id="toolbar">
|
||||
<h5 class="text-md font-bold">10 Data Update Terakhir</h5>
|
||||
</div>
|
||||
<table class="gridjs-table" >
|
||||
<thead class="gridjs-thead">
|
||||
<tr class="gridjs-tr bg-primary-light">
|
||||
<th class="gridjs-td gridjs-th text-sm">#</th>
|
||||
<th class="gridjs-td gridjs-th text-sm">No</th>
|
||||
<th class="gridjs-td gridjs-th text-sm">Resource Data</th>
|
||||
<th class="gridjs-td gridjs-th text-sm">Jumlah Upload Dataset</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="gridjs-tbody">
|
||||
@foreach ($resource as $k => $res)
|
||||
<tr class="gridjs-tr">
|
||||
<td class="gridjs-td gridjs-th text-sm"><a href="{{ url('dashboard/dataset/resource/'.encode_id($res->MsTemplateId)) }}" class="btn bg-success text-white">Lihat Data</a></td>
|
||||
<td class="gridjs-td gridjs-th text-sm">{{$k+1}}</td>
|
||||
<td class="gridjs-td gridjs-th text-sm">{{ $res->name }}</td>
|
||||
<td class="gridjs-td gridjs-th text-sm text-center">{{ $res->dataset->count() }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid xl:grid-cols-1 lg:grid-cols-1 grid-cols-1 gap-6 mb-6 hidden">
|
||||
<div class="card">
|
||||
<div class="p-6">
|
||||
<div>
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
@extends('layouts.master')
|
||||
@section('content')
|
||||
<!-- Page Title Start -->
|
||||
<div class="flex justify-between items-center mb-6">
|
||||
<h4 class="text-slate-900 dark:text-slate-200 text-lg font-medium">{{ $title }}</h4>
|
||||
<a href="{{ url('dashboard') }}" class="btn bg-primary text-white"><i class="ri-arrow-left-line"></i> Kembali</a>
|
||||
</div>
|
||||
<!-- Page Title End -->
|
||||
<div class="grid xl:grid-cols-4 lg:grid-cols-2 grid-cols-1 gap-6 mb-6">
|
||||
@foreach($instansi as $dataInstansi)
|
||||
<a href="{{url('dashboard/dataset/resource/instansi/'.encode_id($dataInstansi->MsInstansiId).'/'.$id)}}">
|
||||
<?php
|
||||
$tahun = '';
|
||||
$dataset = \App\Models\Dataset::where('instansi_id',$dataInstansi->MsInstansiId)->orderBy('tahun','ASC')->pluck('tahun')->toArray();
|
||||
$bg = 'info';
|
||||
|
||||
if(@$dataInstansi->alias == 'dinas'){
|
||||
$bg = 'success';
|
||||
}elseif(@$dataInstansi->alias == 'biro'){
|
||||
$bg = 'warning';
|
||||
}elseif(@$dataInstansi->alias == 'badan'){
|
||||
$bg = 'danger';
|
||||
}elseif(@$dataInstansi->alias == 'deputi'){
|
||||
$bg = 'info';
|
||||
}
|
||||
|
||||
?>
|
||||
<div class="card border-top-{{$bg}}">
|
||||
<div class="p-6">
|
||||
<div class="flex flex-col items-center">
|
||||
<div class="w-full hidden">
|
||||
{{-- <div class="flex justify-between">
|
||||
<div class="p-1 bg-primary text-white rounded text-xs">{{date('Y')}}</div>
|
||||
</div> --}}
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="px-4 py-3 rounded-full bg-{{$bg}}-light">
|
||||
<i class="ri-database-2-line text-lg text-{{$bg}}"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h2 class="text-3xl bold my-3 py-0.5">0</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="w-full">
|
||||
<div class="">
|
||||
<div class="mb-2"><h5 class="text-sm font-bold mt-0 truncate">{{$dataInstansi->name}}</h5></div>
|
||||
<div class="mb-2">
|
||||
@foreach ($dataset as $tahun)
|
||||
<span class="p-1 bg-info-light rounded text-white">{{ $tahun }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- end row-->
|
||||
</div> <!-- end p-6 -->
|
||||
</div> <!-- end card -->
|
||||
</a>
|
||||
@endforeach
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-6 mb-6">
|
||||
{{ $instansi->render() }}
|
||||
</div>
|
||||
<!-- end row -->
|
||||
@endsection
|
||||
@section('js')
|
||||
<script src="{{asset('assets/js/pages/dashboard-analytics.js')}}"></script>
|
||||
<!-- Apex Charts js -->
|
||||
<script src="{{asset('assets/libs/apexcharts/apexcharts.min.js')}}"></script>
|
||||
|
||||
<!-- Vector Map Js -->
|
||||
<script src="{{asset('assets/libs/jsvectormap/js/jsvectormap.min.js')}}"></script>
|
||||
<script src="{{asset('assets/libs/jsvectormap/maps/world-merc.js')}}"></script>
|
||||
<script src="{{asset('assets/libs/jsvectormap/maps/world.js')}}"></script>
|
||||
@endsection
|
|
@ -0,0 +1,89 @@
|
|||
@extends('layouts.master')
|
||||
@section('content')
|
||||
<!-- Page Title Start -->
|
||||
<div class="flex justify-between items-center mb-6">
|
||||
<h4 class="text-slate-900 dark:text-slate-200 text-lg font-medium">{{ $title }}</h4>
|
||||
<a href="{{ url('dashboard/dataset/resource/'.encode_id($id)) }}" class="btn bg-primary text-white"><i class="ri-arrow-left-line"></i> Kembali</a>
|
||||
</div>
|
||||
<!-- Page Title End -->
|
||||
<div class="grid xl:grid-cols-1 lg:grid-cols-1 grid-cols-1 gap-6 mb-6">
|
||||
<div class="card">
|
||||
<div class="p-6">
|
||||
<div class="flex flex-col items-center">
|
||||
<div class="w-full">
|
||||
<h5 class="text-lg bold mb-5">{{@$dataset->instansi->name}}</h5>
|
||||
<p>Ini adalah data {{$dataset->template->name}} 5 tahun terakhir, berdasarkan data yang sudah di upload sebelumnya</p>
|
||||
<div id="chart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end row -->
|
||||
@endsection
|
||||
@section('js')
|
||||
<script src="{{asset('assets/js/pages/dashboard-analytics.js')}}"></script>
|
||||
<!-- Apex Charts js -->
|
||||
<script src="{{asset('assets/libs/apexcharts/apexcharts.min.js')}}"></script>
|
||||
|
||||
<!-- Vector Map Js -->
|
||||
<script src="{{asset('assets/libs/jsvectormap/js/jsvectormap.min.js')}}"></script>
|
||||
<script src="{{asset('assets/libs/jsvectormap/maps/world-merc.js')}}"></script>
|
||||
<script src="{{asset('assets/libs/jsvectormap/maps/world.js')}}"></script>
|
||||
|
||||
<script>
|
||||
var options = {
|
||||
series: [{
|
||||
name: 'Luas Kawasan',
|
||||
data: [41176, 13176, 38176, 55176, 42176]
|
||||
}, {
|
||||
name: 'Kawasan Hutan Lindung',
|
||||
data: [31176, 23176, 58176, 65176, 42176]
|
||||
}, {
|
||||
name: 'Kawasan Air',
|
||||
data: [11176, 23176, 58176, 25176, 12176]
|
||||
}],
|
||||
chart: {
|
||||
type: 'bar',
|
||||
height: 350
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
horizontal: false,
|
||||
columnWidth: '55%',
|
||||
borderRadius: 5,
|
||||
borderRadiusApplication: 'end'
|
||||
},
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: false
|
||||
},
|
||||
stroke: {
|
||||
show: true,
|
||||
width: 2,
|
||||
colors: ['transparent']
|
||||
},
|
||||
xaxis: {
|
||||
categories: ['2020', '2021', '2022', '2023', '2024'],
|
||||
},
|
||||
yaxis: {
|
||||
title: {
|
||||
text: ''
|
||||
}
|
||||
},
|
||||
fill: {
|
||||
opacity: 1
|
||||
},
|
||||
tooltip: {
|
||||
y: {
|
||||
formatter: function (val) {
|
||||
return " " + val + " "
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var chart = new ApexCharts(document.querySelector("#chart"), options);
|
||||
chart.render();
|
||||
</script>
|
||||
@endsection
|
|
@ -34,6 +34,7 @@
|
|||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="no">No</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="instansi">Nama Instansi</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="name">Nama Dataset</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="template">Resource Data</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="tahun">Tahun</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-center text-gray-500" data-field="status">Status</th>
|
||||
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="created_at">Tanggal Dibuat</th>
|
||||
|
|
|
@ -16,6 +16,8 @@ use App\Http\Controllers\Opendata\DatasetTambahanController;
|
|||
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('/dataset/resource/{id}',[HomeController::class,'resource'])->name('resource');
|
||||
Route::get('/dataset/resource/instansi/{instansi_id}/{id}',[HomeController::class,'resource_instansi'])->name('resource_instansi');
|
||||
Route::get('/grid',[HomeController::class,'grid'])->name('grid');
|
||||
Route::get('/datasetGrid/{alias}',[HomeController::class,'datasetGrid'])->name('datasetGrid');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue