main
Ilham Wara Nugroho 2026-02-25 10:42:19 +07:00
parent e63821138b
commit accbd3ff4f
15 changed files with 258 additions and 192 deletions

View File

@ -18,11 +18,12 @@ class FrontController extends Controller
$data = [];
// $data['template'] = TabelData::where('show_dashboard',1)->limit(4)->inRandomOrder()->get();
$data['template'] = TabelData::limit(4)->inRandomOrder()->get();
$data['template'] = TabelData::limit(6)->orderBy('created_at','DESC')->get();
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(4)->get();
// $data['instansi'] = Instansi::all();
$data['count'] = [
'dataset' => Dataset::count(),
'dataset_tambahan' => DatasetTambahan::count(),
'resource' => TabelData::count(),
'instansi' => Instansi::count(),
];

View File

@ -190,7 +190,12 @@ class DatasetController extends Controller
$dataset->data = null;
$dataset->file = null;
$dataset->deskripsi = $request->deskripsi;
$dataset->status = 0;
if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$dataset->status = 1;
}else{
$dataset->status = 0;
}
$dataset->created_by = auth()->user()->id;
$dataset->save();
}

View File

@ -72,26 +72,28 @@ class DatasetTambahanController extends Controller
$action = '';
if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
$action .= '<div class="flex gap-3 justify-center items-center flex-row">';
$action .= '<div class="flex gap-1 justify-center items-center flex-row">';
if($row->created_by == auth()->user()->id){
$action .= '<a href="'.url('opendata/dataset-tambahan/update/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Ubah Data" class="btn btn-sm btn-block bg-primary"><i class="ri-pencil-line text-white"></i></a>';
$action .= '<a href="'.url('opendata/dataset-tambahan/update/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Ubah Data" class="p-2 rounded text-white bg-blue-500"><i class="ri-pencil-line text-white"></i></a>';
}
$action .= '<a href="'.url('opendata/dataset-tambahan/view/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Lihat Data" class="btn btn-sm btn-block bg-info"><i class="ri-eye-line text-white"></i></a>';
$action .= '<a href="'.url('opendata/dataset-tambahan/view/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Lihat Data" class="p-2 rounded text-white bg-blue-900"><i class="ri-eye-line text-white"></i></a>';
if((session('group_id') == 1) || (session('group_alias') == 'admin')){
// $action .= '<a href="#" data-href="'.url('management/user/forcelogin/'.encode_id($row->id)).'" data-toggle="tooltip" title="Force Login" class="forcelogin btn btn-sm btn-block bg-success"><i class="ri-user-2-line text-white"></i></a>';
// $action .= '<a href="#" data-href="'.url('management/user/forcelogin/'.encode_id($row->id)).'" data-toggle="tooltip" title="Force Login" class="forcelogin p-2 rounded text-white bg-success"><i class="ri-user-2-line text-white"></i></a>';
if($row->status == 1){
$action .= '<a href="#" data-href="'.url('opendata/dataset-tambahan/delete/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Hapus Data" class="remove_data btn btn-sm btn-block bg-danger"><i class="ri-delete-bin-line text-white"></i></a>';
$action .= '<a href="#" data-href="'.url('opendata/dataset-tambahan/delete/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Hapus Data" class="remove_data p-2 rounded text-white bg-red-500"><i class="ri-delete-bin-line text-white"></i></a>';
}else{
$action .= '<a href="#" data-href="'.url('opendata/dataset-tambahan/aktif/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Aktifkan Data" class="aktif_data btn btn-sm btn-block bg-success"><i class="ri-check-line text-white"></i></a>';
$action .= '<a href="#" data-href="'.url('opendata/dataset-tambahan/aktif/'.encode_id($row->DatasetTambahanId)).'" data-toggle="tooltip" title="Aktifkan Data" class="aktif_data p-2 rounded text-white bg-emerald-500"><i class="ri-check-line text-white"></i></a>';
}
}
$action .= '</div>';
}
$status = '';
if($row->status == 1){
$status = '<small class="p-1 w-full bg-success text-white rounded" title="Aktif"><i class="ri-check-line"></i></small>';
}else{
$status = '<small class="p-1 w-full bg-danger text-white rounded" title="Tidak Aktif"><i class="ri-close-line"></i></small>';
$status = '<small class="p-1 w-full bg-emerald-500 text-white rounded" title="Valid">Valid</small>';
}elseif($row->status == 0){
$status = '<small class="p-1 w-full bg-yellow-500 text-white rounded" title="Tidak Valid">Menunggu Verifikasi</small>';
}elseif($row->status == 2){
$status = '<small class="p-1 w-full bg-red-500 text-white rounded" title="Tidak Valid">Verifikasi Ditolak</small>';
}
$_data[] = [
@ -100,6 +102,7 @@ class DatasetTambahanController extends Controller
'name' => @$row->name,
'publik' => @$row->publik,
'tahun' => @$row->tahun,
'template' => @$row->tabelData->name,
'created_at' => date('d-m-Y',strtotime(@$row->created_at)),
'instansi' => @$row->instansi->name,
'action' => @$action,
@ -134,10 +137,10 @@ class DatasetTambahanController extends Controller
if(@$request->file){
$file = $request->file('file');
$path = $file->getRealPath();
$spreadsheet = IOFactory::load($path);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();
$header = $rows[4]; // Baris pertama sebagai header
// $spreadsheet = IOFactory::load($path);
// $sheet = $spreadsheet->getActiveSheet();
// $rows = $sheet->toArray();
// $header = $rows[4]; // Baris pertama sebagai header
if (@$request->hasFile('file')) {
$file = $request->file('file');
$destinationPath = public_path('uploads/dataset');
@ -147,9 +150,9 @@ class DatasetTambahanController extends Controller
$fileMime = $file->getClientMimeType();
$fileExtension = $file->getClientOriginalExtension();
$fileSize = $file->getSize();
if(($fileExtension != 'xls') && ($fileExtension != 'xlsx')){
if(($fileExtension != 'xls') && ($fileExtension != 'xlsx') && ($fileExtension != 'pdf') && ($fileExtension != 'docx')){
return redirect()->back()->with([
'message' => 'Maaf File Harus Berupa xls,xlsx!',
'message' => 'Maaf File Harus Berupa pdf,docx,xls,xlsx!',
'type' => "error"
]);
}
@ -164,21 +167,21 @@ class DatasetTambahanController extends Controller
for ($i = 5; $i < count($rows); $i++) {
$row = $rows[$i];
// for ($i = 5; $i < count($rows); $i++) {
// $row = $rows[$i];
// Skip baris kosong
if (collect($row)->filter()->isEmpty()) continue;
// // Skip baris kosong
// if (collect($row)->filter()->isEmpty()) continue;
$assoc = [];
foreach ($header as $j => $columnName) {
if($columnName != null){
$assoc[strtolower(str_replace(' ','_',$columnName))] = $row[$j] ?? null;
}
}
// $assoc = [];
// foreach ($header as $j => $columnName) {
// if($columnName != null){
// $assoc[strtolower(str_replace(' ','_',$columnName))] = $row[$j] ?? null;
// }
// }
$data[] = $assoc;
}
// $data[] = $assoc;
// }
}
}
@ -207,7 +210,12 @@ class DatasetTambahanController extends Controller
}
$insert->deskripsi = $request->deskripsi;
$insert->tahun = $request->tahun;
$insert->tahun_data = $request->tahun_data;
$insert->tahun_data = $request->tahun_data;
if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$insert->status = 1;
}else{
$insert->status = 0;
}
$insert->save();
}else{
// dd($request->all());

View File

@ -11,6 +11,10 @@ class DatasetTambahan extends Model
protected $primaryKey = 'DatasetTambahanId';
protected $guarded = [];
function tabelData() {
return $this->belongsTo('App\Models\Master\TabelData','template_id');
}
function instansi() {
return $this->belongsTo('App\Models\Master\Instansi','instansi_id');
}

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('dataset-tambahan', function (Blueprint $table) {
$table->year('tahun_data')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('dataset-tambahan', function (Blueprint $table) {
//
});
}
};

View File

@ -5,7 +5,7 @@
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<nav class="flex mb-4 text-sm font-medium text-slate-500" aria-label="Breadcrumb">
<ol class="flex items-center space-x-2">
<li><a href="dataset.html" class="hover:text-blue-600 transition-colors">Dataset</a></li>
<li><a href="dataset.html" class="hover:text-blue-600 transition-colors">Dataset Utama</a></li>
<li><i data-lucide="chevron-right" class="w-4 h-4 text-slate-300"></i></li>
<li class="text-slate-900 truncate max-w-[200px] md:max-w-none">{{ $dataset->name }}</li>
</ol>
@ -17,6 +17,7 @@
<span class="text-slate-400 text-xs flex items-center"><i data-lucide="calendar" class="w-3 h-3 mr-1"></i> Terbit: {{ date('d M Y',strtotime($dataset->created_at)) }}</span>
</div>
<h2 class="text-2xl md:text-3xl font-extrabold text-slate-900 tracking-tight leading-tight">{{ $dataset->name }}</h2>
<h2 class="mt-3 text-md text-blue-500 tracking-tight leading-tight">{{ $dataset->instansi->name }}</h2>
</div>
<div class="flex gap-2">
<a href="{{url('opendata/dataset/download/'.encode_id(@$dataset->DatasetId))}}" class="flex-1 md:flex-none bg-blue-600 text-white px-6 py-3 rounded-xl font-bold hover:bg-blue-700 transition-all flex items-center justify-center shadow-lg shadow-blue-100">
@ -76,7 +77,7 @@
<div class="space-y-6">
<!-- Metadata Card -->
<section class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm">
<h3 class="text-sm font-bold text-slate-400 uppercase tracking-widest mb-6">Informasi Metadata</h3>
<h3 class="text-sm font-bold text-slate-900 uppercase tracking-widest mb-6 flex items-center"><i data-lucide="info" class="w-5 h-5 mr-2 text-blue-600"></i> Informasi Metadata</h3>
<div class="space-y-4">
<div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Tahun Data</span>
@ -87,9 +88,13 @@
<span class="text-sm font-bold text-slate-900">{{ $dataset->tahun }}</span>
</div>
<div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Kategori</span>
<span class="text-sm font-bold text-slate-900">{{ @$dataset->tabelData->kategori ?? '-' }}</span>
</div>
{{-- <div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Organisasi</span>
<span class="text-sm font-bold text-blue-600 underline">{{ $dataset->instansi->name }}</span>
</div>
</div> --}}
{{-- <div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Dilihat</span>
<span class="text-sm font-bold text-slate-900">1.240 Kali</span>

View File

@ -1,106 +1,74 @@
@extends('layouts.app')
@section('css')
@endsection
@extends('layouts.appNew')
@section('content')
<section class="container relative pt-[150px] py-20 pb-0 px-5 flex flex-col gap-5">
<div class="relative flex justify-between items-center content-center mb-10">
<div>
<h1 class="">Home / <a href="{{ url('dataset') }}">Dataset</a> / <span class="bold">{{ $dataset->name }}</span></h1>
</div>
</div>
</section>
<section class="container pb-10 pt-10 px-5">
<div class="flex flex-col gap-6">
<div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex">
<div class="flex flex-col gap-3 items-center text-center w-1/4">
{{-- <img src="{{ asset('uploads/'.@$dataset->instansi->logo) }}" alt="" width="50" class=""> --}}
<img src="{{ asset('logodki.png') }}" alt="" width="50" class="">
<h1 class="font-bold">{{ $dataset->instansi->name }}</h1>
<a href="{{asset('uploads/'.$dataset->file)}}" class="rounded-full text-[12px] bg-success text-white px-2 py-1">Download <i class="ri-download-line"></i></a>
</div>
<div class="flex items-center justify-between w-3/4">
<div class="flex flex-col gap-3">
<div class="">
<h5 class="font-bold">{{ $dataset->name }}</h5>
</div>
<div>
<p>{{ $dataset->deskripsi }}</p>
</div>
<div class="mt-1 flex flex-row gap-2 items-center">
<span class="rounded-full text-[10px] bg-[#103760] text-white px-2 py-1">{{$dataset->tahun}}</span>
<span class="rounded-full text-[10px] hidden lg:block bg-[#103760] text-white px-2 py-1">{{$dataset->template->name}}</span>
</div>
<div class="flex gap-1">
<span>Bagikan : </span>
<a href=""><i class="p-1 rounded-full bg-[#aaa] text-white ri-facebook-line"></i></a>
<a href=""><i class="p-1 rounded-full bg-[#aaa] text-white ri-whatsapp-line"></i></a>
<a href=""><i class="p-1 rounded-full bg-[#aaa] text-white ri-twitter-line"></i></a>
</div>
<!-- Header / Breadcrumb -->
<header class="pt-32 pb-8 bg-white border-b border-slate-200">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<nav class="flex mb-4 text-sm font-medium text-slate-500" aria-label="Breadcrumb">
<ol class="flex items-center space-x-2">
<li><a href="dataset.html" class="hover:text-blue-600 transition-colors">Dataset Tambahan</a></li>
<li><i data-lucide="chevron-right" class="w-4 h-4 text-slate-300"></i></li>
<li class="text-slate-900 truncate max-w-[200px] md:max-w-none">{{ $dataset->name }}</li>
</ol>
</nav>
<div class="flex flex-col md:flex-row md:items-start justify-between gap-6">
<div class="max-w-3xl">
<div class="flex items-center space-x-3 mb-3">
{{-- <span class="bg-blue-100 text-blue-700 text-[10px] font-extrabold px-2 py-0.5 rounded uppercase">Udara</span> --}}
<span class="text-slate-400 text-xs flex items-center"><i data-lucide="calendar" class="w-3 h-3 mr-1"></i> Terbit: {{ date('d M Y',strtotime($dataset->created_at)) }}</span>
</div>
<h2 class="text-2xl md:text-3xl font-extrabold text-slate-900 tracking-tight leading-tight">{{ $dataset->name }}</h2>
<h2 class="mt-3 text-md text-blue-500 tracking-tight leading-tight">{{ $dataset->instansi->name }}</h2>
</div>
<div class="flex gap-2">
<a href="{{url('opendata/dataset/download/'.encode_id(@$dataset->DatasetId))}}" class="flex-1 md:flex-none bg-blue-600 text-white px-6 py-3 rounded-xl font-bold hover:bg-blue-700 transition-all flex items-center justify-center shadow-lg shadow-blue-100">
<i data-lucide="download" class="w-5 h-5 mr-2"></i> Unduh Data
</a>
</div>
</div>
<?php
$data = json_decode($dataset->data);
?>
@if(@$data)
<div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex">
<div style="overflow-x:auto; width:100%!important;">
<table id="table"
data-toggle="table"
data-search="false"
data-pagination="true"
data-side-pagination="server"
data-url="{{ url('dataset/Griddetail?id='.@$keyId) }}"
>
<thead>
<tr class="bg-primary-light text-primary">
@if (!empty($data))
@foreach ($data[0] as $k => $key)
<th data-field="{{$k}}" class="gridjs-td gridjs-th text-xs">{{ ucwords(str_replace('_', ' ', $k)) }}</th>
@endforeach
@endif
</tr>
</thead>
</table>
</div>
</div>
@endif
</div>
</header>
</div>
</section>
<section class="relative bg-[#F0F0F0] ">
<div class="container px-10 py-10">
<div class="relative flex justify-between items-center content-center mb-10">
<div>
<h1 class="font-bold poppins-bold text-xl">Dataset Terbaru</h1>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-6">
@foreach($lainnya as $dataSet)
<a href="{{ url('dataset-tambahan/detail/'.encode_id($dataSet->DatasetTambahanId)) }}" class="transition duration-300 ease-in-out hover:-translate-y-100 hover:scale-410">
<div class="bg-white rounded-[20px] shadow-lg p-5 py-10 gap-6 flex">
<div class="flex flex-col gap-3 items-center text-center">
<div class="flex flex-col items-center gap-3">
<img src="{{ asset('logodki.png') }}" alt="" width="50" class="">
{{-- <img src="{{ asset('uploads/'.@$dataSet->instansi->logo) }}" alt="" width="50" class=""> --}}
<h1 class="font-bold">{{ $dataSet->instansi->name }}</h1>
<!-- Main Content -->
<main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10">
<div class="grid lg:grid-cols-3 gap-8">
<!-- Left Column: Details & Preview -->
<div class="lg:col-span-2 space-y-8">
<!-- Description Section -->
<section class="bg-white p-8 rounded-3xl border border-slate-200 shadow-sm">
<h3 class="text-lg font-bold mb-4 flex items-center text-slate-900">
<i data-lucide="info" class="w-5 h-5 mr-2 text-blue-600"></i> Deskripsi Dataset
</h3>
<p class="text-slate-600 leading-relaxed">
{{ $dataset->deskripsi }}
</p>
</section>
</div>
<!-- Right Column: Metadata & Format -->
<div class="space-y-6">
<!-- Metadata Card -->
<section class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm">
<h3 class="text-sm font-bold text-slate-900 uppercase tracking-widest mb-6 flex items-center"><i data-lucide="info" class="w-5 h-5 mr-2 text-blue-600"></i> Informasi Metadata</h3>
<div class="space-y-4">
<div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Tahun Data</span>
<span class="text-sm font-bold text-slate-900">{{ $dataset->tahun_data }}</span>
</div>
<div class="">
<h5 class="font-bold">{{ $dataSet->name }}</h5>
<div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Tahun Input Data</span>
<span class="text-sm font-bold text-slate-900">{{ $dataset->tahun }}</span>
</div>
<div>
<p>{{ substr($dataSet->deskripsi,0,50) }}</p>
</div>
<div class="mt-1 flex flex-row gap-2 items-center">
<span class="rounded-full text-[10px] bg-[#E9811A] text-white px-2 py-1">{{$dataSet->tahun}}</span>
<span class="rounded-full text-[10px] hidden lg:block bg-[#E9811A] text-white px-2 py-1">{{ substr($dataSet->template->name,0,25) }}...</span>
<div class="flex justify-between items-center py-2 border-b border-slate-50">
<span class="text-sm text-slate-500">Kategori</span>
<span class="text-sm font-bold text-slate-900">{{ @$dataset->tabelData->kategori ?? '-' }}</span>
</div>
</div>
</div>
</a>
@endforeach
</section>
</div>
</div>
</div>
</section>
</main>
@endsection

View File

@ -101,14 +101,15 @@
<h4 class="text-lg font-bold text-slate-900 mb-2">{{ $dataSet->name }}</h4>
<p class="text-sm text-slate-500 line-clamp-2 mb-4">{{ substr($dataSet->deskripsi,0,150) }}...</p>
<div class="flex flex-wrap gap-2">
<span class="flex items-center bg-slate-100 text-slate-600 px-2 py-1 rounded text-[10px] font-bold">XLSX</span>
<span class="flex items-center bg-slate-100 text-slate-600 px-2 py-1 rounded text-[10px] font-bold uppercase">{{ @explode('.',@$dataSet->file)[1] }}</span>
<span class="flex items-center bg-yellow-100 text-yellow-600 px-2 py-1 rounded text-[10px] font-bold uppercase">{{ @$dataSet->tabelData->kategori ?? '-' }}</span>
</div>
</div>
<div class="flex flex-row md:flex-col justify-end gap-2 md:w-32">
<a href="{{asset('uploads/'.$dataset->file)}}" class="flex-1 md:w-full bg-blue-600 text-white py-2 px-4 rounded-xl text-sm font-bold hover:bg-blue-700 transition-all flex items-center justify-center">
<a href="{{asset('uploads/'.@$dataSet->file)}}" class="flex-1 md:w-full bg-blue-600 text-white py-2 px-4 rounded-xl text-sm font-bold hover:bg-blue-700 transition-all flex items-center justify-center">
<i data-lucide="download" class="w-4 h-4 mr-2"></i> Unduh
</a>
<a href="{{ url('dataset-tambahan/detail/'.encode_id($dataSet->DatasetId)) }}" class="flex-1 md:w-full border border-slate-200 text-slate-700 py-2 px-4 rounded-xl text-sm font-bold hover:bg-slate-50 transition-all flex items-center justify-center">
<a href="{{ url('dataset-tambahan/detail/'.encode_id($dataSet->DatasetTambahanId)) }}" class="flex-1 md:w-full border border-slate-200 text-slate-700 py-2 px-4 rounded-xl text-sm font-bold hover:bg-slate-50 transition-all flex items-center justify-center">
<i data-lucide="eye" class="w-4 h-4 mr-2"></i> Detail
</a>
</div>

View File

@ -5,7 +5,7 @@
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row md:items-center justify-between gap-6">
<div>
<h2 class="text-3xl font-extrabold text-slate-900 tracking-tight">Eksplorasi Dataset</h2>
<h2 class="text-3xl font-extrabold text-slate-900 tracking-tight">Eksplorasi Dataset Utama</h2>
<p class="text-slate-600 mt-2">Temukan data mentah kinerja lingkungan hidup</p>
</div>
<div class="relative w-full md:w-96 hidden">
@ -102,6 +102,7 @@
<p class="text-sm text-slate-500 line-clamp-2 mb-4">{{ substr($dataSet->deskripsi,0,150) }}...</p>
<div class="flex flex-wrap gap-2">
<span class="flex items-center bg-slate-100 text-slate-600 px-2 py-1 rounded text-[10px] font-bold">XLSX</span>
<span class="flex items-center bg-yellow-100 text-yellow-600 px-2 py-1 rounded text-[10px] font-bold uppercase">{{ @$dataSet->tabelData->kategori ?? '-' }}</span>
</div>
</div>
<div class="flex flex-row md:flex-col justify-end gap-2 md:w-32">

View File

@ -81,7 +81,7 @@
</div>
<div>
<p class="text-xs text-slate-500 font-medium">Dataset Tambahan</p>
<p class="font-bold text-xl">{{ $count['resource'] }}</p>
<p class="font-bold text-xl">{{ $count['dataset_tambahan'] }}</p>
</div>
</div>
{{-- <span class="text-[10px] font-bold px-2 py-1 rounded-md bg-blue-100 text-blue-700">Cukup</span> --}}
@ -155,8 +155,8 @@
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex flex-col md:flex-row justify-between items-end mb-12 gap-6">
<div class="max-w-xl">
<h3 class="text-3xl font-bold text-slate-900 mb-4 tracking-tight">Dokumen Publikasi</h3>
<p class="text-slate-600">Akses seluruh arsip Dokumen Informasi Kinerja Pengelolaan Lingkungan Hidup Daerah dari tahun ke tahun</p>
<h3 class="text-3xl font-bold text-slate-900 mb-4 tracking-tight">Dataset Utama Terbaru</h3>
<p class="text-slate-600">Akses seluruh arsip Dataset Kinerja Pengelolaan Lingkungan Hidup Daerah dari tahun ke tahun</p>
</div>
{{-- <div class="flex space-x-2">
<button class="year-filter px-4 py-2 text-sm font-semibold bg-blue-600 text-white rounded-lg" data-year="all">Semua Tahun</button>

View File

@ -51,7 +51,7 @@
<!-- Desktop Menu -->
<div class="hidden md:flex items-center space-x-8">
<a href="{{ url('/') }}" class="font-medium text-slate-700 hover:text-blue-600 transition-colors">Beranda</a>
<a href="{{ url('dataset') }}" class="font-medium text-slate-700 hover:text-blue-600 transition-colors">Dataset</a>
<a href="{{ url('dataset') }}" class="font-medium text-slate-700 hover:text-blue-600 transition-colors">Dataset Utama</a>
<a href="{{ url('dataset-tambahan') }}" class="font-medium text-slate-700 hover:text-blue-600 transition-colors">Dataset Tambahan</a>
{{-- <a href="#" class="font-medium text-slate-700 hover:text-blue-600 transition-colors">Informasi</a> --}}
<a href="{{ url('login') }}" class="flex items-center space-x-2 bg-blue-600 text-white px-5 py-2 rounded-xl font-semibold hover:bg-blue-700 transition-all shadow-lg shadow-blue-200">
@ -71,7 +71,7 @@
<!-- Mobile Menu -->
<div id="mobile-menu" class="hidden md:hidden bg-white border-t border-slate-100 p-4 space-y-4 shadow-xl">
<a href="{{ url('/') }}" class="block font-medium py-2">Beranda</a>
<a href="{{ url('dataset') }}" class="block font-medium py-2">Dataset</a>
<a href="{{ url('dataset') }}" class="block font-medium py-2">Dataset Utama</a>
<a href="{{ url('dataset-tambahan') }}" class="block font-medium py-2">Dataset Tambahan</a>
<a href="{{ url('/login') }}" class="w-full bg-blue-600 text-white px-5 py-3 rounded-xl font-bold">Login</a>
</div>

View File

@ -49,10 +49,10 @@
<div class="flex gap-4">
<label class="mb-3 w-1/2 font-semibold required">Unggah Berkas</label>
<div class="flex flex-col w-full justify-center items-start gap-2">
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="p-2 border rounded w-full @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
<small><i>Masukan Ekstensi File : .pdf,.xls,.xlsx</i></small>
<input type="file" accept=".pdf,.docx,.xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="p-2 border rounded w-full @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
<small><i>Masukan Ekstensi File : .pdf,.docx,.xls,.xlsx</i></small>
@if(@$item->file)
<a href="{{asset('uploads/'.$item->file)}}" class="btn bg-success text-white mt-3"><i class="ri-download-line"></i>&nbsp;Download File</a>
<a href="{{asset('uploads/'.$item->file)}}" class="p-2 bg-emerald-500 rounded text-white mt-3"><i class="ri-download-line"></i>&nbsp;Download File</a>
@endif
</div>
@error('file')

View File

@ -42,6 +42,7 @@
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="instansi">Nama Instansi</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="name">Nama Dataset</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="template">Sumber Data Terkait</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="status">Status</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="tahun">Tahun Sistem</th>
<th class="text-[10px] border font-bold text-slate-900 text-center" data-field="created_at">Tanggal Input</th>
</tr>

View File

@ -2,68 +2,112 @@
@section('css')
@endsection
@section('content')
<div class="flex flex-col gap-6">
<div class="card">
<div class="card-header">
<div class="flex justify-between items-center">
<h4 class="card-title">{{$title}}</h4>
</div>
<div class="flex-1 overflow-y-auto p-8 custom-scrollbar">
<div class="p-8 bg-white rounded-3xl border border-slate-200 shadow-sm overflow-hidden">
<div class="flex justify-between items-center mb-5">
<h5 class="text-lg text-slate-700 font-bold">Informasi Dataset</h5>
<a href="{{route($route.'.index')}}" class="bg-blue-500 rounded py-2 px-3 text-white flex items-center"><i data-lucide="arrow-left" class="w-4 h-4 mr-2"></i><span>Kembali</span></a>
</div>
<div class="p-6">
<div class="grid lg:grid-cols-2 gap-3 mb-3">
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
<div class="p-2">
<i class="ri-building-4-line text-primary text-xl"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Instansi</b></div>
<div class="text-xs">{{$item->instansi->name}}</div>
</div>
<hr>
<div class="grid lg:grid-cols-2 gap-3 mb-3 mt-5">
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="building" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
<div class="p-2">
<i class="ri-database-2-line text-primary text-xl"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Sumber Data</b></div>
<div class="text-xs">{{$item->template->name}}</div>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Instansi</b></div>
<div class="text-xs">{{$item->instansi->name}}</div>
</div>
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
<div class="p-2">
<i class="ri-database-2-line text-primary text-xl"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Nama Dataset</b></div>
<div class="text-xs">{{$item->name}}</div>
</div>
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Sumber Data</b></div>
<div class="text-xs">{{$item->tabelData->name}}</div>
</div>
</div>
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Nama Dataset</b></div>
<div class="text-xs">{{$item->name}}</div>
</div>
</div>
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex items-center gap-3">
<div class="text-sm"><b>File</b></div>
<div>
<a download href="{{url('uploads/'.@$item->file)}}" class="p-1 bg-blue-500 rounded text-white flex items-center"><i data-lucide="download" class="w-4 h-4 mr-2"></i>Download File</a>
</div>
</div>
</div>
<div class="grid lg-grid-cols-1 gap-3">
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
<div class="p-2">
<i class="ri-database-2-line text-primary text-xl"></i>
</div>
<div class="flex flex-row gap-2">
<div class="text-sm">
<b>File</b>
</div>
<div>
<a href="{{asset('uploads/'.@$item->file)}}" class="p-1 bg-primary rounded text-white text-xs"><i class="ri-download-line"></i>&nbsp;Download File</a>
</div>
</div>
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
<div class="p-2">
<i class="ri-information-line text-primary text-xl"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Deskripsi</b></div>
<div class="text-xs">{{$item->deskripsi}}</div>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Tahun Sistem SLHD</b></div>
<div class="text-xs">{{$item->tahun}}</div>
</div>
</div>
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Tahun Data</b></div>
<div class="text-xs">{{@$item->tahun_data}}</div>
</div>
</div>
</div>
<div class="grid lg-grid-cols-1 gap-3">
<div class="flex flex-between gap-3 bg-gray-100 items-center p-2 rounded">
<div class="p-2">
<i data-lucide="info" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex flex-col">
<div class="text-sm"><b>Deskripsi</b></div>
<div class="text-xs">{{$item->deskripsi}}</div>
</div>
</div>
</div>
@if(@$item->status == 0)
<hr class="mt-3">
<h5 class="text-xl font-bold mt-3">Form Verifikasi Dataset</h5>
<form action="{{ url('opendata/dataset/verifikasi/'.encode_id($item->DatasetId)) }}" method="POST">
{{ csrf_field() }}
<div class="mt-2">
<select name="verifikasi" class="w-full p-2 bg-white border" id="">
<option value="1">Verifikasi</option>
<option value="2">Tolak Verifikasi</option>
</select>
</div>
<div class="mt-2">
<textarea name="catatan" class="w-full p-2 bg-white border" id="" cols="30" rows="10" placeholder="Masukan Catatan"></textarea>
</div>
<div class="mt-2">
<button class="p-2 bg-blue-500 rounded text-white">Simpan</button>
</div>
</form>
@endif
@if($item->status == '2')
<hr class="mt-3">
<h5 class="text-xl font-bold my-3">Catatan Verifikasi Dataset</h5>
@foreach ($catatan as $valCatatan)
<div class="flex flex-col gap-3 bg-gray-100 p-2 mb-2 rounded">
<div class="text-[10px]">{{$valCatatan->created_at}}</div>
<div class="text-sm">{{$valCatatan->catatan}}</div>
</div>
@endforeach
@endif
</div>
</div>
@endsection

View File

@ -42,7 +42,7 @@
<i data-lucide="database" class="w-4 h-4 mr-2"></i>
</div>
<div class="flex items-center gap-3">
<div class="text-sm">File</div>
<div class="text-sm"><b>File</b></div>
<div>
<a href="{{url('opendata/dataset/download/'.encode_id(@$item->DatasetId))}}" class="p-1 bg-blue-500 rounded text-white flex items-center"><i data-lucide="download" class="w-4 h-4 mr-2"></i>Download File</a>
</div>