update
parent
503e4c8e30
commit
850b37c95d
|
|
@ -6,20 +6,23 @@ 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'] = Template::where('show_dashboard',1)->limit(4)->inRandomOrder()->get();
|
||||
$data['template'] = Template::limit(4)->inRandomOrder()->get();
|
||||
// $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['count'] = [
|
||||
'dataset' => Dataset::count(),
|
||||
'resource' => Template::count(),
|
||||
'resource' => TabelData::count(),
|
||||
'instansi' => Instansi::count(),
|
||||
];
|
||||
|
||||
|
|
@ -27,12 +30,15 @@ class FrontController extends Controller
|
|||
}
|
||||
function resource() {
|
||||
$data = [];
|
||||
$data['template'] = Template::simplePaginate(12);
|
||||
$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;
|
||||
|
||||
|
|
@ -40,19 +46,45 @@ class FrontController extends Controller
|
|||
}
|
||||
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 = $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');
|
||||
|
||||
$json = json_decode($item->data, true);
|
||||
$limit = $request->input('limit', 10);
|
||||
$offset = $request->input('offset', 0);
|
||||
foreach ($data as $rowId => $rows) {
|
||||
|
||||
$rows = array_slice($json, $offset, $limit);
|
||||
return response()->json([
|
||||
'total' => count($json),
|
||||
'rows' => $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) {
|
||||
|
|
@ -94,7 +126,7 @@ class FrontController extends Controller
|
|||
// $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->paginate(9);
|
||||
// }
|
||||
$data['dataset'] = $dataset->paginate(9);
|
||||
$data['template'] = Template::all();
|
||||
$data['template'] = TabelData::all();
|
||||
$data['instansi'] = Instansi::all();
|
||||
|
||||
return view('dataset',$data);
|
||||
|
|
@ -135,13 +167,13 @@ class FrontController extends Controller
|
|||
|
||||
$data['dataset'] = $dataset->paginate(9);
|
||||
|
||||
$data['template'] = Template::all();
|
||||
$data['template'] = TabelData::all();
|
||||
$data['instansi'] = Instansi::all();
|
||||
return view('dataset-tambahan',$data);
|
||||
}
|
||||
function search() {
|
||||
$data['topik'] = Topik::all();
|
||||
$data['template'] = Template::all();
|
||||
$data['template'] = TabelData::all();
|
||||
$data['instansi'] = Instansi::all();
|
||||
$data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(5)->get();
|
||||
return view('search',$data);
|
||||
|
|
|
|||
|
|
@ -164,34 +164,18 @@ class DatasetController extends Controller
|
|||
// dd(request()->all());
|
||||
try {
|
||||
$keyId = decode_id($request->secure_id);
|
||||
DB::beginTransaction();
|
||||
if(@$keyId){
|
||||
Validator::make($request->all(), [
|
||||
// 'name' => 'required',
|
||||
// 'instansi_id' => 'required',
|
||||
// 'template_id' => 'required',
|
||||
// 'publik' => 'required',
|
||||
])->validate();
|
||||
//INSERT DATASET;
|
||||
$dataset = Dataset::find($keyId);
|
||||
$dataset->tahun = $request->tahun;
|
||||
$dataset->tahun_data = $request->tahun_data;
|
||||
$dataset->name = $request->name;
|
||||
$dataset->deskripsi = $request->deskripsi;
|
||||
$dataset->save();
|
||||
|
||||
}else{
|
||||
// dd($request->all());
|
||||
// Validator::make($request->all(), [
|
||||
// 'name' => 'required',
|
||||
// 'instansi_id' => 'required',
|
||||
// 'template_id' => 'required',
|
||||
// 'publik' => 'required',
|
||||
// 'template_id' => 'required',
|
||||
// ])->validate();
|
||||
}
|
||||
|
||||
// $template = Template::find(decode_id($request->template_id));
|
||||
// $filename = pathinfo($tabelData->template_url, PATHINFO_FILENAME);
|
||||
// $modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
|
||||
// $importClass = "App\\Imports\\Dataset". ucfirst($filename)."Import";
|
||||
|
||||
DB::beginTransaction();
|
||||
// dd($request->all());
|
||||
try {
|
||||
//INSERT DATASET;
|
||||
//INSERT DATASET;
|
||||
$dataset = new Dataset;
|
||||
$dataset->instansi_id = decode_id($request->instansi_id);
|
||||
$dataset->ms_tabel_data_id = decode_id($request->template_id);
|
||||
|
|
@ -205,51 +189,42 @@ class DatasetController extends Controller
|
|||
$dataset->deskripsi = $request->deskripsi;
|
||||
$dataset->created_by = auth()->user()->id;
|
||||
$dataset->save();
|
||||
}
|
||||
|
||||
$tabelData = TabelData::find(decode_id($request->template_id));
|
||||
if(@$request->file){
|
||||
$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,
|
||||
]);
|
||||
}
|
||||
$import = new Import;
|
||||
Excel::import($import, $request->file('file'));
|
||||
$data = $import->getData();
|
||||
$count = 0;
|
||||
// dd($data);
|
||||
foreach ($data as $rowIndex => $row) {
|
||||
$rowId = $row[preg_replace('/[^a-z0-9]+/', '_', strtolower($tabelData->name)).'_'.date('Y')-1];
|
||||
unset($row[preg_replace('/[^a-z0-9]+/', '_', 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);
|
||||
return redirect()->back()->with([
|
||||
}
|
||||
|
||||
return redirect()->back()->with([
|
||||
'message' => 'Berhasil update data',
|
||||
'type' => 'success',
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollback();
|
||||
dd($e->getMessage());
|
||||
if ($e->getMessage() === "Start row (2) is beyond highest row (1)") {
|
||||
return redirect()->back()->with([
|
||||
'message' => $e->getMessage(),
|
||||
'type' => "error"
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
DB::rollback();
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<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>
|
||||
<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>
|
||||
<a href="{{url('opendata/dataset/download/'.encode_id(@$dataset->DatasetId))}}" 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">
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
</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>
|
||||
<span class="rounded-full text-[10px] hidden lg:block bg-[#103760] text-white px-2 py-1">{{$dataset->tabelData->name}}</span>
|
||||
</div>
|
||||
<div class="flex gap-1">
|
||||
<span>Bagikan : </span>
|
||||
|
|
@ -42,10 +42,26 @@
|
|||
<?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='.encode_id($keyId)) }}">
|
||||
<thead>
|
||||
<tr class="bg-primary-light text-primary">
|
||||
<th data-field="no" class="gridjs-td gridjs-th text-xs">No</th>
|
||||
@foreach ($tabel as $k => $key)
|
||||
<th data-field="{{$key->order}}" class="gridjs-td gridjs-th text-xs">{{ $key->name }}</th>
|
||||
@endforeach
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
|
||||
{{-- <table id="table"
|
||||
data-toggle="table"
|
||||
data-search="false"
|
||||
data-pagination="true"
|
||||
|
|
@ -61,10 +77,10 @@
|
|||
@endif
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</table> --}}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -93,7 +109,7 @@
|
|||
</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>
|
||||
<span class="rounded-full text-[10px] hidden lg:block bg-[#E9811A] text-white px-2 py-1">{{ substr($dataSet->tabelData->name,0,25) }}...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
</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>
|
||||
<span class="rounded-full text-[10px] hidden lg:block bg-[#E9811A] text-white px-2 py-1">{{ substr($dataSet->tabelData->name,0,25) }}...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@
|
|||
</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>
|
||||
<span class="rounded-full text-[10px] hidden lg:block bg-[#E9811A] text-white px-2 py-1">{{ substr($dataSet->tabelData->name,0,25) }}...</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<div class="grid lg:grid-cols-1 gap-3">
|
||||
<div class="">
|
||||
<label class="mb-3 required">Instansi</label>
|
||||
<select name="instansi_id" required class="form-input instansi_id select2 @error('instansi_id') is-invalid @enderror" id="instansi_id">
|
||||
<select name="instansi_id" {{ @$item ? 'disabled' : 'required' }} class="form-input instansi_id select2 @error('instansi_id') is-invalid @enderror" id="instansi_id">
|
||||
<option value="">-</option>
|
||||
@foreach($instansi as $dataInstansi)
|
||||
<option {{@$item->instansi_id == $dataInstansi->MsInstansiId ? 'selected' : ''}} value="{{encode_id($dataInstansi->MsInstansiId)}}">{{$dataInstansi->name}}</option>
|
||||
|
|
@ -31,14 +31,15 @@
|
|||
</div>
|
||||
<div class="">
|
||||
<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" {{ @$item ? 'disabled' : 'required' }} class="form-input template_id select2 @error('template_id') is-invalid @enderror" id="template_id">
|
||||
<option value="">Tabel {{@$item->tabelData->nomor_tabel}} - {{@$item->tabelData->name}}</option>
|
||||
</select>
|
||||
@error('template_id')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" class="btn bg-success btnDownload text-white btn-md mt-3"><i class="ri-download-2-line"></i> Download Template Excel</a>
|
||||
<a href="{{ url('opendata/dataset/generateTemplate/'.encode_id(@$item->ms_tabel_data_id)); }}" class="btn bg-success btnDownload text-white btn-md mt-3"><i class="ri-download-2-line"></i> Download Template Excel</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -54,8 +55,8 @@
|
|||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="mb-3 required">Upload File</label>
|
||||
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="form-input @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{@$item->file ? '' : 'required'}}>
|
||||
<label class="mb-3 {{ @$item ? '' : 'required' }} ">Upload File</label>
|
||||
<input type="file" accept=".xls,.xlsx" value="{{@$item->file ? @$item->file : old('file')}}" name="file" class="form-input @error('file') is-invalid @enderror" placeholder="Masukan File Dataset" {{ @$item ? 'disabled' : 'required' }} >
|
||||
<small><i>Masukan Ekstensi File : .xls,.xlsx</i></small>
|
||||
@if(@$item->file)
|
||||
<br>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ Route::name('opendata.')->prefix('opendata')->group(function () {
|
|||
Route::get('delete/{id?}',[DatasetController::class,'delete'])->name('delete');
|
||||
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::get('download/{id?}',[DatasetController::class,'download'])->name('download');
|
||||
});
|
||||
|
||||
Route::name('dataset-tambahan.')->prefix('dataset-tambahan')->group(function () {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use App\Http\Controllers\FrontController;
|
|||
use App\Http\Controllers\Auth\CustomLoginController;
|
||||
use App\Http\Controllers\Auth\CustomRegisterController;
|
||||
use App\Http\Controllers\AjaxController;
|
||||
use App\Http\Controllers\Opendata\DatasetController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
@ -34,6 +35,7 @@ Route::get('/login', [CustomLoginController::class,'index'])->name('login');
|
|||
Route::post('login',[CustomLoginController::class,'post_login'])->name('post_login');
|
||||
Route::get('register',[CustomRegisterController::class,'index'])->name('register');
|
||||
Route::post('register',[CustomRegisterController::class,'post_register'])->name('post_register');
|
||||
Route::get('opendata/dataset/download/{id?}',[DatasetController::class,'download'])->name('download');
|
||||
|
||||
Route::get('getInstansi/{type}',[AjaxController::class,'getInstansi'])->name('getInstansi');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue