main
Ilham Wara Nugroho 2026-02-12 16:16:43 +07:00
parent 27858b277d
commit 503e4c8e30
18 changed files with 334 additions and 75 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Master\Instansi; use App\Models\Master\Instansi;
use App\Models\Master\Template; use App\Models\Master\Template;
use App\Models\Master\TabelData;
use App\Models\Dataset; use App\Models\Dataset;
use App\Models\Dataset\DatasetTable45; use App\Models\Dataset\DatasetTable45;
use App\Models\Dataset\DatasetTable47; use App\Models\Dataset\DatasetTable47;
@ -19,24 +20,26 @@ class AjaxController extends Controller
$resource = json_decode($instansi->resource_data); $resource = json_decode($instansi->resource_data);
// dd($resource); // dd($resource);
if(@$resource){ // if(@$resource){
$data = Template::whereIn('MsTemplateId',$resource)->count(); // $data = Template::whereIn('MsTemplateId',$resource)->count();
if(@$data != 0){ // if(@$data != 0){
$data = Template::whereIn('MsTemplateId',$resource)->get(); // $data = Template::whereIn('MsTemplateId',$resource)->get();
}else{ // }else{
$data = Template::all(); // $data = Template::all();
} // }
}else{ // }else{
$data = Template::all(); // $data = Template::all();
} // }
$data = TabelData::all();
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
$filename = pathinfo($value->template_url, PATHINFO_FILENAME); // $filename = pathinfo($value->template_url, PATHINFO_FILENAME);
$_data[$key]['id'] = encode_id($value->MsTemplateId); $_data[$key]['id'] = encode_id($value->MsTabelDataId);
$_data[$key]['name'] = $filename.' - '.$value->name; $_data[$key]['name'] = 'Tabel '.$value->nomor_tabel.' - '.$value->name;
$_data[$key]['excel'] = asset($value->template_url); $_data[$key]['excel'] = url('opendata/dataset/generateTemplate/'.encode_id($value->MsTabelDataId));
} }
return response()->json(['data' => $_data,'status' => true]); return response()->json(['data' => $_data,'status' => true]);

View File

@ -7,6 +7,7 @@ use App\Models\Dataset;
use App\Models\Master\Topik; use App\Models\Master\Topik;
use App\Models\Master\Instansi; use App\Models\Master\Instansi;
use App\Models\Master\Template; use App\Models\Master\Template;
use App\Models\Master\TabelData;
use App\Models\Master\Group; use App\Models\Master\Group;
use App\Repositories\Eloquent\DatasetRepository; use App\Repositories\Eloquent\DatasetRepository;
@ -37,9 +38,9 @@ class HomeController extends Controller
// $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get(); // $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get();
$data['group'] = Group::where('MsGroupId','!=',1)->where('alias','!=','admin')->get(); $data['group'] = Group::where('MsGroupId','!=',1)->where('alias','!=','admin')->get();
if((session('group_id') == 1) || (session('group_alias') == 'admin')){ if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$data['resource'] = Template::with(['dataset'])->where('show_dashboard',1)->get(); $data['resource'] = TabelData::with(['dataset'])->get();
}else{ }else{
$data['resource'] = Template::with(['dataset'])->whereHas('dataset',function($query){ $data['resource'] = TabelData::with(['dataset'])->whereHas('dataset',function($query){
$query->where('instansi_id',auth()->user()->ms_instansi_id); $query->where('instansi_id',auth()->user()->ms_instansi_id);
})->where('show_dashboard',1)->get(); })->where('show_dashboard',1)->get();
} }
@ -104,9 +105,9 @@ class HomeController extends Controller
public function gridResource(Request $request) public function gridResource(Request $request)
{ {
if((session('group_id') == 1) || (session('group_alias') == 'admin')){ if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$data = Template::with(['dataset'])->where('show_dashboard',1)->get(); $data = TabelData::with(['dataset'])->where('show_dashboard',1)->get();
}else{ }else{
$data = Template::with(['dataset'])->whereHas('dataset',function($query){ $data = TabelData::with(['dataset'])->whereHas('dataset',function($query){
$query->where('instansi_id',auth()->user()->ms_instansi_id); $query->where('instansi_id',auth()->user()->ms_instansi_id);
})->where('show_dashboard',1)->get(); })->where('show_dashboard',1)->get();
} }
@ -198,14 +199,14 @@ class HomeController extends Controller
$data['id'] = decode_id($id); $data['id'] = decode_id($id);
$data['instansi_id'] = decode_id($instansi_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['dataset'] = Dataset::with(['template'])->where('instansi_id',decode_id($instansi_id))->where('template_id',decode_id($id))->first();
$data['template'] = Template::where('MsTemplateId',decode_id($id))->first(); $data['template'] = TabelData::where('MsTemplateId',decode_id($id))->first();
$data['title'] = 'Dashboard '.@$data['dataset']->template->name; $data['title'] = 'Dashboard '.@$data['dataset']->template->name;
return view($this->template.'.resource_detail',$data); return view($this->template.'.resource_detail',$data);
} }
function apiChart($templateId,$instansi_id){ function apiChart($templateId,$instansi_id){
$template = Template::where('MsTemplateId',decode_id($templateId))->first(); $template = TabelData::where('MsTemplateId',decode_id($templateId))->first();
$dataset = Dataset::with(['template'])->where('instansi_id',decode_id($instansi_id))->where('template_id',decode_id($templateId))->first(); $dataset = Dataset::with(['template'])->where('instansi_id',decode_id($instansi_id))->where('template_id',decode_id($templateId))->first();
$filename = pathinfo($template->template_url, PATHINFO_FILENAME); $filename = pathinfo($template->template_url, PATHINFO_FILENAME);
$modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename); $modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);

View File

@ -11,8 +11,14 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
use App\Models\Master\Instansi; use App\Models\Master\Instansi;
use App\Models\Master\Topik; use App\Models\Master\Topik;
use App\Models\Master\Template; use App\Models\Master\Template;
use App\Models\Master\TabelData;
use App\Models\Master\TabelDataKolom;
use App\Models\Dataset; use App\Models\Dataset;
use App\Models\TxDataset;
use App\Repositories\Eloquent\DatasetRepository; use App\Repositories\Eloquent\DatasetRepository;
use DB;
use Excel;
use App\Imports\Import;
class DatasetController extends Controller class DatasetController extends Controller
{ {
@ -44,25 +50,51 @@ class DatasetController extends Controller
$id = $request->query('id'); $id = $request->query('id');
$keyId = decode_id($id); $keyId = decode_id($id);
$item = Dataset::find($keyId); // atau pakai ->pluck(), ->find(), dll $item = Dataset::find($keyId); // atau pakai ->pluck(), ->find(), dll
//
$_data = [];
$data = TxDataset::where('dataset_id', $keyId)
->orderBy('row_id')
->orderBy('ms_tabel_data_kolom_id')
->get()
->groupBy('row_id');
$json = json_decode($item->data, true); foreach ($data as $rowId => $rows) {
$limit = $request->input('limit', 10);
$offset = $request->input('offset', 0);
$rows = array_slice($json, $offset, $limit); $rowData = [
return response()->json([ 'no' => $rowId
'total' => count($json), ];
'rows' => $rows
]); foreach ($rows as $cell) {
$rowData[$cell->ms_tabel_data_kolom_id] = $cell->value;
}
$_data[] = $rowData;
}
return response()->json($_data);
// $json = json_decode($item->data, true);
// $limit = $request->input('limit', 10);
// $offset = $request->input('offset', 0);
// $rows = array_slice($json, $offset, $limit);
// return response()->json([
// 'total' => count($json),
// 'rows' => $rows
// ]);
} }
public function grid(Request $request) public function grid(Request $request)
{ {
if((session('group_id') == 1) || (session('group_alias') == 'admin')){ if((session('group_id') == 1) || (session('group_alias') == 'admin')){
$data = Dataset::with(['template'])->orderBy('DatasetId','DESC')->get(); $data = Dataset::with(['tabelData'])->orderBy('DatasetId','DESC')->get();
}else{ }else{
$data = Dataset::with(['template'])->orderBy('DatasetId','DESC')->whereIn('instansi_id',[auth()->user()->ms_instansi_id])->get(); $data = Dataset::with(['tabelData'])->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 = [];
@ -101,10 +133,10 @@ class DatasetController extends Controller
'id' => encode_id($row->id), 'id' => encode_id($row->id),
'name' => @$row->name, 'name' => @$row->name,
'publik' => @$row->publik, 'publik' => @$row->publik,
'tahun' => @$row->tahun, 'tahun' => @$row->tahun,
'template' => @$row->template->name, 'template' => @$row->tabelData->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,
'status' => @$status, 'status' => @$status,
]; ];
@ -151,27 +183,76 @@ class DatasetController extends Controller
// ])->validate(); // ])->validate();
} }
$template = Template::find(decode_id($request->template_id)); // $template = Template::find(decode_id($request->template_id));
$filename = pathinfo($template->template_url, PATHINFO_FILENAME); // $filename = pathinfo($tabelData->template_url, PATHINFO_FILENAME);
$modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename); // $modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
$importClass = "App\\Imports\\Dataset". ucfirst($filename)."Import"; // $importClass = "App\\Imports\\Dataset". ucfirst($filename)."Import";
DB::beginTransaction();
// dd($request->all());
try { try {
$insert = $this->repository->createDatasetTable($modelClass,$importClass,$request->file('file'),$request->all()); //INSERT DATASET;
$dataset = new Dataset;
$dataset->instansi_id = decode_id($request->instansi_id);
$dataset->ms_tabel_data_id = decode_id($request->template_id);
$dataset->tahun = $request->tahun;
$dataset->tahun_data = $request->tahun_data;
$dataset->name = $request->name;
$dataset->publik = 1;
$dataset->template_default = 1;
$dataset->data = null;
$dataset->file = null;
$dataset->deskripsi = $request->deskripsi;
$dataset->created_by = auth()->user()->id;
$dataset->save();
$tabelData = TabelData::find(decode_id($request->template_id));
$import = new Import;
Excel::import($import, $request->file('file'));
$data = $import->getData();
$count = 0;
// dd($data);
foreach ($data as $rowIndex => $row) {
$rowId = $row[str_replace(' ','_',strtolower($tabelData->name)).'_'.date('Y')-1];
unset($row[str_replace(' ','_',strtolower($tabelData->name)).'_'.date('Y')-1]);
$count++;
foreach ($row as $columnIndex => $value) {
TxDataset::updateOrCreate([
'dataset_id' => $dataset->DatasetId,
'row_id' => $rowIndex + 1, // nomor baris
'ms_tabel_data_kolom_id' => $columnIndex,
],[
'dataset_id' => $dataset->DatasetId,
'ms_tabel_data_id' => decode_id($request->template_id),
'row_id' => $rowIndex + 1,
'ms_tabel_data_kolom_id' => $columnIndex,
'value' => $value,
]);
}
}
DB::commit();
// $insert = $this->repository->createDatasetTable($modelClass,$importClass,$request->file('file'),$request->all());
// dd($insert); // dd($insert);
return redirect()->back()->with([ return redirect()->back()->with([
'message' => 'Berhasil update data', 'message' => 'Berhasil update data',
'type' => 'success', 'type' => 'success',
]); ]);
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollback();
dd($e->getMessage()); dd($e->getMessage());
return redirect()->back()->with([ if ($e->getMessage() === "Start row (2) is beyond highest row (1)") {
'message' => $e->getMessage(), return redirect()->back()->with([
'type' => "error" 'message' => $e->getMessage(),
]); 'type' => "error"
], 400);
}
} }
} catch (Exception $e) { } catch (Exception $e) {
DB::rollback();
return redirect()->back()->with([ return redirect()->back()->with([
'message' => $e->getMessage(), 'message' => $e->getMessage(),
'type' => "error" 'type' => "error"
@ -218,7 +299,7 @@ class DatasetController extends Controller
$data['topik'] = Topik::all(); $data['topik'] = Topik::all();
$data['template'] = Template::all(); $data['tabel'] = TabelData::all();
return view($this->template.'.form',$data); return view($this->template.'.form',$data);
} }
@ -235,9 +316,10 @@ class DatasetController extends Controller
$data['keyId'] = $id; $data['keyId'] = $id;
$data['item'] = Dataset::find($keyId); $data['item'] = Dataset::find($keyId);
$template = Template::find($data['item']->template_id); $template = TabelData::find($data['item']->ms_tabel_data_id);
$filename = pathinfo($template->template_url, PATHINFO_FILENAME); $data['tabel'] = TabelDataKolom::where('ms_tabel_data_id',$template->MsTabelDataId)->orderBy('order','ASC')->get();
$data['modelClass'] = "App\\Models\\Dataset\\Dataset" . ucfirst($filename); // $filename = pathinfo($tabelData->template_url, PATHINFO_FILENAME);
// $data['modelClass'] = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
return view($this->template.'.view',$data); return view($this->template.'.view',$data);
} }
@ -268,4 +350,31 @@ class DatasetController extends Controller
return response()->json(['success' => true,'message' => 'Berhasil update data','type' => 'success']); return response()->json(['success' => true,'message' => 'Berhasil update data','type' => 'success']);
} }
function generateTemplate($id){
$keyId = decode_id($id);
$data['tabel'] = TabelData::find($keyId);
$data['kolom'] = TabelDataKolom::where('ms_tabel_data_id',$keyId)->orderBy('order','ASC')->get();
return view($this->template.'.template',$data);
}
function download($id){
$keyId = decode_id($id);
$data['dataset'] = Dataset::with(['tabelData'])->find($keyId);
$data['txdataset'] =TxDataset::where('dataset_id', $keyId)
->orderBy('row_id')
->orderBy('ms_tabel_data_kolom_id')
->get()
->groupBy('row_id');
$data['tabel'] = TabelDataKolom::where('ms_tabel_data_id',$data['dataset']->ms_tabel_data_id)->orderBy('order','ASC')->get();
// $data['tabel'] = TabelData::find($keyId);
// $data['kolom'] = TabelDataKolom::where('ms_tabel_data_id',$keyId)->orderBy('order','ASC')->get();
return view($this->template.'.download',$data);
}
} }

