CRUD Sub Criteria
This commit is contained in:
parent
d3a970cc3e
commit
7fcebe1d95
|
@ -1,8 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Criteria;
|
||||
use App\Models\SubCriteria;
|
||||
use Illuminate\Http\Request;
|
||||
use RealRashid\SweetAlert\Facades\Alert;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class SubCriteriaController extends Controller
|
||||
{
|
||||
|
@ -11,7 +14,9 @@ class SubCriteriaController extends Controller
|
|||
*/
|
||||
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)
|
||||
{
|
||||
//
|
||||
$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)
|
||||
{
|
||||
//
|
||||
$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)
|
||||
{
|
||||
//
|
||||
$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)
|
||||
{
|
||||
//
|
||||
$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()
|
||||
{
|
||||
return $this->belongsTo(Criteria::class);
|
||||
return $this->belongsTo(Criteria::class, 'criteria_id', 'id');
|
||||
}
|
||||
|
||||
public function ExtracuricullarSubCriteria() {
|
||||
|
|
|
@ -16,7 +16,7 @@ public function up(): void
|
|||
$table->unsignedBigInteger('criteria_id');
|
||||
$table->string('nama');
|
||||
$table->string('prioritas');
|
||||
$table->string('bobot');
|
||||
$table->string('bobot')->nullable();
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('criteria_id')->references('id')->on('criterias');
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
</a>
|
||||
<ul class="submenu">
|
||||
<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 Ekstrakurikuler</a></li>
|
||||
</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-content">
|
||||
<div class="modal-body pd-5">
|
||||
<form action="{{ '/update-profile-picture' }}" method="post"
|
||||
enctype="multipart/form-data">
|
||||
<form action="{{ '/update-profile-picture' }}" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<div class="img-container text-center">
|
||||
@if (Auth::user()->profile_picture)
|
||||
<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
|
||||
<img src="{{ asset('vendors/images/user.png') }}" class="img-fluid mx-auto mt-2" style="max-width: 100%; max-height: 200px;">
|
||||
@endif
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
use App\Http\Controllers\UserController;
|
||||
use App\Http\Controllers\SiswaController;
|
||||
use App\Http\Controllers\CriteriaController;
|
||||
use App\Http\Controllers\SubCriteriaController;
|
||||
use App\Http\Controllers\WakilKepalaController;
|
||||
|
||||
/*
|
||||
|
@ -97,6 +98,8 @@
|
|||
|
||||
Route::resource('kriteria', CriteriaController::class);
|
||||
|
||||
Route::resource('subkriteria', SubCriteriaController::class);
|
||||
|
||||
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');
|
||||
|
||||
|
|
Loading…
Reference in New Issue