update
parent
2787e75b81
commit
e886afef4f
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Services\DashboardAdaptationService;
|
||||
use App\Services\DashboardMitigationService;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\LembarPengesahan;
|
||||
|
||||
class LembarPengesahanController extends Controller
|
||||
{
|
||||
protected $title = 'Lembar Pengesahan';
|
||||
protected $template = 'modules.pengesahan';
|
||||
protected $route = 'modules.pengesahan';
|
||||
|
||||
public function __construct(DashboardAdaptationService $adaptationService,DashboardMitigationService $mitigationService)
|
||||
{
|
||||
$this->adaptationService = $adaptationService;
|
||||
$this->mitigationService = $mitigationService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data['route'] = $this->route;
|
||||
$data['title'] = $this->title;
|
||||
|
||||
return view($this->template.'.index',$data);
|
||||
}
|
||||
|
||||
public function grid()
|
||||
{
|
||||
$data = LembarPengesahaan::where('tahun',date('Y'))->get();
|
||||
$_data = [];
|
||||
|
||||
foreach ($data as $key => $row) {
|
||||
|
||||
$btn = '<a href="' . url('master/agency/update/').'/'.encode_id($row->id). '" class="btn btn-sm w-100 mb-1 btn-primary">Edit</a>';
|
||||
$btn .= ' <form action="' . route($this->route.'.destroy', $row->id) . '" method="POST" style="display: inline;" class="delete-form">';
|
||||
$btn .= csrf_field();
|
||||
$btn .= method_field('DELETE');
|
||||
$btn .= '<button type="button" class="btn btn-sm btn-danger delete-button remove_data">Hapus</button>';
|
||||
$btn .= '</form>';
|
||||
|
||||
if ($row->row_status == 1) {
|
||||
$status = '<span class="badge bg-success">Aktif</span>';
|
||||
} else {
|
||||
$status = '<span class="badge bg-danger">Tidak Aktif</span>';
|
||||
}
|
||||
|
||||
$_data[] = [
|
||||
'no' => $key+1,
|
||||
'name' => $row->name,
|
||||
'scope' => $row->scope,
|
||||
'status' => $status,
|
||||
'action' => @$btn,
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
return response()->json($_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$year = (int) request()->input('adaptationYear', date('Y'));
|
||||
$adaptasi = $this->adaptationService->getDashboardData($year);
|
||||
$mitigasi = $this->mitigationService->getDashboardData($year);
|
||||
|
||||
|
||||
$data['route'] = $this->route;
|
||||
$data['title'] = $this->title;
|
||||
$data['kegiatanAdaptasi'] = $adaptasi['tableData'];
|
||||
$data['kegiatanMitigasi'] = $mitigasi['tableData'];
|
||||
|
||||
return view($this->template.'.form',$data);
|
||||
}
|
||||
|
||||
public function update($id = null)
|
||||
{
|
||||
$keyId = decode_id($id);
|
||||
$data['title'] = $this->title;
|
||||
$data['route'] = $this->route;
|
||||
$data['keyId'] = $id;
|
||||
$data['item'] = LembarPengesahaan::where('id',$keyId)->first();
|
||||
|
||||
return view($this->template.'.form',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'agency_id' => 'required',
|
||||
'file' => 'required',
|
||||
'type' => 'required',
|
||||
]);
|
||||
|
||||
try {
|
||||
if(@$request->secure_id){
|
||||
$ag = LembarPengesahaan::find(decode_id(@$request->secure_id));
|
||||
$ag->agency_id = $request->agency_id;
|
||||
$ag->type = $request->type;
|
||||
$ag->file = $request->file;
|
||||
$ag->save();
|
||||
}else{
|
||||
$ag = new LembarPengesahan;
|
||||
$ag->agency_id = $request->agency_id;
|
||||
$ag->type = $request->type;
|
||||
$ag->file = $request->file;
|
||||
$ag->status = 1;
|
||||
$ag->save();
|
||||
}
|
||||
|
||||
return redirect()->route($this->route.'.index')->with('success', 'Lembar Pengesahan berhasil ditambahkan.');
|
||||
} catch (\Exception $e) {
|
||||
return back()->withErrors(['error' => 'Lembar Pengesahan gagal disimpan. Silakan coba lagi. Error: ' . $e->getMessage()]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
$data['ar'] = LembarPengesahaan::find($id);
|
||||
$data['route'] = $this->route;
|
||||
$data['title'] = $this->title;
|
||||
return view($this->template.'.form', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class LembarPengesahan extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
protected $table = 'lembar_pengesahan';
|
||||
protected $primaryKey = 'LembarPengesahanId';
|
||||
protected $guarded = [];
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?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('lembar_pengesahan', function (Blueprint $table) {
|
||||
$table->id('LembarPengesahanId');
|
||||
$table->integer('user_id');
|
||||
$table->string('agency_id');
|
||||
$table->year('tahun');
|
||||
$table->string('type'); //Adaptasi, Mitigasi, Inventory
|
||||
$table->json('sektor')->nullable();
|
||||
$table->json('form_id')->nullable();
|
||||
$table->string('file')->nullable();
|
||||
$table->text('keterangan')->nullable();
|
||||
$table->integer('status')->default(0);
|
||||
$table->timestampsTz();
|
||||
$table->softdeletesTz();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('lembar_pengesahans');
|
||||
}
|
||||
};
|
||||
|
|
@ -72,11 +72,11 @@
|
|||
<td>{{ $a->sektor }}</td>
|
||||
<td>{{ $a->sub_sektor }}</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ route($route.'.view', $a->id) }}" class="text-secondary me-2">
|
||||
<i class="ti ti-eye"></i>
|
||||
<a href="{{ route($route.'.view', $a->id) }}" class="btn btn-warning btn-sm">
|
||||
<i class="mdi mdi-eye-outline"></i>
|
||||
</a>
|
||||
<a href="{{ route($route.'.edit', $a->id) }}" class="text-secondary">
|
||||
<i class="ti ti-pencil"></i>
|
||||
<a href="{{ route($route.'.edit', $a->id) }}" class="btn btn-primary btn-sm">
|
||||
<i class="bx bx-edit"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -83,11 +83,11 @@
|
|||
</td>
|
||||
<td class="text-center">{{ $m->revisi ?? '--' }}</td>
|
||||
<td class="text-center">
|
||||
<a href="{{ route($route.'.view', $m->id) }}" class="text-secondary me-2">
|
||||
<i class="ti ti-eye"></i>
|
||||
<a href="{{ route($route.'.view', $m->id) }}" class="btn btn-warning btn-sm">
|
||||
<i class="mdi mdi-eye-outline"></i>
|
||||
</a>
|
||||
<a href="{{ route($route.'.edit', $m->id) }}" class="text-secondary">
|
||||
<i class="ti ti-pencil"></i>
|
||||
<a href="{{ route($route.'.edit', $m->id) }}" class="btn btn-primary btn-sm">
|
||||
<i class="bx bx-edit"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
|
||||
<br/><br/>
|
||||
<form action="{{ route('adaptasi-form.update', $adaptation->id) }}" method="POST" onsubmit="return false;">
|
||||
<form action="{{ route('modules.adaptasi-form.update', $adaptation->id) }}" method="POST" onsubmit="return false;">
|
||||
@csrf
|
||||
|
||||
<div class="ml-1 mt-4 d-flex justify-content-between align-items-center">
|
||||
|
|
@ -95,7 +95,7 @@
|
|||
<input type="text" class="form-control" name="dokumen" placeholder="Masukkan Dokumen/Kebijakan" value="{{ old('dokumen', $adaptation->dokumen) }}">
|
||||
</div>
|
||||
<div class="mt-4 mb-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse2">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse2">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -157,7 +157,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mt-4 mb-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse3">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse3">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -181,7 +181,7 @@
|
|||
<textarea class="form-control" name="detail_kegiatan" id="detail_kegiatan" rows="3" placeholder="Isi detail kegiatan di sini">{{ old('detail_kegiatan', $adaptation->detail_kegiatan) }}</textarea>
|
||||
</div>
|
||||
<div class="mt-4 mb-4 text-right">
|
||||
<button type="submit" id="final-submit" class="btn btn-submit px-4 py-2">
|
||||
<button type="submit" id="final-submit" class="btn btn-submit btn-primary px-4 py-2">
|
||||
Simpan
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -200,6 +200,7 @@
|
|||
@section('js')
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||
<script>
|
||||
var base_url = '{{ url("/") }}';
|
||||
// ------- ALOKASI AND REALISASI --------
|
||||
function formatCurrency(val) {
|
||||
if (!val) return '';
|
||||
|
|
@ -296,7 +297,7 @@
|
|||
return txt.value;
|
||||
}
|
||||
function loadSektor(selectedValue = null) {
|
||||
return $.get('/adaptasi/form-adaptasi-sector-dropdown', {})
|
||||
return $.get(base_url+'/adaptasi/form-adaptasi-sector-dropdown', {})
|
||||
.then(data => {
|
||||
const $dropdown = $('#sektor-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Sektor</option>')
|
||||
|
|
@ -309,7 +310,7 @@
|
|||
}
|
||||
|
||||
function loadSubSektor(sector, selectedValue = null) {
|
||||
return $.get('/adaptasi/form-adaptasi-subsector-dropdown', { sector })
|
||||
return $.get(base_url+'/adaptasi/form-adaptasi-subsector-dropdown', { sector })
|
||||
.then(data => {
|
||||
const $dropdown = $('#subsektor-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Sub-Sektor</option>');
|
||||
|
|
@ -322,7 +323,7 @@
|
|||
}
|
||||
|
||||
function loadKategoriAksi(sector, subSector, selectedValue = null) {
|
||||
return $.get('/adaptasi/form-adaptasi-kategoriaksi-dropdown', { sub_sector: subSector, sector: sector })
|
||||
return $.get(base_url+'/adaptasi/form-adaptasi-kategoriaksi-dropdown', { sub_sector: subSector, sector: sector })
|
||||
.then(data => {
|
||||
const $dropdown = $('#kategoriaksi-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Kategori Aksi</option>');
|
||||
|
|
@ -335,7 +336,7 @@
|
|||
}
|
||||
|
||||
function loadJenisAksi(sector, subSector, kategori, selectedValue = null) {
|
||||
return $.get('/adaptasi/form-adaptasi-jenisaksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori })
|
||||
return $.get(base_url+'/adaptasi/form-adaptasi-jenisaksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori })
|
||||
.then(data => {
|
||||
const $dropdown = $('#jenisaksi-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Jenis Aksi</option>');
|
||||
|
|
@ -348,7 +349,7 @@
|
|||
}
|
||||
|
||||
function loadAksi(sector, subSector, kategori, jenis, selectedValue = null) {
|
||||
return $.get('/adaptasi/form-adaptasi-aksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori, jenis: jenis })
|
||||
return $.get(base_url+'/adaptasi/form-adaptasi-aksi-dropdown', { sub_sector: subSector, sector: sector, kategori: kategori, jenis: jenis })
|
||||
.then(data => {
|
||||
const $dropdown = $('#aksi-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Aksi</option>');
|
||||
|
|
@ -494,7 +495,7 @@
|
|||
formData += '&adaptation_id=' + encodeURIComponent(adaptationId);
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('adaptasi-form.store-part1') }}", formData)
|
||||
$.post("{{ route('modules.adaptasi-form.store-part1') }}", formData)
|
||||
.done(response => {
|
||||
if(response.success) {
|
||||
$('#collapse1').one('hidden.bs.collapse', () => {
|
||||
|
|
@ -520,7 +521,7 @@
|
|||
let formData = $('#collapse2').find('input, select, textarea').serialize();
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('adaptasi-form.store-part2') }}", formData)
|
||||
$.post("{{ route('modules.adaptasi-form.store-part2') }}", formData)
|
||||
.done(function(response) {
|
||||
if(response.success) {
|
||||
$('#collapse2').one('hidden.bs.collapse', () => {
|
||||
|
|
@ -565,16 +566,4 @@
|
|||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
rror(xhr);
|
||||
alert('Terjadi kesalahan saat menyimpan data.');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@endsection
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
</div>
|
||||
|
||||
<br/><br/>
|
||||
<form action="{{ route('mitigasi-form.update', $mitigation->id) }}" method="POST" onsubmit="return false;">
|
||||
<form action="{{ route('modules.mitigasi-form.update', $mitigation->id) }}" method="POST" onsubmit="return false;">
|
||||
@csrf
|
||||
|
||||
<div class="ml-1 mt-4 d-flex justify-content-between align-items-center">
|
||||
|
|
@ -110,7 +110,7 @@
|
|||
</div>
|
||||
|
||||
<div class="mt-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse2">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse2">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -394,7 +394,7 @@
|
|||
</div>
|
||||
|
||||
<div class="mt-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse3">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse3">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -484,7 +484,7 @@
|
|||
</div>
|
||||
|
||||
<div class="mt-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse4">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse4">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -523,22 +523,116 @@
|
|||
|
||||
@if (!empty($sumberDataList))
|
||||
@foreach ($sumberDataList as $index => $sumber)
|
||||
<x-sumber-data-card
|
||||
<div class="card card-box sumber-data-card mt-4 mb-4">
|
||||
<div class="card-header" id="heading4-{{ $index + 1 }}">
|
||||
<h6 class="mb-0">Sumber Data {{ $index + 1 }}</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="card card-box">
|
||||
<div class="card-header" id="heading4-{{ $index + 1 }}-1">
|
||||
<h6 class="mb-0">Sumber Data</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="titleSourceReference{{ $index + 1 }}">
|
||||
JUDUL SUMBER DATA
|
||||
</label>
|
||||
<input type="text" class="form-control" name="titleSourceReference[]" id="titleSourceReference{{ $index + 1 }}" value="{{ $sumber['title'] }}">
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="yearSourceReference{{ $index + 1 }}">
|
||||
Tahun
|
||||
</label>
|
||||
<select class="form-control select-button" name="yearSourceReference[]" id="yearSourceReference{{ $index + 1 }}">
|
||||
<option value="">-- Pilih Tahun --</option>
|
||||
@foreach($years as $year)
|
||||
<option value="{{ $year }}" {{ $year == $sumber['year'] ? 'selected' : '' }}>
|
||||
{{ $year }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="linkSourceReference{{ $index + 1 }}">
|
||||
TAUTAN URL FILE
|
||||
</label>
|
||||
<input type="text" class="form-control" name="linkSourceReference[]" id="linkSourceReference{{ $index + 1 }}" value="{{ $sumber['link'] }}">
|
||||
<p class="text-muted mt-1" style="font-size: 10px;">
|
||||
Tautan URL langsung menuju file (jika dapat diunduh)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button type="button" class="btn btn-danger btn-delete px-4 py-2" onclick="removeSumberData(this)">Hapus</button>
|
||||
</div>
|
||||
</div>
|
||||
{{-- <x-sumber-data-card
|
||||
:number="$index + 1"
|
||||
:title="$sumber['title'] ?? ''"
|
||||
:yearSelected="$sumber['year'] ?? ''"
|
||||
:link="$sumber['link'] ?? ''"
|
||||
:years="$years"
|
||||
/>
|
||||
/> --}}
|
||||
@endforeach
|
||||
@else
|
||||
<x-sumber-data-card :number="1" :years="$years" />
|
||||
<div class="card card-box sumber-data-card mt-4 mb-4">
|
||||
<div class="card-header" id="heading4-1">
|
||||
<h6 class="mb-0">Sumber Data 1</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="card card-box">
|
||||
<div class="card-header" id="heading4-1-1">
|
||||
<h6 class="mb-0">Sumber Data</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="titleSourceReference1">
|
||||
JUDUL SUMBER DATA
|
||||
</label>
|
||||
<input type="text" class="form-control" name="titleSourceReference[]" id="titleSourceReference1" value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="yearSourceReference1">
|
||||
Tahun
|
||||
</label>
|
||||
<select class="form-control select-button" name="yearSourceReference[]" id="yearSourceReference1">
|
||||
<option value="">-- Pilih Tahun --</option>
|
||||
@foreach($years as $year)
|
||||
<option value="{{ $year }}">
|
||||
{{ $year }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group mt-4">
|
||||
<label class="label-title" for="linkSourceReference1">
|
||||
TAUTAN URL FILE
|
||||
</label>
|
||||
<input type="text" class="form-control" name="linkSourceReference[]" id="linkSourceReference1" value="">
|
||||
<p class="text-muted mt-1" style="font-size: 10px;">
|
||||
Tautan URL langsung menuju file (jika dapat diunduh)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<button type="button" class="btn btn-danger btn-delete px-4 py-2" onclick="removeSumberData(this)">Hapus</button>
|
||||
</div>
|
||||
</div>
|
||||
{{-- <x-sumber-data-card :number="1" :years="$years" /> --}}
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<template id="sumberDataTemplate">
|
||||
{!! str_replace('__INDEX__', '${index}',
|
||||
view('components.sumber-data-card', [
|
||||
view('modules.components.sumber-data-card', [
|
||||
'number' => '__INDEX__',
|
||||
'years' => $years,
|
||||
'title' => '',
|
||||
|
|
@ -558,7 +652,7 @@
|
|||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="mt-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse5">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse5">
|
||||
Selanjutnya
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -652,7 +746,7 @@
|
|||
</div>
|
||||
|
||||
<div class="mt-4 mb-4 text-right">
|
||||
<button type="button" class="btn btn-submit px-4 py-2" data-target="#collapse6">
|
||||
<button type="button" class="btn btn-submit btn-primary px-4 py-2" data-target="#collapse6">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -701,6 +795,7 @@
|
|||
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
|
||||
<script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js"></script>
|
||||
<script>
|
||||
var base_url = '{{ url("/") }}';
|
||||
// -------- MAP INITIALIZATION --------
|
||||
let marker = null;
|
||||
let map = null;
|
||||
|
|
@ -934,7 +1029,7 @@
|
|||
|
||||
// -------- DROPDOWN LOADING FUNCTIONS WITH PROMISE --------
|
||||
function loadSektor(selectedValue = null) {
|
||||
return $.get('/mitigasi/form-mitigasi-sector-dropdown', {})
|
||||
return $.get(base_url+'/mitigasi/form-mitigasi-sector-dropdown', {})
|
||||
.then(data => {
|
||||
const $dropdown = $('#sektor-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Sektor</option>')
|
||||
|
|
@ -947,7 +1042,7 @@
|
|||
}
|
||||
|
||||
function loadSubSektor(sector, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-mitigasi-subsector-dropdown', { sector })
|
||||
return $.get(base_url+'/mitigasi/form-mitigasi-subsector-dropdown', { sector })
|
||||
.then(data => {
|
||||
const $dropdown = $('#subsektor-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Sub-Sektor</option>');
|
||||
|
|
@ -960,7 +1055,7 @@
|
|||
}
|
||||
|
||||
function loadPerhitungan(sector, subSector, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-mitigasi-perhitungan-dropdown', { sub_sector: subSector, sector: sector })
|
||||
return $.get(base_url+'/mitigasi/form-mitigasi-perhitungan-dropdown', { sub_sector: subSector, sector: sector })
|
||||
.then(data => {
|
||||
const $dropdown = $('#perhitungan-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Kategori/ Mode Perhitungan</option>');
|
||||
|
|
@ -973,7 +1068,7 @@
|
|||
}
|
||||
|
||||
function loadSubAktivitas(sector, subSector, perhitungan, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-mitigasi-subaktivitas-dropdown', { sub_sector: subSector, sector: sector, activity: perhitungan })
|
||||
return $.get(base_url+'/mitigasi/form-mitigasi-subaktivitas-dropdown', { sub_sector: subSector, sector: sector, activity: perhitungan })
|
||||
.then(data => {
|
||||
const $dropdown = $('#subactivity-dropdown').empty();
|
||||
$dropdown.append('<option value="">Pilih Sub-Aktivitas</option>');
|
||||
|
|
@ -1008,7 +1103,7 @@
|
|||
}
|
||||
|
||||
function loadRAD(subSector, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-mitigasi-aksi-rad', { sub_sector: subSector })
|
||||
return $.get(base_url+'/mitigasi/form-mitigasi-aksi-rad', { sub_sector: subSector })
|
||||
.then(data => {
|
||||
const $dropdown = $('#rad-dropdown').empty();
|
||||
$dropdown.append('<option value="">Tambah kegiatan di luar RAD</option>');
|
||||
|
|
@ -1021,7 +1116,7 @@
|
|||
}
|
||||
|
||||
function loadKabupaten(selectedValue = null) {
|
||||
return $.get('/mitigasi/form-kabupaten', {})
|
||||
return $.get(base_url+'/mitigasi/form-kabupaten', {})
|
||||
.then(data => {
|
||||
const $dropdown = $('#kabupaten').empty();
|
||||
$dropdown.append('<option value="">Pilih Kabupaten Kota</option>');
|
||||
|
|
@ -1034,7 +1129,7 @@
|
|||
}
|
||||
|
||||
function loadKecamatan(kabkotId, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-kecamatan', {kabkot_id: kabkotId})
|
||||
return $.get(base_url+'/mitigasi/form-kecamatan', {kabkot_id: kabkotId})
|
||||
.then(data => {
|
||||
const $dropdown = $('#kecamatan').empty();
|
||||
$dropdown.append('<option value="">Pilih Kecamatan</option>');
|
||||
|
|
@ -1047,7 +1142,7 @@
|
|||
}
|
||||
|
||||
function loadKelurahan(kabkotId, kecId, selectedValue = null) {
|
||||
return $.get('/mitigasi/form-kelurahan', {kabkot_id: kabkotId, kec_id: kecId})
|
||||
return $.get(base_url+'/mitigasi/form-kelurahan', {kabkot_id: kabkotId, kec_id: kecId})
|
||||
.then(data => {
|
||||
const $dropdown = $('#kelurahan').empty();
|
||||
$dropdown.append('<option value="">Pilih Kelurahan</option>');
|
||||
|
|
@ -1081,7 +1176,7 @@
|
|||
// $('#section4').show();
|
||||
// $('#accordion-4').html('<p class="text-muted ml-1">Loading...</p>');
|
||||
|
||||
// $.get('/mitigasi/form-mitigasi-question', { mitigation_id })
|
||||
// $.get(base_url+'/mitigasi/form-mitigasi-question', { mitigation_id })
|
||||
// .done(data => {
|
||||
// if (!data || !data.length) {
|
||||
// $('#accordion-4').html(
|
||||
|
|
@ -1306,7 +1401,7 @@
|
|||
// ${allHtml}
|
||||
// ${multipleLayout}
|
||||
// <div class="mt-4 text-right">
|
||||
// <button type="submit" id="final-submit" class="btn btn-submit px-4 py-2">
|
||||
// <button type="submit" id="final-submit" class="btn btn-submit btn-primary px-4 py-2">
|
||||
// Submit
|
||||
// </button>
|
||||
// </div>
|
||||
|
|
@ -1504,7 +1599,7 @@
|
|||
$('#section4').show();
|
||||
$('#accordion-4').html('<p class="text-muted ml-1">Loading...</p>');
|
||||
|
||||
$.get('/mitigasi/form-mitigasi-question', { mitigation_id })
|
||||
$.get(base_url+'/mitigasi/form-mitigasi-question', { mitigation_id })
|
||||
.done(data => {
|
||||
if (!data || !data.length) {
|
||||
$('#accordion-4').html(
|
||||
|
|
@ -1736,7 +1831,7 @@
|
|||
${allHtml}
|
||||
${multipleLayout}
|
||||
<div class="mt-4 text-right">
|
||||
<button type="submit" id="final-submit" class="btn btn-submit px-4 py-2">
|
||||
<button type="submit" id="final-submit" class="btn btn-submit btn-primary px-4 py-2">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
|
|
@ -2129,7 +2224,7 @@
|
|||
formData += '&mitigation_id=' + encodeURIComponent(mitigationId);
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('mitigasi-form.store-part1') }}", formData)
|
||||
$.post("{{ route('modules.mitigasi-form.store-part1') }}", formData)
|
||||
.done(response => {
|
||||
if(response.success){
|
||||
$('#collapse1').one('hidden.bs.collapse', () => {
|
||||
|
|
@ -2155,7 +2250,7 @@
|
|||
let formData = $('#collapse2').find('input, select, textarea').serialize();
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('mitigasi-form.store-part2') }}", formData)
|
||||
$.post("{{ route('modules.mitigasi-form.store-part2') }}", formData)
|
||||
.done(function(response) {
|
||||
if (response.success) {
|
||||
$('#collapse2').one('hidden.bs.collapse', () => {
|
||||
|
|
@ -2177,7 +2272,7 @@
|
|||
let formData = $('#collapse3').find('input, select, textarea').serialize();
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('mitigasi-form.store-part3') }}", formData)
|
||||
$.post("{{ route('modules.mitigasi-form.store-part3') }}", formData)
|
||||
.done(function(response) {
|
||||
if (response.success) {
|
||||
$('#collapse3').one('hidden.bs.collapse', () => {
|
||||
|
|
@ -2205,7 +2300,7 @@
|
|||
|
||||
formData.append('_token', document.querySelector('meta[name="csrf-token"]').getAttribute('content'));
|
||||
|
||||
fetch("{{ route('mitigasi-form.store-part4') }}", {
|
||||
fetch("{{ route('modules.mitigasi-form.store-part4') }}", {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
|
||||
body: formData.toString()
|
||||
|
|
@ -2232,7 +2327,7 @@
|
|||
let formData = $('#collapse5').find('input, select, textarea').serialize();
|
||||
formData += '&_token=' + $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.post("{{ route('mitigasi-form.store-part5') }}", formData)
|
||||
$.post("{{ route('modules.mitigasi-form.store-part5') }}", formData)
|
||||
.done(function(response) {
|
||||
if(response.success) {
|
||||
$('#collapse5').one('hidden.bs.collapse', () => {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,168 @@
|
|||
@extends('layouts.master')
|
||||
@section('content')
|
||||
<div class="">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="mdi mdi-note"></i> {{$title}}
|
||||
</div>
|
||||
<form action="{{route($route.'.store')}}" method="POST" class="" enctype="multipart/form-data">
|
||||
{{csrf_field()}}
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<input type="hidden" name="secure_id" value="{{@$keyId}}">
|
||||
</div>
|
||||
|
||||
<div class="col-12 mb-3">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Jenis Pengesahan</label>
|
||||
<div class="col-12 ">
|
||||
<select name="type" class="form-control select2 type" id="" required>
|
||||
<option value="">-- PILIH JENIS PENGESAHAN --</option>
|
||||
<option {{@$item->type == 'adaptasi' ? 'selected' : ''}} value="adaptasi">Adaptasi</option>
|
||||
<option {{@$item->type == 'mitigasi' ? 'selected' : ''}} value="mitigasi">Mitigasi</option>
|
||||
<option {{@$item->type == 'inventory' ? 'selected' : ''}} value="inventory">Inventory</option>
|
||||
</select>
|
||||
@error('type')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mb-3 d-none inventory">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Sektor</label>
|
||||
<div class="col-12 ">
|
||||
<select name="sektor" class="form-control select2" id="" required>
|
||||
<option value="">-- PILIH SEKTOR --</option>
|
||||
</select>
|
||||
@error('type')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mb-3 d-none inventory">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Sub Sektor</label>
|
||||
<div class="col-12 ">
|
||||
<select name="subsektor[]" class="form-control select2" id="" required multiple>
|
||||
</select>
|
||||
@error('type')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-12 mb-3 d-none adaptasi">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Kegiatan Adaptasi</label>
|
||||
<div class="col-12 ">
|
||||
<select name="kegiatan_adaptasi[]" class="form-control select2" multiple id="" required>
|
||||
@foreach($kegiatanAdaptasi as $a)
|
||||
<option value="{{ $a->id }}">
|
||||
{{ $a->nama_kegiatan }} >>
|
||||
{{ $a->sektor }} >>
|
||||
{{ $a->sub_sektor }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error('kegiatan')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mb-3 d-none mitigasi">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Kegiatan Mitigasi</label>
|
||||
<div class="col-12 ">
|
||||
<select name="kegiatan_mitigasi[]" class="form-control select2" multiple id="" required>
|
||||
@foreach($kegiatanMitigasi as $m)
|
||||
<option value="{{ $m->id }}">
|
||||
{{ Str::limit($m->nama_kegiatan, 60) }} >>
|
||||
{{ $m->sektor }} >>
|
||||
{{ $m->sub_sektor }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error('kegiatan')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 mb-3">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">Keterangan (Opsional)</label>
|
||||
<div class="col-12 ">
|
||||
<textarea name="keterangan" class="form-control" id="" cols="10" rows="5">{{@$item->keterangan}}</textarea>
|
||||
@error('keterangan')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 mb-3">
|
||||
<div class="form-group">
|
||||
<label class="col-xl-12 form-label">File Dokumen</label>
|
||||
<div class="col-12 ">
|
||||
<input type="file" name="file" accept=".pdf" class="form-control" id="">
|
||||
@error('file')
|
||||
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<a href="{{route($route.'.index')}}" class="btn btn-danger"><i class="mdi mdi-cancel"></i> Batal</a>
|
||||
<button type="submit" class="btn btn-success"><i class="mdi mdi-content-save-outline"></i> Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@section('js')
|
||||
<script>
|
||||
$('.type').on('change',function(){
|
||||
var val = $(this).val();
|
||||
if(val == 'inventory'){
|
||||
$('.mitigasi').addClass('d-none');
|
||||
$('.adaptasi').addClass('d-none');
|
||||
$('.inventory').removeClass('d-none');
|
||||
}else if(val == 'adaptasi'){
|
||||
$('.mitigasi').addClass('d-none');
|
||||
$('.adaptasi').removeClass('d-none');
|
||||
$('.inventory').addClass('d-none');
|
||||
}else if(val == 'mitigasi'){
|
||||
$('.mitigasi').removeClass('d-none');
|
||||
$('.adaptasi').addClass('d-none');
|
||||
$('.inventory').addClass('d-none');
|
||||
}else{
|
||||
$('.mitigasi').addClass('d-none');
|
||||
$('.adaptasi').addClass('d-none');
|
||||
$('.inventory').addClass('d-none');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
@extends('layouts.master')
|
||||
|
||||
@section('css')
|
||||
@endsection
|
||||
@section('content')
|
||||
<div class="">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="toolbar">
|
||||
<a href="{{route($route.'.create')}}" id="btn-add" class="btn btn-primary">
|
||||
<i class="mdi mdi-plus"></i> Tambah Data
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<table class="table w-100"
|
||||
data-search="true"
|
||||
data-toggle="table"
|
||||
data-pagination="true"
|
||||
data-toolbar="#toolbar"
|
||||
data-show-refresh="false"
|
||||
data-url="{{route($route.'.grid')}}"
|
||||
data-ajax-options='{"xhrFields": {"withCredentials": true}}'
|
||||
data-sort-name="ids"
|
||||
data-sort-order="desc"
|
||||
data-page-size="10"
|
||||
data-id-field="id"
|
||||
id="grid-data">
|
||||
<thead class="table-secondary text-primary">
|
||||
<tr>
|
||||
<th data-width="15%" class="text-center" data-field="action">#</th>
|
||||
<th data-field="agency">Instansi</th>
|
||||
<th data-field="type">Jenis Pengesahan</th>
|
||||
<th data-field="file">File</th>
|
||||
<th data-field="status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@section('js')
|
||||
<script type="text/javascript">
|
||||
$("#grid-data").on("click", ".remove_data", function() {
|
||||
var base_url = $(this).attr('data-href');
|
||||
var id = $(this).attr('data-id');
|
||||
Swal.fire({
|
||||
title: "Hapus Data!",
|
||||
text: "Apa anda yakin ingin menghapus data ini ?",
|
||||
icon: "warning",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#DD6B55",
|
||||
confirmButtonText: "Ya Hapus Sekarang",
|
||||
cancelButtonText: "Tidak"
|
||||
}).then((result) => {
|
||||
|
||||
if (result.isConfirmed) {
|
||||
|
||||
request = $.ajax({
|
||||
url: base_url,
|
||||
xhrFields: {
|
||||
withCredentials: true
|
||||
},
|
||||
type: "GET",
|
||||
});
|
||||
|
||||
// Callback handler that will be called on success
|
||||
request.done(function(response, textStatus, jqXHR){
|
||||
console.log(response);
|
||||
alertify.success("Berhasil Menhapus Data");
|
||||
$('#grid-data').bootstrapTable('refresh');
|
||||
});
|
||||
|
||||
// Callback handler that will be called on failure
|
||||
request.fail(function (jqXHR, textStatus, errorThrown){
|
||||
alertify.error("Gagal " + textStatus, errorThrown);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -4,6 +4,7 @@ use App\Http\Controllers\HomeController;
|
|||
use App\Http\Controllers\DashboardAdaptasiController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DashboardMitigasiController;
|
||||
use App\Http\Controllers\LembarPengesahanController;
|
||||
use App\Http\Controllers\Management\UserController;
|
||||
use App\Http\Controllers\Management\UserSekolahController;
|
||||
use App\Http\Controllers\Management\RoleController;
|
||||
|
|
@ -58,7 +59,11 @@ use App\Http\Controllers\Tool\LockActivityController;
|
|||
use App\Http\Controllers\Tool\ProdusenCalculateController;
|
||||
|
||||
Route::get('dashboard',[HomeController::class,'index'])->name('index');
|
||||
|
||||
Route::name('pengesahan.')->prefix('pengesahan')->group(function () {
|
||||
Route::resource('/',LembarPengesahanController::class);
|
||||
Route::get('grid',[LembarPengesahanController::class,'grid'])->name('grid');
|
||||
Route::get('update/{id?}',[LembarPengesahanController::class,'update'])->name('update');
|
||||
});
|
||||
Route::name('dashboard.')->prefix('dashboard')->group(function () {
|
||||
Route::name('inventory.')->prefix('inventory')->group(function () {
|
||||
Route::resource('/',DashboardController::class);
|
||||
|
|
@ -245,8 +250,8 @@ Route::name('management.')->prefix('management')->group(function () {
|
|||
Route::get('/form-adaptasi-sector-dropdown', [FormAdaptasiController::class, 'getSectors']);
|
||||
Route::get('/form-adaptasi-subsector-dropdown', [FormAdaptasiController::class, 'getSubSectors']);
|
||||
Route::get('/form-adaptasi-kategoriaksi-dropdown', [FormAdaptasiController::class, 'getKategoriAksi']);
|
||||
// Route::get('/form-adaptasi-jenisaksi-dropdown', [FormAdaptasiController::class, 'getJenisAksi']);
|
||||
// Route::get('/form-adaptasi-aksi-dropdown', [FormAdaptasiController::class, 'getAksi']);
|
||||
Route::get('/form-adaptasi-jenisaksi-dropdown', [FormAdaptasiController::class, 'getJenisAksi']);
|
||||
Route::get('/form-adaptasi-aksi-dropdown', [FormAdaptasiController::class, 'getAksi']);
|
||||
|
||||
// This for partial save
|
||||
Route::post('/store-part1', [FormAdaptasiController::class, 'storePart1'])->name('adaptasi-form.store-part1');
|
||||
|
|
|
|||
Loading…
Reference in New Issue