update
parent
27858b277d
commit
503e4c8e30
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use Illuminate\Http\Request;
|
||||
use App\Models\Master\Instansi;
|
||||
use App\Models\Master\Template;
|
||||
use App\Models\Master\TabelData;
|
||||
use App\Models\Dataset;
|
||||
use App\Models\Dataset\DatasetTable45;
|
||||
use App\Models\Dataset\DatasetTable47;
|
||||
|
|
@ -19,24 +20,26 @@ class AjaxController extends Controller
|
|||
$resource = json_decode($instansi->resource_data);
|
||||
// dd($resource);
|
||||
|
||||
if(@$resource){
|
||||
$data = Template::whereIn('MsTemplateId',$resource)->count();
|
||||
// if(@$resource){
|
||||
// $data = Template::whereIn('MsTemplateId',$resource)->count();
|
||||
|
||||
if(@$data != 0){
|
||||
$data = Template::whereIn('MsTemplateId',$resource)->get();
|
||||
}else{
|
||||
$data = Template::all();
|
||||
}
|
||||
}else{
|
||||
$data = Template::all();
|
||||
}
|
||||
// if(@$data != 0){
|
||||
// $data = Template::whereIn('MsTemplateId',$resource)->get();
|
||||
// }else{
|
||||
// $data = Template::all();
|
||||
// }
|
||||
// }else{
|
||||
// $data = Template::all();
|
||||
// }
|
||||
|
||||
$data = TabelData::all();
|
||||
|
||||
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]['name'] = $filename.' - '.$value->name;
|
||||
$_data[$key]['excel'] = asset($value->template_url);
|
||||
$_data[$key]['id'] = encode_id($value->MsTabelDataId);
|
||||
$_data[$key]['name'] = 'Tabel '.$value->nomor_tabel.' - '.$value->name;
|
||||
$_data[$key]['excel'] = url('opendata/dataset/generateTemplate/'.encode_id($value->MsTabelDataId));
|
||||
}
|
||||
|
||||
return response()->json(['data' => $_data,'status' => true]);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use App\Models\Dataset;
|
|||
use App\Models\Master\Topik;
|
||||
use App\Models\Master\Instansi;
|
||||
use App\Models\Master\Template;
|
||||
use App\Models\Master\TabelData;
|
||||
use App\Models\Master\Group;
|
||||
use App\Repositories\Eloquent\DatasetRepository;
|
||||
|
||||
|
|
@ -37,9 +38,9 @@ class HomeController extends Controller
|
|||
// $data['dataset'] = Dataset::orderBy('DatasetId','DESC')->limit(10)->get();
|
||||
$data['group'] = Group::where('MsGroupId','!=',1)->where('alias','!=','admin')->get();
|
||||
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{
|
||||
$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);
|
||||
})->where('show_dashboard',1)->get();
|
||||
}
|
||||
|
|
@ -104,9 +105,9 @@ class HomeController extends Controller
|
|||
public function gridResource(Request $request)
|
||||
{
|
||||
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{
|
||||
$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);
|
||||
})->where('show_dashboard',1)->get();
|
||||
}
|
||||
|
|
@ -198,14 +199,14 @@ class HomeController extends Controller
|
|||
$data['id'] = decode_id($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['template'] = Template::where('MsTemplateId',decode_id($id))->first();
|
||||
$data['template'] = TabelData::where('MsTemplateId',decode_id($id))->first();
|
||||
$data['title'] = 'Dashboard '.@$data['dataset']->template->name;
|
||||
|
||||
return view($this->template.'.resource_detail',$data);
|
||||
}
|
||||
|
||||
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();
|
||||
$filename = pathinfo($template->template_url, PATHINFO_FILENAME);
|
||||
$modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
|
||||
|
|
|
|||
|
|
@ -11,8 +11,14 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
|
|||
use App\Models\Master\Instansi;
|
||||
use App\Models\Master\Topik;
|
||||
use App\Models\Master\Template;
|
||||
use App\Models\Master\TabelData;
|
||||
use App\Models\Master\TabelDataKolom;
|
||||
use App\Models\Dataset;
|
||||
use App\Models\TxDataset;
|
||||
use App\Repositories\Eloquent\DatasetRepository;
|
||||
use DB;
|
||||
use Excel;
|
||||
use App\Imports\Import;
|
||||
|
||||
class DatasetController extends Controller
|
||||
{
|
||||
|
|
@ -44,25 +50,51 @@ class DatasetController extends Controller
|
|||
$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');
|
||||
|
||||
$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);
|
||||
|
||||
|
||||
|
||||
// $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)
|
||||
{
|
||||
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{
|
||||
$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 = [];
|
||||
|
|
@ -101,10 +133,10 @@ class DatasetController extends Controller
|
|||
'id' => encode_id($row->id),
|
||||
'name' => @$row->name,
|
||||
'publik' => @$row->publik,
|
||||
'tahun' => @$row->tahun,
|
||||
'template' => @$row->template->name,
|
||||
'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)),
|
||||
'instansi' => @$row->instansi->name,
|
||||
'tahun' => @$row->tahun,
|
||||
'template' => @$row->tabelData->name,
|
||||
'created_at' => date('d-m-Y H:i:s',strtotime(@$row->created_at)),
|
||||
'instansi' => @$row->instansi->name,
|
||||
'action' => @$action,
|
||||
'status' => @$status,
|
||||
];
|
||||
|
|
@ -151,27 +183,76 @@ class DatasetController extends Controller
|
|||
// ])->validate();
|
||||
}
|
||||
|
||||
$template = Template::find(decode_id($request->template_id));
|
||||
$filename = pathinfo($template->template_url, PATHINFO_FILENAME);
|
||||
$modelClass = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
|
||||
$importClass = "App\\Imports\\Dataset". ucfirst($filename)."Import";
|
||||
// $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 = $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);
|
||||
return redirect()->back()->with([
|
||||
'message' => 'Berhasil update data',
|
||||
'type' => 'success',
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollback();
|
||||
dd($e->getMessage());
|
||||
return redirect()->back()->with([
|
||||
'message' => $e->getMessage(),
|
||||
'type' => "error"
|
||||
]);
|
||||
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();
|
||||
return redirect()->back()->with([
|
||||
'message' => $e->getMessage(),
|
||||
'type' => "error"
|
||||
|
|
@ -218,7 +299,7 @@ class DatasetController extends Controller
|
|||
|
||||
|
||||
$data['topik'] = Topik::all();
|
||||
$data['template'] = Template::all();
|
||||
$data['tabel'] = TabelData::all();
|
||||
return view($this->template.'.form',$data);
|
||||
}
|
||||
|
||||
|
|
@ -235,9 +316,10 @@ class DatasetController extends Controller
|
|||
$data['keyId'] = $id;
|
||||
$data['item'] = Dataset::find($keyId);
|
||||
|
||||
$template = Template::find($data['item']->template_id);
|
||||
$filename = pathinfo($template->template_url, PATHINFO_FILENAME);
|
||||
$data['modelClass'] = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
|
||||
$template = TabelData::find($data['item']->ms_tabel_data_id);
|
||||
$data['tabel'] = TabelDataKolom::where('ms_tabel_data_id',$template->MsTabelDataId)->orderBy('order','ASC')->get();
|
||||
// $filename = pathinfo($tabelData->template_url, PATHINFO_FILENAME);
|
||||
// $data['modelClass'] = "App\\Models\\Dataset\\Dataset" . ucfirst($filename);
|
||||
|
||||
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']);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ class Dataset extends Model
|
|||
return $this->belongsTo('App\Models\User','created_by');
|
||||
}
|
||||
|
||||
function template() {
|
||||
return $this->belongsTo('App\Models\Master\Template','template_id');
|
||||
function tabelData() {
|
||||
return $this->belongsTo('App\Models\Master\TabelData','ms_tabel_data_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@ class TabelData extends Model
|
|||
use HasFactory;
|
||||
|
||||
protected $table = 'ms_tabel_data';
|
||||
protected $primaryKey = 'MsTabelId';
|
||||
protected $primaryKey = 'MsTabelDataId';
|
||||
protected $guarded = [];
|
||||
|
||||
function dataset(){
|
||||
return $this->hasMany(\App\Models\Dataset::class, 'ms_tabel_data_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 = [];
|
||||
}
|
||||
|
|
@ -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) {
|
||||
//
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -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');
|
||||
}
|
||||
};
|
||||
|
|
@ -23,9 +23,9 @@ class DatabaseSeeder extends Seeder
|
|||
],[
|
||||
'name' => 'Administrator',
|
||||
'username' => 'administrator',
|
||||
'email' => 'admindikplhd@dlh.go.id',
|
||||
'email' => 'adminSLHD@dlh.go.id',
|
||||
'ms_group_id' => '1',
|
||||
'password' => Hash::make('##Dikplhd2025'),
|
||||
'password' => Hash::make('##SLHD2025'),
|
||||
]);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Register | DIKPLHD</title>
|
||||
<title>Register | SLHD</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta content="coderthemes" name="author">
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<img src="{{asset('assets/logo-dlh.png')}}" class="" alt="Light logo" width="35">
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{@$title}} | DIKPLHD</title>
|
||||
<title>{{@$title}} | SLHD</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{asset('assets/logo-dinas.ico')}}">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -32,13 +32,6 @@
|
|||
<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">
|
||||
{{-- <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>
|
||||
@error('template_id')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
|
|
@ -81,7 +74,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<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="">
|
||||
{{-- <option value="{{@$item->tahun ? @$item->tahun : (date('Y'))}}">{{@$item->tahun ? @$item->tahun : (date('Y'))}}</option> --}}
|
||||
@for($i = (date('Y')-5); date('Y') >= $i ; $i++)
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
</div>
|
||||
<div class="flex flex-col">
|
||||
<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 class="flex flex-between gap-3 bg-secondary/10 items-center p-2 rounded">
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
<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> 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> Download File</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
<i class="ri-database-2-line text-primary text-xl"></i>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
|
|
@ -81,9 +81,6 @@
|
|||
<div class="text-xs">{{$item->deskripsi}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$data = json_decode($item->data);
|
||||
?>
|
||||
|
||||
<div style="overflow-x:auto;">
|
||||
|
||||
|
|
@ -96,17 +93,16 @@
|
|||
>
|
||||
<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
|
||||
<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>
|
||||
</div>
|
||||
|
||||
{!! $modelClass::legend() !!}
|
||||
{{-- {!! $modelClass::legend() !!} --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ Route::name('opendata.')->prefix('opendata')->group(function () {
|
|||
Route::get('view/{id?}',[DatasetController::class,'view'])->name('view');
|
||||
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::name('dataset-tambahan.')->prefix('dataset-tambahan')->group(function () {
|
||||
|
|
|
|||
Loading…
Reference in New Issue