main
Ilham Wara Nugroho 2026-02-27 13:47:26 +07:00
parent accbd3ff4f
commit 2fcba34124
9 changed files with 87 additions and 42 deletions

View File

@ -33,11 +33,52 @@ class HomeController extends Controller
$data['title'] = 'Dashboard';
$data['route'] = $this->route;
if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->count();
$data['datasetTambahan'] = DatasetTambahan::orderBy('DatasetId','DESC')->count();
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->where('tahun',date('Y'))->count();
$data['datasetTambahan'] = DatasetTambahan::orderBy('DatasetId','DESC')->where('tahun',date('Y'))->count();
$data['datasetInstansi'] = Instansi::selectRaw("
SUM(
CASE
WHEN resource_data IS NULL
OR json_array_length(resource_data) = 0
THEN 1
ELSE json_array_length(resource_data)
END
) as total_resource
")
->value('total_resource');
$data['total'] = Instansi::join('dataset as d', 'd.instansi_id', '=', 'ms_instansi.MsInstansiId')
->whereRaw("ms_instansi.resource_data IS NOT NULL
AND EXISTS (
SELECT 1
FROM jsonb_array_elements_text(ms_instansi.resource_data::jsonb) AS r(value)
WHERE r.value = d.ms_tabel_data_id::text
)
")->distinct('ms_instansi.MsInstansiId')
->count('ms_instansi.MsInstansiId');
}else{
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->whereIn('instansi_id',[session('instansi_id')])->count();
$data['datasetTambahan'] = DatasetTambahan::whereIn('instansi_id',[session('instansi_id')])->count();
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->whereIn('instansi_id',[session('instansi_id')])->where('tahun',date('Y'))->count();
$data['datasetTambahan'] = DatasetTambahan::whereIn('instansi_id',[session('instansi_id')])->where('tahun',date('Y'))->count();
$data['datasetInstansi'] = Instansi::where('MsInstansiId',session('instansi_id'))->selectRaw("
SUM(
CASE
WHEN resource_data IS NULL
OR json_array_length(resource_data) = 0
THEN 1
ELSE json_array_length(resource_data)
END
) as total_resource
")
->value('total_resource');
$data['total'] = Instansi::where('MsInstansiId',session('instansi_id'))->join('dataset as d', 'd.instansi_id', '=', 'ms_instansi.MsInstansiId')
->whereRaw("ms_instansi.resource_data IS NOT NULL
AND EXISTS (
SELECT 1
FROM jsonb_array_elements_text(ms_instansi.resource_data::jsonb) AS r(value)
WHERE r.value = d.ms_tabel_data_id::text
)
")->distinct('ms_instansi.MsInstansiId')
->count('ms_instansi.MsInstansiId');
}
$data['instansi'] = Instansi::count();
@ -66,13 +107,16 @@ class HomeController extends Controller
$status = '';
$cek = Dataset::where('ms_tabel_data_id',$row->MsTabelDataId)->where('tahun',date('Y'))->count();
if($cek > 0){
$status = '<span class="bg-emerald-500 rounded w-100 p-1 text-[10px] text-white">Sudah Unggah</spa>';
$status = '<span class="flex bg-emerald-500 rounded w-100 p-1 text-[10px] text-white">Sudah Unggah</spa>';
$action = '';
}else{
$status = '<span class="bg-red-500 rounded w-100 p-1 text-[10px] text-white">Belum Unggah</spa>';
$status = '<span class="flex bg-red-500 rounded w-100 p-1 text-[10px] text-white">Belum Unggah</spa>';
$action = '<a href="'.url('opendata/dataset/update').'" title="Buat Dataset" class="flex p-2 rounded bg-emerald-500 text-white"><i class="ri-add-line"></i></a>';
}
$_data[] = [
'no' => $key+1,
'action' => $action,
'name' => 'Tabel '.@$row->nomor_tabel.' - '.@$row->name,
'status' => @$status,
];

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SLHD | Dinas Lingkungan Hidup</title>
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo3.png')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo3.png')}}">
<!-- Tailwind CSS CDN -->
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
@ -39,11 +39,11 @@
<div class="relative z-10">
<div class="flex items-center space-x-3 mb-0 md:mb-12">
<div class="bg-white p-2 rounded-xl text-blue-600">
<img src="{{asset('assets/logo-dinas.ico')}}" width="40" alt="">
<img src="{{asset('assets/logo3.png')}}" width="40" alt="">
</div>
<div>
<h1 class="font-bold text-2xl tracking-tight leading-none uppercase text-white">SLHD</h1>
<p class="text-[10px] uppercase tracking-widest text-blue-100 font-bold">Status Lingkungan Hidup Provinsi DKI Jakarta</p>
<h1 class="font-bold text-2xl tracking-tight leading-none uppercase text-white mb-2">SLHD</h1>
<p class="text-[10px] uppercase tracking-widest text-blue-100 font-bold">Status Lingkungan Hidup Daerah</p>
</div>
</div>

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SLHD | Dinas Lingkungan Hidup</title>
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo3.png')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo3.png')}}">
<!-- Tailwind CSS CDN -->
<script src="{{ asset('assets/js/tailwind.js') }}"></script>
<!-- Google Fonts -->
@ -41,10 +41,10 @@
<nav id="main-nav" class="fixed w-full z-50 transition-all duration-300 py-4">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex justify-between items-center">
<div class="flex items-center space-x-3">
<img src="{{asset('assets/logo-dinas.ico')}}" width="40" alt="">
<img src="{{asset('assets/logo3.png')}}" width="40" alt="">
<div>
<h1 class="font-bold text-xl tracking-tight text-blue-900 leading-none uppercase">SLHD</h1>
<p class="text-[10px] uppercase tracking-widest text-blue-600 font-bold">Status Lingkungan Hidup Provinsi DKI Jakarta</p>
<h1 class="font-bold text-xl tracking-tight text-slate-900 leading-none uppercase mb-2">SLHD</h1>
<p class="text-[10px] uppercase tracking-widest text-slate-600 font-bold">Status Lingkungan Hidup Daerah</p>
</div>
</div>
@ -85,9 +85,13 @@
<div class="flex flex-col md:flex-row justify-between items-center">
<div class="mb-6 md:mb-0">
<div class="flex items-center justify-center md:justify-start space-x-3 mb-2">
<img src="{{asset('assets/logo-dinas.ico')}}" width="40" alt="">
<span class="font-bold text-slate-900 uppercase">SLHD JAKARTA</span>
<img src="{{asset('assets/logo3.png')}}" width="40" alt="">
<div>
<h1 class="font-bold text-xl tracking-tight text-slate-900 leading-none uppercase mb-2">SLHD</h1>
<p class="text-[10px] uppercase tracking-widest text-slate-600 font-bold">Status Lingkungan Hidup Daerah</p>
</div>
</div>
<p class="text-slate-500 text-xs">© {{ date('Y') }} Dinas Lingkungan Hidup Provinsi DKI Jakarta.</p>
</div>
{{-- <div class="flex space-x-8 text-sm font-medium text-slate-600">

View File

@ -5,9 +5,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Panel - SLHD Provinsi DKI Jakarta</title>
<!-- Tailwind CSS CDN -->
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo-dinas.ico')}}">
<link rel="mask-icon" href="{{asset('assets/logo-dinas.ico')}}" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo3.png')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{asset('assets/logo3.png')}}">
<link rel="mask-icon" href="{{asset('assets/logo3.png')}}" color="#5bbad5">
<script src="{{ asset('assets/js/tailwind.js') }}"></script>
<!-- Google Fonts -->
<link href="{{ asset('assets/css/font.css') }}" rel="stylesheet">
@ -101,11 +101,11 @@
<div class="p-6 border-b border-slate-50 flex items-center justify-between">
<div class="flex items-center space-x-3 overflow-hidden">
{{-- <div class="bg-white p-2 rounded-lg text-white shrink-0"> --}}
<img src="{{asset('assets/logo-dinas.ico')}}" width="40" alt="">
<img src="{{asset('assets/logo3.png')}}" width="40" alt="">
{{-- </div> --}}
<div class="sidebar-header-text">
<h1 class="font-bold text-lg tracking-tight text-slate-900 leading-none">SLHD</h1>
<p class="text-[8px] mt-2 uppercase tracking-widest text-slate-600 font-bold">Status Lingkungan <br> Hidup Daerah</p>
<p class="text-[6px] mt-2 uppercase tracking-widest text-slate-600 font-bold">Status Lingkungan Hidup Daerah</p>
</div>
</div>
<!-- Desktop Toggle Button -->

View File

@ -5,7 +5,7 @@
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
<!-- Stats Cards -->
<div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-3 gap-6 mb-8">
<div class="grid grid-cols-1 {{ (session('group_id') == 1) || (session('group_alias') == 'admin') ? 'md:grid-cols-4 lg:grid-cols-4' : 'md:grid-cols-3 lg:grid-cols-3' }} gap-6 mb-8">
<!-- Card 1 -->
<div class="bg-white p-6 rounded-2xl border border-slate-200 shadow-sm hover:shadow-md transition-shadow">
<div class="flex justify-between items-start mb-4">
@ -27,26 +27,22 @@
<h4 class="text-2xl font-black text-slate-900 mt-1">{{$datasetTambahan}}</h4>
</div>
<!-- Card 3 -->
<!-- Card 4 -->
<div class="bg-white p-6 rounded-2xl border border-slate-200 shadow-sm hover:shadow-md transition-shadow">
<div class="flex justify-between items-start mb-4">
<div class="p-2 bg-orange-50 rounded-lg text-orange-600">
<i data-lucide="users" class="w-5 h-5"></i>
</div>
</div>
<p class="text-slate-500 text-[10px] font-bold uppercase tracking-wider">Instansi Terdaftar</p>
<h4 class="text-2xl font-black text-slate-900 mt-1">{{$instansi}}</h4>
</div>
<!-- Card 4 -->
{{-- <div class="bg-white p-6 rounded-2xl border border-slate-200 shadow-sm hover:shadow-md transition-shadow">
<div class="flex justify-between items-start mb-4">
<div class="p-2 bg-purple-50 rounded-lg text-purple-600">
<i data-lucide="table" class="w-5 h-5"></i>
<i data-lucide="upload" class="w-5 h-5"></i>
</div>
<span class="text-xs font-bold text-red-500 bg-red-50 px-2 py-1 rounded">-2%</span>
<?php
$persentase = (($total/@$datasetInstansi)*100);
?>
<span class="text-xs font-bold {{$persentase >= 60 ? 'text-emerald-500 bg-emerald-50' : 'text-red-500 bg-red-50'}} px-2 py-1 rounded">{{round($persentase)}}%</span>
</div>
<p class="text-slate-500 text-[10px] font-bold uppercase tracking-wider">Dataset Utama Instansi Terinput</p>
<h4 class="text-2xl font-black text-slate-900 mt-1">{{ $total }} / {{ @$datasetInstansi }}</h4>
</div>
<p class="text-slate-500 text-[10px] font-bold uppercase tracking-wider">Tabel Kinerja DPSIR</p>
<h4 class="text-2xl font-black text-slate-900 mt-1">{{ $tabelData }}</h4>
</div> --}}
</div>
@if((session('group_id') == 1) || (session('group_alias') == 'admin'))
@ -94,7 +90,7 @@
</div>
</div>
@else
<div class="grid grid-cols-2 gap-2">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-2">
<div class="bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
<div class="p-6 border-b border-slate-100 flex flex-col md:flex-row md:items-center justify-between gap-4">
<div>
@ -118,6 +114,7 @@
id="grid-data1">
<thead class="bg-slate-100 border-b border-slate-100">
<tr>
<th class="text-[10px] border font-bold text-slate-900 text-center tengah align-middle" style="vertical-align: middle!important;" data-field="action">#</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="name">Dataset</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="status">Status</th>
</tr>

View File

@ -16,9 +16,9 @@
<i data-lucide="plus" class="w-4 h-4 mr-2"></i> Tambah Data
</a>
@endif
<button class="hidden p-2 bg-slate-900 text-white rounded-xl hover:bg-slate-800 transition-colors flex items-center text-sm font-semibold">
{{-- <button class=" p-2 bg-slate-900 text-white rounded-xl hover:bg-slate-800 transition-colors flex items-center text-sm font-semibold">
<i data-lucide="filter" class="w-4 h-4 mr-2"></i> Filter
</button>
</button> --}}
</div>
</div>