dikplhd/app/Http/Controllers/FrontController.php

178 lines
5.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Master\Template;
use App\Models\Master\Topik;
use App\Models\Master\Instansi;
use App\Models\TxDataset;
use App\Models\Dataset;
use App\Models\DatasetTambahan;
use App\Models\Master\TabelData;
use App\Models\Master\TabelDataKolom;
class FrontController extends Controller
{
function index() {
$data = [];
// $data['template'] = TabelData::where('show_dashboard',1)->limit(4)->inRandomOrder()->get();
$data['template'] = TabelData::limit(4)->inRandomOrder()->get();
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(4)->get();
// $data['instansi'] = Instansi::all();
$data['count'] = [
'dataset' => Dataset::count(),
'resource' => TabelData::count(),
'instansi' => Instansi::count(),
];
return view('index',$data);
}
function resource() {
$data = [];
$data['template'] = TabelData::simplePaginate(12);
return view('resource',$data);
}
function dataset_detail($id) {
$keyId = decode_id($id);
$data['dataset'] = Dataset::find($keyId);
$template = TabelData::find($data['dataset']->ms_tabel_data_id);
$data['tabel'] = TabelDataKolom::where('ms_tabel_data_id',$template->MsTabelDataId)->orderBy('order','ASC')->get();
$data['lainnya'] = Dataset::with(['instansi'])->where('DatasetId','!=',$keyId)->limit(4)->get();
$data['keyId'] = $keyId;
return view('dataset-detail',$data);
}
public function gridDetail(Request $request)
{
// $id = $request->query('id');
// $keyId = $id;
// $item = Dataset::find($keyId); // atau pakai ->pluck(), ->find(), dll
// $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
// ]);
$id = $request->query('id');
$keyId = decode_id($id);
$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');
foreach ($data as $rowId => $rows) {
$rowData = [
'no' => $rowId
];
foreach ($rows as $cell) {
$rowData[$cell->ms_tabel_data_kolom_id] = $cell->value;
}
$_data[] = $rowData;
}
return response()->json($_data);
}
function datasetTambahan_detail($id) {
$keyId = decode_id($id);
$data['dataset'] = DatasetTambahan::find($keyId);
$data['keyId'] = $keyId;
$data['lainnya'] = DatasetTambahan::with(['instansi'])->where('DatasetTambahanId','!=',$keyId)->limit(4)->get();
return view('dataset-tambahan-detail',$data);
}
function dataset() {
$data = [];
$key = @request()->key;
$tahun = @request()->tahun;
$instansi_id = decode_id(@request()->instansi_id);
$resource_id = decode_id(@request()->resource_id);
$dataset = Dataset::orderBy('DatasetId','DESC');
if(@$key){
$dataset->where('name','ilike','%'.@$key.'%');
}
if(@$tahun){
$dataset->where('tahun',@$tahun);
}
if(@$instansi_id){
$dataset->where('instansi_id',@$instansi_id);
}
if(@$resource_id){
$dataset->where('template_id',@$resource_id);
}
$data['dataset'] = $dataset->paginate(4);
$data['template'] = TabelData::all();
$data['instansi'] = Instansi::all();
return view('dataset',$data);
}
function datasetTambahan() {
$data = [];
$key = @request()->key;
$tahun = @request()->tahun;
$instansi_id = decode_id(@request()->instansi_id);
$resource_id = decode_id(@request()->resource_id);
$dataset = DatasetTambahan::orderBy('DatasetTambahanId','DESC');
if(@$key){
$dataset->where('name','ilike','%'.@$key.'%');
}
if(@$tahun){
$dataset->where('tahun',@$tahun);
}
if(@$instansi_id){
$dataset->where('instansi_id',@$instansi_id);
}
if(@$resource_id){
$dataset->where('template_id',@$resource_id);
}
// if(@request()->key){
// $data['dataset'] = DatasetTambahan::->orderBy('DatasetTambahanId','DESC')->paginate(10);
// }else{
// $data['dataset'] = DatasetTambahan::orderBy('DatasetTambahanId','DESC')->paginate(10);
// }
$data['dataset'] = $dataset->paginate(9);
$data['template'] = TabelData::all();
$data['instansi'] = Instansi::all();
return view('dataset-tambahan',$data);
}
function search() {
$data['topik'] = Topik::all();
$data['template'] = TabelData::all();
$data['instansi'] = Instansi::all();
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(5)->get();
return view('search',$data);
}
}