CRUD Sub Criteria
This commit is contained in:
parent
d3a970cc3e
commit
7fcebe1d95
|
@ -1,8 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
use App\Models\Criteria;
|
||||||
|
use App\Models\SubCriteria;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use RealRashid\SweetAlert\Facades\Alert;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
class SubCriteriaController extends Controller
|
class SubCriteriaController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -11,7 +14,9 @@ class SubCriteriaController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
//
|
$subcriterias = Subcriteria::all();
|
||||||
|
$criterias = Criteria::all();
|
||||||
|
return view('subkriteria.subkriteria', compact('subcriterias', 'criterias'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,7 +32,23 @@ public function create()
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
//
|
$validator = Validator::make($request->only('criteria_id','nama', 'prioritas'), [
|
||||||
|
'criteria_id' => 'required',
|
||||||
|
'nama' => 'required',
|
||||||
|
'prioritas' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return redirect()->back()->withErrors($validator)->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
SubCriteria::create([
|
||||||
|
'criteria_id' =>$request->criteria_id,
|
||||||
|
'nama' => $request->nama,
|
||||||
|
'prioritas' => $request->prioritas,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('subkriteria.index')->with('success', 'Data Sub Kriteria Berhasil Ditambah!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,7 +64,8 @@ public function show(string $id)
|
||||||
*/
|
*/
|
||||||
public function edit(string $id)
|
public function edit(string $id)
|
||||||
{
|
{
|
||||||
//
|
$subkriteria = SubCriteria::findOrFail($id);
|
||||||
|
return view('subkriteria.edit', compact('subkriteria'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,7 +73,16 @@ public function edit(string $id)
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, string $id)
|
public function update(Request $request, string $id)
|
||||||
{
|
{
|
||||||
//
|
$validatedData = $request->validate([
|
||||||
|
'criteria_id' => 'required',
|
||||||
|
'nama' => 'required',
|
||||||
|
'prioritas' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$subkriteria = SubCriteria::findOrFail($id);
|
||||||
|
$subkriteria->update($validatedData);
|
||||||
|
|
||||||
|
return redirect()->route('subkriteria.index')->with('success', 'Data SUb Kriteria Berhasil Diperbarui!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,6 +90,9 @@ public function update(Request $request, string $id)
|
||||||
*/
|
*/
|
||||||
public function destroy(string $id)
|
public function destroy(string $id)
|
||||||
{
|
{
|
||||||
//
|
$subkriteria = SubCriteria::findorfail($id);
|
||||||
|
$subkriteria->delete();
|
||||||
|
|
||||||
|
return back()->with('info', 'Data Sub Kriteria Berhasil Dihapus!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ class SubCriteria extends Model
|
||||||
|
|
||||||
public function Criteria()
|
public function Criteria()
|
||||||
{
|
{
|
||||||
return $this->belongsTo(Criteria::class);
|
return $this->belongsTo(Criteria::class, 'criteria_id', 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function ExtracuricullarSubCriteria() {
|
public function ExtracuricullarSubCriteria() {
|
||||||
|
|
|
@ -16,7 +16,7 @@ public function up(): void
|
||||||
$table->unsignedBigInteger('criteria_id');
|
$table->unsignedBigInteger('criteria_id');
|
||||||
$table->string('nama');
|
$table->string('nama');
|
||||||
$table->string('prioritas');
|
$table->string('prioritas');
|
||||||
$table->string('bobot');
|
$table->string('bobot')->nullable();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
|
|
||||||
$table->foreign('criteria_id')->references('id')->on('criterias');
|
$table->foreign('criteria_id')->references('id')->on('criterias');
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
</a>
|
</a>
|
||||||
<ul class="submenu">
|
<ul class="submenu">
|
||||||
<li><a href="{{ route('kriteria.index') }}">Data Kriteria</a></li>
|
<li><a href="{{ route('kriteria.index') }}">Data Kriteria</a></li>
|
||||||
<li><a href="">Data Sub Kriteria</a></li>
|
<li><a href="{{ route('subkriteria.index') }}">Data Sub Kriteria</a></li>
|
||||||
<li><a href="">Data User</a></li>
|
<li><a href="">Data User</a></li>
|
||||||
<li><a href="">Data Ekstrakurikuler</a></li>
|
<li><a href="">Data Ekstrakurikuler</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -0,0 +1,289 @@
|
||||||
|
@extends('layout.main')
|
||||||
|
@section('body')
|
||||||
|
@php
|
||||||
|
$menu = 'Data Master';
|
||||||
|
$pageTitle = 'Data Sub Kriteria';
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@include('layout.navbar')
|
||||||
|
@include('layout.sidebar')
|
||||||
|
|
||||||
|
{{-- Main Content --}}
|
||||||
|
<div class="main-container">
|
||||||
|
<div class="pd-ltr-20 xs-pd-20-10">
|
||||||
|
<div class="min-height-200px">
|
||||||
|
<div class="page-header">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-sm-12">
|
||||||
|
<div class="title">
|
||||||
|
<h4>{{ $menu }}</h4>
|
||||||
|
</div>
|
||||||
|
<nav aria-label="breadcrumb" role="navigation">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item"><a href="{{ route('dashboard.index') }}">Dashboard</a></li>
|
||||||
|
@if (isset($pageTitle))
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">{{ $pageTitle }}</li>
|
||||||
|
@else
|
||||||
|
<li class="breadcrumb-item active" aria-current="page"></li>
|
||||||
|
@endif
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-box mb-30">
|
||||||
|
<div class="pd-20">
|
||||||
|
<h4 class="text-blue h4 mb-0">Data Sub Kriteria</h4>
|
||||||
|
</div>
|
||||||
|
<div class="card-header d-flex align-items-center">
|
||||||
|
<!-- Button trigger modal -->
|
||||||
|
<button type="button" class="btn btn-primary mx-2" data-toggle="modal" data-target="#add-subcriteria">
|
||||||
|
<i class="icon dw dw-add"></i> Tambah Sub Kriteria</button>
|
||||||
|
<button type="button" class="btn btn-primary mx-2" data-toggle="modal" data-target="">
|
||||||
|
<i class="icon dw dw-calculator"></i> Hitung Bobot</button>
|
||||||
|
<form class="form-inline ml-auto" action="{{ route('subkriteria.index') }}" method="GET">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" name="search" placeholder="Search">
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="submit">
|
||||||
|
<i class="icon dw dw-search"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="pb-10">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="data-table table stripe hover nowrap">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Kriteria</th>
|
||||||
|
<th>Sub Kriteria</th>
|
||||||
|
<th>Prioritas</th>
|
||||||
|
<th>Bobot</th>
|
||||||
|
<th>Aksi</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@forelse ($subcriterias as $subcriteria)
|
||||||
|
<tr>
|
||||||
|
<td>{{ $loop->iteration }}</td>
|
||||||
|
<td>{{ $subcriteria->criteria->nama }}</td>
|
||||||
|
<td>{{ $subcriteria->nama }}</td>
|
||||||
|
<td>{{ $subcriteria->prioritas }}</td>
|
||||||
|
<td>{{ $subcriteria->bobot }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="{{ route('subkriteria.edit', $subcriteria->id) }}"
|
||||||
|
class="badge btn-primary" data-toggle="modal"
|
||||||
|
data-target="#edit-subcriteria-{{ $subcriteria->id }}" title="Edit">
|
||||||
|
<i class="icon dw dw-edit2"></i>
|
||||||
|
</a>
|
||||||
|
{{-- <form action="{{ route('kriteria.destroy', $criteria->id) }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
@method('DELETE')
|
||||||
|
<button type="submit" class="badge btn-danger" title="Delete">
|
||||||
|
<i class="icon dw dw-delete-3"></i>
|
||||||
|
</button>
|
||||||
|
</form> --}}
|
||||||
|
<a href="{{ route('subkriteria.destroy', $subcriteria->id) }}"
|
||||||
|
class="badge btn-danger" data-toggle="modal"
|
||||||
|
data-target="#delete-subcriteria" title="Delete">
|
||||||
|
<i class="icon dw dw-delete-3"></i>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@empty
|
||||||
|
<tr>
|
||||||
|
<td colspan="5" class="text-center">Tidak ada data.</td>
|
||||||
|
</tr>
|
||||||
|
@endforelse
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-wrap pd-20 mb-20 card-box">
|
||||||
|
<strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- Modal Add --}}
|
||||||
|
<div class="modal fade" id="add-subcriteria" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
|
||||||
|
style="display: none;" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
@if (session('error'))
|
||||||
|
<div class="alert alert-danger">{{ session('error') }}</div>
|
||||||
|
@endif
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="myLargeModalLabel">
|
||||||
|
Tambah Sub Kriteria
|
||||||
|
</h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form action="{{ route('subkriteria.store') }}" class="needs-validation" novalidate="" method="POST">
|
||||||
|
@csrf
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">Kriteria</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
{{-- <input type="text" class="form-control" id="kriteria_nama" name="kriteria_nama" required="">
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong isi Nama Kriteria!
|
||||||
|
</div> --}}
|
||||||
|
<select class="form-control" id="criteria_id" name="criteria_id" required>
|
||||||
|
<option value="" selected disabled>Pilih Kriteria</option>
|
||||||
|
@foreach ($criterias as $criteria)
|
||||||
|
<option value="{{ $criteria->id }}">{{ $criteria->nama }}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong pilih Kriteria!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('criteria_id'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('criteria_id') }}</div>
|
||||||
|
@endif
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">Sub Kriteria</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="nama" name="nama"
|
||||||
|
required="">
|
||||||
|
<div class="valid-feedback">
|
||||||
|
Lengkap!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('prioritas'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('prioritas') }}</div>
|
||||||
|
@endif
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">Prioritas</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="prioritas" name="prioritas"
|
||||||
|
required="">
|
||||||
|
<div class="valid-feedback">
|
||||||
|
Lengkap!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('prioritas'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('prioritas') }}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{-- Modal Edit --}}
|
||||||
|
@foreach ($subcriterias as $subcriteria)
|
||||||
|
<div class="modal fade" id="edit-subcriteria-{{ $subcriteria->id }}" tabindex="-1" role="dialog"
|
||||||
|
aria-labelledby="myLargeModalLabel" style="display: none;" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="myLargeModalLabel">
|
||||||
|
Edit Sub Kriteria
|
||||||
|
</h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form action="{{ route('subkriteria.update', $subcriteria->id) }}" class="needs-validation"
|
||||||
|
novalidate="" method="POST">
|
||||||
|
@csrf
|
||||||
|
@method('PUT')
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">Kriteria</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select class="form-control" id="criteria_id" name="criteria_id" required>
|
||||||
|
<option value="" selected disabled>Pilih Kriteria</option>
|
||||||
|
@foreach ($criterias as $criteria)
|
||||||
|
<option value="{{ $criteria->id }}" {{ old('criteria_id', $subcriteria->criteria_id) == $criteria->id ? 'selected' : '' }}>
|
||||||
|
{{ $criteria->nama }}
|
||||||
|
</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong pilih Kriteria!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('kriteria_nama'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('kriteria_nama') }}</div>
|
||||||
|
@endif
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">nama</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="nama" name="nama"
|
||||||
|
required="" value="{{ $subcriteria->nama }}">
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong isi Nama Sub Kriteria!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('nama'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('nama') }}</div>
|
||||||
|
@endif
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-sm-2 col-form-label">Prioritas</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="prioritas" name="prioritas"
|
||||||
|
required="" value="{{ $subcriteria->prioritas }}">
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong isi Urutan Prioritas!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if ($errors->has('prioritas'))
|
||||||
|
<div class="alert alert-danger">{{ $errors->first('prioritas') }}</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
|
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Modal Delete -->
|
||||||
|
<div class="modal fade" id="delete-subcriteria" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
|
||||||
|
style="display: none;" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h4 class="modal-title" id="myLargeModalLabel">
|
||||||
|
Konfirmasi Hapus Data Sub Kriteria
|
||||||
|
</h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p>Apakah Anda yakin ingin menghapus data sub kriteria ini?</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
|
<form action="{{ route('subkriteria.destroy', $subcriteria->id) }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
@method('DELETE')
|
||||||
|
<button type="submit" class="btn btn-danger">Hapus</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@endsection
|
|
@ -48,13 +48,12 @@
|
||||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-body pd-5">
|
<div class="modal-body pd-5">
|
||||||
<form action="{{ '/update-profile-picture' }}" method="post"
|
<form action="{{ '/update-profile-picture' }}" method="post" enctype="multipart/form-data">
|
||||||
enctype="multipart/form-data">
|
|
||||||
@csrf
|
@csrf
|
||||||
<div class="img-container text-center">
|
<div class="img-container text-center">
|
||||||
@if (Auth::user()->profile_picture)
|
@if (Auth::user()->profile_picture)
|
||||||
<img
|
<img
|
||||||
src="{{ asset('storage/' . Auth::user()->profile_picture) }}" class="img-fluid mx-auto mt-2" style="max-width: 100%; max-height: 200px;">
|
src="{{ asset('storage/' . Auth::user()->profile_picture) }}" class="img-fluid mx-auto mt-2 rounded-profile-picture" style="max-width: 100%; max-height: 200px;">
|
||||||
@else
|
@else
|
||||||
<img src="{{ asset('vendors/images/user.png') }}" class="img-fluid mx-auto mt-2" style="max-width: 100%; max-height: 200px;">
|
<img src="{{ asset('vendors/images/user.png') }}" class="img-fluid mx-auto mt-2" style="max-width: 100%; max-height: 200px;">
|
||||||
@endif
|
@endif
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
use App\Http\Controllers\UserController;
|
use App\Http\Controllers\UserController;
|
||||||
use App\Http\Controllers\SiswaController;
|
use App\Http\Controllers\SiswaController;
|
||||||
use App\Http\Controllers\CriteriaController;
|
use App\Http\Controllers\CriteriaController;
|
||||||
|
use App\Http\Controllers\SubCriteriaController;
|
||||||
use App\Http\Controllers\WakilKepalaController;
|
use App\Http\Controllers\WakilKepalaController;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -97,6 +98,8 @@
|
||||||
|
|
||||||
Route::resource('kriteria', CriteriaController::class);
|
Route::resource('kriteria', CriteriaController::class);
|
||||||
|
|
||||||
|
Route::resource('subkriteria', SubCriteriaController::class);
|
||||||
|
|
||||||
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||||
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue