program short name
This commit is contained in:
@@ -49,6 +49,7 @@ class ProgramController extends Controller
|
||||
'sub_domain' => ['required', Rule::unique(Program::class, 'sub_domain')],
|
||||
'tahun' => ['required', 'integer'],
|
||||
'instansi' => ['nullable', 'string'],
|
||||
'nama_singkat' => ['required', 'string'],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
@@ -96,6 +97,7 @@ class ProgramController extends Controller
|
||||
'sub_domain' => ['required', Rule::unique(Program::class, 'sub_domain')->ignore($id)],
|
||||
'tahun' => ['required', 'integer'],
|
||||
'instansi' => ['nullable', 'string'],
|
||||
'nama_singkat' => ['required', 'string'],
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
|
||||
@@ -22,6 +22,7 @@ class ProgramResource extends JsonResource
|
||||
'sub_domain' => $this->sub_domain,
|
||||
'tahun' => $this->tahun,
|
||||
'instansi' => $this->instansi,
|
||||
'nama_singkat' => $this->nama_singkat,
|
||||
'komoditas' => $this->komoditas()->with('komoditas')->get()->map(function ($item) {
|
||||
return new ProgramKomoditasResource($item);
|
||||
}),
|
||||
|
||||
@@ -20,6 +20,7 @@ class Program extends Model
|
||||
"sub_domain",
|
||||
"tahun",
|
||||
"instansi",
|
||||
"nama_singkat",
|
||||
];
|
||||
|
||||
public function komoditas(): HasMany
|
||||
|
||||
@@ -18,6 +18,7 @@ return new class extends Migration
|
||||
$table->string('sub_domain');
|
||||
$table->integer('tahun');
|
||||
$table->string('instansi')->nullable();
|
||||
$table->string('nama_singkat', length: 50);
|
||||
|
||||
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
|
||||
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
<input type="text" class="form-control" id="add-program-nama" name="nama" placeholder="Cth: Program Pertanian" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-nama-singkat">Nama Singkat<span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="add-program-nama-singkat" name="nama_singkat" placeholder="Cth: PP" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-subdomain">Sub Domain<span class="text-danger">*</span></label>
|
||||
@@ -51,12 +57,14 @@
|
||||
rules: {
|
||||
nama: { required: true },
|
||||
sub_domain: { required: true },
|
||||
tahun: { required: true }
|
||||
tahun: { required: true },
|
||||
nama_singkat: { required: true }
|
||||
},
|
||||
messages: {
|
||||
nama: { required: "Nama program wajib diisi" },
|
||||
sub_domain: { required: "Subdomain wajib diisi" },
|
||||
tahun: { required: "Tahun wajib diisi" }
|
||||
tahun: { required: "Tahun wajib diisi" },
|
||||
nama_singkat: { required: "Nama singkat wajib diisi" }
|
||||
},
|
||||
errorElement: 'div',
|
||||
errorPlacement: function (error, element) {
|
||||
|
||||
@@ -19,6 +19,12 @@
|
||||
<input type="text" class="form-control" id="add-program-nama" name="nama" placeholder="Cth: Program Pertanian" value="{{ old('nama', $program->nama) }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-nama-singkat">Nama Singkat<span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="add-program-nama-singkat" name="nama_singkat" placeholder="Cth: PP" value="{{ old('nama_singkat', $program->nama_singkat) }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-subdomain">Sub Domain<span class="text-danger">*</span></label>
|
||||
@@ -56,12 +62,14 @@
|
||||
rules: {
|
||||
nama: { required: true },
|
||||
sub_domain: { required: true },
|
||||
tahun: { required: true }
|
||||
tahun: { required: true },
|
||||
nama_singkat: { required: true }
|
||||
},
|
||||
messages: {
|
||||
nama: { required: "Nama program wajib diisi" },
|
||||
sub_domain: { required: "Subdomain wajib diisi" },
|
||||
tahun: { required: "Tahun wajib diisi" }
|
||||
tahun: { required: "Tahun wajib diisi" },
|
||||
nama_singkat: { required: "Nama singkat wajib diisi" }
|
||||
},
|
||||
errorElement: 'div',
|
||||
errorPlacement: function (error, element) {
|
||||
|
||||
@@ -17,6 +17,12 @@
|
||||
<input type="text" class="form-control" id="add-program-nama" name="nama" placeholder="Cth: Program Pertanian" value="{{ old('nama', $program->nama) }}" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-nama-singkat">Nama Singkat<span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="add-program-nama-singkat" name="nama_singkat" placeholder="Cth: PP" value="{{ old('nama_singkat', $program->nama_singkat) }}" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="add-program-subdomain">Sub Domain<span class="text-danger">*</span></label>
|
||||
|
||||
@@ -49,16 +49,15 @@
|
||||
<div class="col-md-auto d-flex gap-2">
|
||||
@if (app()->has('SystemProgram'))
|
||||
@else
|
||||
<div class="col-md-auto">
|
||||
<div class="col-6">
|
||||
<div class="d-flex align-items-center">
|
||||
<label class="me-2 text-nowrap">Program</label>
|
||||
<select name="program_id" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
|
||||
<option value="">Pilih Program</option>
|
||||
<select name="program_id" class="form-select form-select-sm w-auto" onchange="this.form.submit()" id="program_id">
|
||||
<option value="">--- Pilih Program ---</option>
|
||||
@foreach($programList as $prog)
|
||||
<option value="{{ $prog->id }}" {{ request('program_id') == $prog->id ? 'selected' : '' }}>{{ $prog->nama }}</option>
|
||||
<option value="{{ $prog->id }}" {{ request('program_id') == $prog->id ? 'selected' : '' }}>{{ $prog->nama_singkat }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<label class="ms-2 text-nowrap">entries</label>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@@ -66,9 +65,8 @@
|
||||
<input type="text" name="search" class="form-control" placeholder="Cari Nama Tabel..." value="{{ request('search') }}">
|
||||
<button type="submit" class="btn btn-outline-primary"><i class="ti tabler-search"></i></button>
|
||||
</div>
|
||||
<a href="{{ route('tabel.data.create', [$tabel->id, 'program_id' => request('program_id')]) }}" class="btn btn-sm btn-primary add-new"
|
||||
style="display: {{ request('program_id') ? 'flex' : 'none' }};">
|
||||
<i class="ti tabler-plus me-1"></i> Tambah
|
||||
<a href="{{ route('tabel.data.create', [$tabel->id, 'program_id' => request('program_id')]) }}" class="btn btn-sm btn-primary flex-shrink-0 add-new">
|
||||
<i class="icon-xs icon-base ti tabler-plus me-1"></i> Tambah
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
@@ -123,6 +121,8 @@
|
||||
'use strict';
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#program_id').select2();
|
||||
|
||||
$(".delete-record").click(function (e) {
|
||||
e.preventDefault();
|
||||
const id = $(this).data('id');
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="menu-item {{ request()->routeIs(['petani-cpm.*','tabel.data.*']) ? 'active open' : '' }}">
|
||||
<li class="menu-item {{ request()->routeIs(['petani-cpm.*', 'lahan-cpcl.*', 'tabel.data.*']) ? 'active open' : '' }}">
|
||||
<a href="javascript:void(0);" class="menu-link menu-toggle">
|
||||
<i class="menu-icon icon-base ti tabler-folder-root"></i>
|
||||
<div data-i18n="Basis Data Ekosistem">Basis Data Ekosistem</div>
|
||||
@@ -110,7 +110,14 @@
|
||||
<ul class="menu-sub">
|
||||
<li class="menu-item {{ request()->routeIs('petani-cpm.*') ? 'active' : '' }}">
|
||||
<a href="{{ route('petani-cpm.index') }}" class="menu-link">
|
||||
<div data-i18n="Petani">Petani</div>
|
||||
<div data-i18n="Petani CPM">Petani CPM</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="menu-sub">
|
||||
<li class="menu-item {{ request()->routeIs('lahan-cpcl.*') ? 'active' : '' }}">
|
||||
<a href="{{ route('lahan-cpcl.index') }}" class="menu-link">
|
||||
<div data-i18n="Lahan CPCL">Lahan CPCL</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -132,6 +132,7 @@ Route::middleware('auth')
|
||||
|
||||
Route::resource('petani-cpm', App\Http\Controllers\Web\Ekosistem\PetaniCPMController::class);
|
||||
Route::get('petani-cpm/summary/{tipe}', [App\Http\Controllers\Web\Ekosistem\PetaniCPMController::class, 'summary'])->name('petani-cpm.summary');
|
||||
Route::resource('lahan-cpcl', App\Http\Controllers\Web\Ekosistem\LahanCPCLController::class);
|
||||
|
||||
// Monev
|
||||
Route::resource('framework', App\Http\Controllers\Web\Program\FrameworkController::class);
|
||||
|
||||
Reference in New Issue
Block a user