View File

@ -0,0 +1,27 @@
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToArray;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithStartRow;
class Import implements ToArray, WithHeadingRow,WithStartRow
{
private $data;
public function array(array $row)
{
$this->data = $row;
}
public function startRow(): int
{
return 3;
}
public function getData(){
return $this->data;
}
}

View File

@ -21,7 +21,7 @@ class Dataset extends Model
return $this->belongsTo('App\Models\User','created_by'); return $this->belongsTo('App\Models\User','created_by');
} }
function template() { function tabelData() {
return $this->belongsTo('App\Models\Master\Template','template_id'); return $this->belongsTo('App\Models\Master\TabelData','ms_tabel_data_id');
} }
} }

View File

@ -10,6 +10,10 @@ class TabelData extends Model
use HasFactory; use HasFactory;
protected $table = 'ms_tabel_data'; protected $table = 'ms_tabel_data';
protected $primaryKey = 'MsTabelId'; protected $primaryKey = 'MsTabelDataId';
protected $guarded = []; protected $guarded = [];
function dataset(){
return $this->hasMany(\App\Models\Dataset::class, 'ms_tabel_data_id');
}
} }

View File

@ -0,0 +1,14 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TxDataset extends Model
{
use HasFactory;
protected $table = 'tx_dataset';
protected $primaryKey = 'TxDatasetId';
protected $guarded = [];
}

View File

@ -0,0 +1,32 @@
<?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', function (Blueprint $table) {
// $table->integer('ms_tabel_data_id');
$table->dropColumn('template_id');
$table->integer('ms_tabel_data_id');
// $table->foreign('ms_tabel_data_id')->references('MsTabelDataId')->on('ms_tabel_data')->cascadeOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('dataset', function (Blueprint $table) {
//
});
}
};

View File

@ -0,0 +1,35 @@
<?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::create('tx_dataset', function (Blueprint $table) {
$table->id('TxDatasetId');
$table->integer('dataset_id');
$table->integer('ms_tabel_data_id');
$table->integer('ms_tabel_data_kolom_id');
$table->text('value')->nullable();
$table->timestampsTz();
$table->foreign('dataset_id')->references('DatasetId')->on('dataset')->cascadeOnDelete();
$table->foreign('ms_tabel_data_id')->references('MsTabelDataId')->on('ms_tabel_data')->cascadeOnDelete();
$table->foreign('ms_tabel_data_kolom_id')->references('MsTabelDataKolomId')->on('ms_tabel_data_kolom')->cascadeOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('tx_dataset');
}
};

View File

@ -23,9 +23,9 @@ class DatabaseSeeder extends Seeder
],[ ],[
'name' => 'Administrator', 'name' => 'Administrator',
'username' => 'administrator', 'username' => 'administrator',
'email' => 'admindikplhd@dlh.go.id', 'email' => 'adminSLHD@dlh.go.id',
'ms_group_id' => '1', 'ms_group_id' => '1',
'password' => Hash::make('##Dikplhd2025'), 'password' => Hash::make('##SLHD2025'),
]); ]);
} }

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Register | DIKPLHD</title> <title>Register | SLHD</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="coderthemes" name="author"> <meta content="coderthemes" name="author">

View File

@ -8,7 +8,7 @@
<img src="{{asset('assets/logo-dlh.png')}}" class="" alt="Light logo" width="35"> <img src="{{asset('assets/logo-dlh.png')}}" class="" alt="Light logo" width="35">
</div> </div>
<div class="flex text-menu flex-col gap-1"> <div class="flex text-menu flex-col gap-1">
<h6 class="text-lg bold">DIKPLHD</h6> <h6 class="text-lg bold">SLHD</h6>
<h6 class="text-xs">Dinas Lingkungan Hidup</h6> <h6 class="text-xs">Dinas Lingkungan Hidup</h6>
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>{{@$title}} | DIKPLHD</title> <title>{{@$title}} | SLHD</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}"> <link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}">

View File

@ -0,0 +1,25 @@
<?php
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Data {$dataset->tabelData->name}.xls");
header("Pragma: no-cache");
?>
<table border="1" width="100%">
<tr style="text-align: center; font-weight:bold; vertical-align:middle;">
<td colspan="{{ count($tabel)+1 }}">{{ $dataset->tabelData->name }} - {{$dataset->tahun - 1}}</td>
</tr>
<tr style="vertical-align:middle;">
<td style="background:#ddd;" width="3%">No</td>
@foreach ($tabel as $dataKolom)
<td style="background:#ddd;">{{$dataKolom->name}}</td>
@endforeach
</tr>
@foreach ($txdataset as $rowId => $rows)
<tr>
<td>{{$rowId}}</td>
@foreach ($rows as $cell)
<td>{{$cell->value;}}</td>
@endforeach
</tr>
@endforeach
</table>

View File

@ -32,13 +32,6 @@
<div class=""> <div class="">
<label class="mb-3 required">Resource Data</label> <label class="mb-3 required">Resource Data</label>
<select name="template_id" required class="form-input template_id select2 @error('template_id') is-invalid @enderror" id="template_id"> <select name="template_id" required class="form-input template_id select2 @error('template_id') is-invalid @enderror" id="template_id">
{{-- <option value="">-</option> --}}
{{-- @foreach($template as $dataTemplate)
<?php
// $filename = pathinfo($dataTemplate->template_url, PATHINFO_FILENAME);
?>
<option {{@$item->template_id == $dataTemplate->MsTemplateId ? 'selected' : ''}} data-template="{{asset($dataTemplate->template_url)}}" value="{{encode_id($dataTemplate->MsTemplateId)}}">{{ $filename }} - {{$dataTemplate->name}}</option>
@endforeach --}}
</select> </select>
@error('template_id') @error('template_id')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@ -81,7 +74,7 @@
@enderror @enderror
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Tahun Sistem DIKPLHD</label> <label class="mb-3">Tahun Sistem SLHD</label>
<select name="tahun" class="form-input" id=""> <select name="tahun" class="form-input" id="">
{{-- <option value="{{@$item->tahun ? @$item->tahun : (date('Y'))}}">{{@$item->tahun ? @$item->tahun : (date('Y'))}}</option> --}} {{-- <option value="{{@$item->tahun ? @$item->tahun : (date('Y'))}}">{{@$item->tahun ? @$item->tahun : (date('Y'))}}</option> --}}
@for($i = (date('Y')-5); date('Y') >= $i ; $i++) @for($i = (date('Y')-5); date('Y') >= $i ; $i++)

View File

@ -0,0 +1,18 @@
<?php
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Template {$tabel->name}.xls");
header("Pragma: no-cache");
//dd($records);
?>
<table border="1" width="100%">
<tr style="text-align: center; font-weight:bold; vertical-align:middle;">
<td colspan="{{ count($kolom)+1 }}">{{ $tabel->name }} - {{date('Y')-1}}</td>
</tr>
<tr style="vertical-align:middle;">
<td style="background:#ddd;" width="3%">No</td>
@foreach ($kolom as $dataKolom)
<td style="background:#ddd;">{{$dataKolom->name}}</td>
@endforeach
</tr>
</table>

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="flex flex-col"> <div class="flex flex-col">
<div class="text-sm"><b>Resource Data</b></div> <div class="text-sm"><b>Resource Data</b></div>
<div class="text-xs">{{$item->template->name}}</div> <div class="text-xs">{{$item->tabelData->name}}</div>
</div> </div>
</div> </div>
<div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded"> <div class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
@ -47,7 +47,7 @@
<b>File</b> <b>File</b>
</div> </div>
<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> <a href="{{url('opendata/dataset/download/'.encode_id(@$item->DatasetId))}}" class="p-1 bg-primary rounded text-white text-xs"><i class="ri-download-line"></i>&nbsp;Download File</a>
</div> </div>
</div> </div>
</div> </div>
@ -56,7 +56,7 @@
<i class="ri-database-2-line text-primary text-xl"></i> <i class="ri-database-2-line text-primary text-xl"></i>
</div> </div>
<div class="flex flex-col"> <div class="flex flex-col">
<div class="text-sm"><b>Tahun Sistem DIKPLHD</b></div> <div class="text-sm"><b>Tahun Sistem SLHD</b></div>
<div class="text-xs">{{$item->tahun}}</div> <div class="text-xs">{{$item->tahun}}</div>
</div> </div>
</div> </div>
@ -81,9 +81,6 @@
<div class="text-xs">{{$item->deskripsi}}</div> <div class="text-xs">{{$item->deskripsi}}</div>
</div> </div>
</div> </div>
<?php
$data = json_decode($item->data);
?>
<div style="overflow-x:auto;"> <div style="overflow-x:auto;">
@ -96,17 +93,16 @@
> >
<thead> <thead>
<tr class="bg-primary-light text-primary"> <tr class="bg-primary-light text-primary">
@if (!empty($data)) <th data-field="no" class="gridjs-td gridjs-th text-xs">No</th>
@foreach ($data[0] as $k => $key) @foreach ($tabel as $k => $key)
<th data-field="{{$k}}" class="gridjs-td gridjs-th text-xs">{{ ucwords(str_replace('_', ' ', $k)) }}</th> <th data-field="{{$key->order}}" class="gridjs-td gridjs-th text-xs">{{ $key->name }}</th>
@endforeach @endforeach
@endif
</tr> </tr>
</thead> </thead>
</table> </table>
</div> </div>
{!! $modelClass::legend() !!} {{-- {!! $modelClass::legend() !!} --}}
</div> </div>
</div> </div>
</div> </div>

View File

@ -40,6 +40,8 @@ Route::name('opendata.')->prefix('opendata')->group(function () {
Route::get('view/{id?}',[DatasetController::class,'view'])->name('view'); Route::get('view/{id?}',[DatasetController::class,'view'])->name('view');
Route::get('delete/{id?}',[DatasetController::class,'delete'])->name('delete'); Route::get('delete/{id?}',[DatasetController::class,'delete'])->name('delete');
Route::get('aktif/{id?}',[DatasetController::class,'aktif'])->name('aktif'); Route::get('aktif/{id?}',[DatasetController::class,'aktif'])->name('aktif');
Route::get('generateTemplate/{id?}',[DatasetController::class,'generateTemplate'])->name('generateTemplate');
Route::get('download/{id?}',[DatasetController::class,'download'])->name('download');
}); });
Route::name('dataset-tambahan.')->prefix('dataset-tambahan')->group(function () { Route::name('dataset-tambahan.')->prefix('dataset-tambahan')->group(function () {