update
parent
146df57870
commit
587bdaeb81
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Dataset;
|
use App\Models\Dataset;
|
||||||
use App\Models\Master\Topik;
|
use App\Models\Master\Topik;
|
||||||
|
use App\Models\Master\Instansi;
|
||||||
use App\Models\Master\Template;
|
use App\Models\Master\Template;
|
||||||
use App\Models\Master\Group;
|
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')->whereIn('instansi_id',[auth()->user()->ms_instansi_id])->limit(10)->get();
|
||||||
}
|
}
|
||||||
// $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->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;
|
$data['classDataset'] = Dataset::class;
|
||||||
|
|
||||||
return view($this->template.'.dashboard',$data);
|
return view($this->template.'.dashboard',$data);
|
||||||
|
@ -142,4 +144,25 @@ class HomeController extends Controller
|
||||||
return response()->json($_data);
|
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)
|
public function grid(Request $request)
|
||||||
{
|
{
|
||||||
if(session('group_id') == 1){
|
if(session('group_id') == 1){
|
||||||
$data = Dataset::orderBy('DatasetId','DESC')->get();
|
$data = Dataset::with(['template'])->orderBy('DatasetId','DESC')->get();
|
||||||
}else{
|
}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 = User::with(['group'])->orderBy('id','DESC')->get();
|
||||||
$_data = [];
|
$_data = [];
|
||||||
|
@ -99,6 +99,7 @@ class DatasetController extends Controller
|
||||||
'name' => @$row->name,
|
'name' => @$row->name,
|
||||||
'publik' => @$row->publik,
|
'publik' => @$row->publik,
|
||||||
'tahun' => @$row->tahun,
|
'tahun' => @$row->tahun,
|
||||||
|
'template' => @$row->template->name,
|
||||||
'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)),
|
'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)),
|
||||||
'instansi' => @$row->instansi->name,
|
'instansi' => @$row->instansi->name,
|
||||||
'action' => @$action,
|
'action' => @$action,
|
||||||
|
|
|
@ -12,4 +12,8 @@ class Template extends Model
|
||||||
protected $table = 'ms_template';
|
protected $table = 'ms_template';
|
||||||
protected $primaryKey = 'MsTemplateId';
|
protected $primaryKey = 'MsTemplateId';
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
|
|
||||||
|
function dataset(){
|
||||||
|
return $this->hasMany(\App\Models\Dataset::class, 'template_id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,37 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="grid xl:grid-cols-1 lg:grid-cols-1 grid-cols-1 gap-6 mb-6">
|
<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="card">
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<div>
|
<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-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="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="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-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-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>
|
<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::name('dashboard.')->prefix('dashboard')->group(function () {
|
||||||
Route::get('/',[HomeController::class,'dashboard'])->name('dashboard');
|
Route::get('/',[HomeController::class,'dashboard'])->name('dashboard');
|
||||||
Route::get('/dataset/{alias}',[HomeController::class,'dataset'])->name('dataset');
|
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('/grid',[HomeController::class,'grid'])->name('grid');
|
||||||
Route::get('/datasetGrid/{alias}',[HomeController::class,'datasetGrid'])->name('datasetGrid');
|
Route::get('/datasetGrid/{alias}',[HomeController::class,'datasetGrid'])->name('datasetGrid');
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue