Commit User Profile dan CRUD Kriteria
This commit is contained in:
parent
2ba29a0dae
commit
7dabc26b0f
|
@ -4,6 +4,7 @@
|
||||||
use App\Models\Criteria;
|
use App\Models\Criteria;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use PhpParser\Node\NullableType;
|
||||||
use RealRashid\SweetAlert\Facades\Alert;
|
use RealRashid\SweetAlert\Facades\Alert;
|
||||||
|
|
||||||
class CriteriaController extends Controller
|
class CriteriaController extends Controller
|
||||||
|
@ -22,7 +23,7 @@ public function index()
|
||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -30,7 +31,7 @@ public function create()
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->only('nama', 'prioritas'), [
|
||||||
'nama' => 'required',
|
'nama' => 'required',
|
||||||
'prioritas' => 'required',
|
'prioritas' => 'required',
|
||||||
]);
|
]);
|
||||||
|
@ -44,7 +45,7 @@ public function store(Request $request)
|
||||||
'prioritas'=>$request->prioritas,
|
'prioritas'=>$request->prioritas,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return redirect()->route('kriteria.index')->with('success', 'Tambah Data Berhasil!');
|
return redirect()->route('kriteria.index')->with('success', 'Data Kriteria Berhasil Ditambah!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,7 +61,8 @@ public function show(string $id)
|
||||||
*/
|
*/
|
||||||
public function edit(string $id)
|
public function edit(string $id)
|
||||||
{
|
{
|
||||||
//
|
$kriteria = Criteria::findOrFail($id);
|
||||||
|
return view('kriteria.edit', compact('kriteria'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -68,7 +70,20 @@ public function edit(string $id)
|
||||||
*/
|
*/
|
||||||
public function update(Request $request, string $id)
|
public function update(Request $request, string $id)
|
||||||
{
|
{
|
||||||
//
|
// $kriteria = Criteria::findorfail($id);
|
||||||
|
// $kriteria->update($request->all());
|
||||||
|
|
||||||
|
// return redirect('kriteria')->with('success', 'Data Kriteria Berhasil Diperbarui!');
|
||||||
|
|
||||||
|
$validatedData = $request->validate([
|
||||||
|
'nama' => 'required',
|
||||||
|
'prioritas' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$kriteria = Criteria::findOrFail($id);
|
||||||
|
$kriteria->update($validatedData);
|
||||||
|
|
||||||
|
return redirect()->route('kriteria.index')->with('success', 'Data Kriteria Berhasil Diperbarui!');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,6 +91,9 @@ public function update(Request $request, string $id)
|
||||||
*/
|
*/
|
||||||
public function destroy(string $id)
|
public function destroy(string $id)
|
||||||
{
|
{
|
||||||
//
|
$kriteria = Criteria::findorfail($id);
|
||||||
|
$kriteria->delete();
|
||||||
|
|
||||||
|
return back()->with('info', 'Data Kriteria Berhasil Dihapus!');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Foundation\Auth\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function showProfile()
|
||||||
|
{
|
||||||
|
return view('user-profile');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update_profile(Request $request)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'name' => ['required', 'min:3', 'max:225'],
|
||||||
|
'username' => ['required', 'min:3', 'max:10'],
|
||||||
|
'email' => 'required|email',
|
||||||
|
], [
|
||||||
|
'required' => ':attribute harus diisi.',
|
||||||
|
'email' => ':attribute harus berupa email yang valid.',
|
||||||
|
'min' => 'panjang :attribute minimal :min karakter.',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return response()->json([
|
||||||
|
'error' => true,
|
||||||
|
'message' => Str::ucfirst($validator->errors()->first()),
|
||||||
|
'data' => null
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = User::findOrFail(Auth::user()->id);
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username,
|
||||||
|
'email' => $request->email,
|
||||||
|
]);
|
||||||
|
return redirect('user-profile')->with('success', 'Profile Berhasil Diperbarui!');
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,7 @@ class Kernel extends HttpKernel
|
||||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
|
\App\Http\Middleware\PreventBackHistory::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -65,6 +66,7 @@ class Kernel extends HttpKernel
|
||||||
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
||||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||||
|
'PreventBackHistory' =>\App\Http\Middleware\PreventBackHistory::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $routeMiddleware = [
|
protected $routeMiddleware = [
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
|
class PreventBackHistory
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||||
|
*/
|
||||||
|
public function handle(Request $request, Closure $next): Response
|
||||||
|
{
|
||||||
|
$response = $next($request);
|
||||||
|
|
||||||
|
return $response->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0')
|
||||||
|
->header('Pragma', 'no-cache')
|
||||||
|
->header('Expires', '0');
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
class Criteria extends Model
|
class Criteria extends Model
|
||||||
{
|
{
|
||||||
|
protected $guarded = ['id'];
|
||||||
protected $fillable = ['nama' , 'prioritas' .'bobot'];
|
protected $fillable = ['nama' , 'prioritas' .'bobot'];
|
||||||
|
|
||||||
public function SubCriteria() {
|
public function SubCriteria() {
|
||||||
|
|
|
@ -14,7 +14,7 @@ public function up(): void
|
||||||
Schema::create('criterias', function (Blueprint $table) {
|
Schema::create('criterias', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('nama');
|
$table->string('nama');
|
||||||
$table->integer('prioritas');
|
$table->string('prioritas');
|
||||||
$table->string('bobot');
|
$table->string('bobot');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,21 +1,30 @@
|
||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
@section('body')
|
@section('body')
|
||||||
|
@php
|
||||||
|
$menu = 'Dashboard';
|
||||||
|
$pageTitle = 'Home';
|
||||||
|
@endphp
|
||||||
|
|
||||||
@include('layout.navbar')
|
@include('layout.navbar')
|
||||||
@include('layout.sidebar')
|
@include('layout.sidebar')
|
||||||
|
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<div class="pd-ltr-20">
|
<div class="pd-ltr-20 xs-pd-20-10">
|
||||||
<div class="card-box pd-20 height-50-p mb-30">
|
<div class="min-height-200px">
|
||||||
<div class="row align-items-center">
|
<div class="card-box pd-20 height-50-p mb-30">
|
||||||
<div class="col-md-8">
|
<div class="row align-items-center">
|
||||||
<h1 class="font-20 weight-500 mb-10 text-capitalize">
|
<div class="col-md-8">
|
||||||
Welcome Back!
|
<h1 class="font-20 weight-500 mb-10 text-capitalize">
|
||||||
<div class="weight-600 font-20 text-blue">{{ auth()->user()->name }}</div>
|
Welcome Back!
|
||||||
</h1>
|
<div class="weight-600 font-20 text-blue">{{ auth()->user()->name }}</div>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -5,14 +5,32 @@
|
||||||
$pageTitle = 'Data Kriteria';
|
$pageTitle = 'Data Kriteria';
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
@include('layout.page')
|
@include('layout.navbar')
|
||||||
@include('layout.navbar')
|
@include('layout.sidebar')
|
||||||
@include('layout.sidebar')
|
|
||||||
|
|
||||||
{{-- Main Content --}}
|
{{-- Main Content --}}
|
||||||
<div class="main-container">
|
<div class="main-container">
|
||||||
<div class="pd-ltr-20 xs-pd-20-10">
|
<div class="pd-ltr-20 xs-pd-20-10">
|
||||||
<div class="min-height-10px">
|
<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="card-box mb-30">
|
||||||
<div class="pd-20">
|
<div class="pd-20">
|
||||||
<h4 class="text-blue h4">Data Kriteria</h4>
|
<h4 class="text-blue h4">Data Kriteria</h4>
|
||||||
|
@ -42,13 +60,10 @@
|
||||||
<td>{{ $criteria->prioritas }}</td>
|
<td>{{ $criteria->prioritas }}</td>
|
||||||
<td>{{ $criteria->bobot }}</td>
|
<td>{{ $criteria->bobot }}</td>
|
||||||
<td>
|
<td>
|
||||||
<button type="button" class="badge btn-success" title="View">
|
<button type="button" class="badge btn-primary" data-toggle="modal" data-target="#edit-criteria" title="Edit">
|
||||||
<i class="icon dw dw-eye"></i>
|
|
||||||
</button>
|
|
||||||
<button type="button" class="badge btn-primary" title="Edit">
|
|
||||||
<i class="icon dw dw-edit2"></i>
|
<i class="icon dw dw-edit2"></i>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="badge btn-danger" title="Delete">
|
<button type="button" class="badge btn-danger" data-toggle="modal" data-target="#delete-criteria" title="Delete">
|
||||||
<i class="icon dw dw-delete-3"></i>
|
<i class="icon dw dw-delete-3"></i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
|
@ -60,6 +75,9 @@
|
||||||
</div>
|
</div>
|
||||||
</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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -84,7 +102,7 @@
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-2 col-form-label">Nama</label>
|
<label class="col-sm-2 col-form-label">Nama</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input type="text" class="form-control" id="name" name="name" required="">
|
<input type="text" class="form-control" id="nama" name="nama" required="">
|
||||||
<div class="invalid-feedback">
|
<div class="invalid-feedback">
|
||||||
Tolong isi Nama Kriteria!
|
Tolong isi Nama Kriteria!
|
||||||
</div>
|
</div>
|
||||||
|
@ -109,11 +127,93 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
<button type="submit" class="btn btn-primary" data-target="#add-criteria">Simpan</button>
|
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{-- Modal Edit --}}
|
||||||
|
<div class="modal fade" id="edit-criteria" 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">
|
||||||
|
Edit Kriteria
|
||||||
|
</h4>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form action="{{ route('kriteria.update', $criteria->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">Nama</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control" id="nama" name="nama" required="" value="{{ $criteria->nama }}">
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
Tolong isi Nama 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="{{ $criteria->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-criteria" 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 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 kriteria ini?</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
|
<form id="delete-form" action="{{ route('kriteria.destroy', $criteria->id) }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
@method('DELETE')
|
||||||
|
<button type="submit" class="btn btn-danger">Hapus</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<head>
|
<head>
|
||||||
<!-- Basic Page Info -->
|
<!-- Basic Page Info -->
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>DeskApp</title>
|
<title>SIPEX</title>
|
||||||
|
|
||||||
<!-- Site favicon -->
|
<!-- Site favicon -->
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('vendors/images/apple-touch-icon.png') }}" />
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('vendors/images/apple-touch-icon.png') }}" />
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<span class="user-name"> Hi, {{ Auth::user()->username }}</span>
|
<span class="user-name"> Hi, {{ Auth::user()->username }}</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list">
|
<div class="dropdown-menu dropdown-menu-right dropdown-menu-icon-list">
|
||||||
<a class="dropdown-item" href="profile.html"><i class="dw dw-user1"></i> Profile</a>
|
<a href="({{ route('user-profile') }})" class="dropdown-item"><i class="dw dw-user1"></i> Profile</a>
|
||||||
@auth
|
@auth
|
||||||
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger"
|
<a href="{{ route('logout') }}" class="dropdown-item has-icon text-danger"
|
||||||
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
@extends('layout.main')
|
|
||||||
|
|
||||||
<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>
|
|
||||||
{{-- <div class="footer-wrap pd-20 mb-20 card-box">
|
|
||||||
Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER
|
|
||||||
</div> --}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -0,0 +1,162 @@
|
||||||
|
@extends('layout.main')
|
||||||
|
@section('body')
|
||||||
|
@php
|
||||||
|
$menu = 'Profile';
|
||||||
|
$pageTitle = 'User Profile';
|
||||||
|
@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="row">
|
||||||
|
<div class="col-xl-4 col-lg-4 col-md-4 col-sm-12 mb-30">
|
||||||
|
<div class="pd-20 card-box height-50-p">
|
||||||
|
<div class="profile-photo">
|
||||||
|
<a href="modal" data-toggle="modal" data-target="#modal" class="edit-avatar">
|
||||||
|
<i class="fa fa-pencil"></i>
|
||||||
|
</a>
|
||||||
|
<img src="vendors/images/photo1.jpg" alt="" class="avatar-photo" />
|
||||||
|
<div class="modal fade" id="modal" tabindex="-1" role="dialog"
|
||||||
|
aria-labelledby="modalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-body pd-5">
|
||||||
|
<div class="img-container">
|
||||||
|
<img id="image" src="vendors/images/photo2.jpg" alt="Picture" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<input type="submit" value="Update" class="btn btn-primary" />
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">
|
||||||
|
Close
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h5 class="text-center h5 mb-0">{{ Auth::user()->name }}</h5>
|
||||||
|
<p class="text-center text-muted font-14">
|
||||||
|
{{ Auth::user()->role }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-xl-8 col-lg-8 col-md-8 col-sm-12 mb-30">
|
||||||
|
<div class="card-box height-100-p overflow-hidden">
|
||||||
|
<div class="profile-tab height-100-p">
|
||||||
|
<div class="tab height-100-p">
|
||||||
|
<ul class="nav nav-tabs customtab" role="tablist">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" data-toggle="tab" href="#profile"
|
||||||
|
role="tab">Profile</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" data-toggle="tab" href="#password"
|
||||||
|
role="tab">Password</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<!-- Profile -->
|
||||||
|
<div class="tab-pane fade show active" id="profile" role="tabpanel">
|
||||||
|
<div class="profile-setting">
|
||||||
|
<form method="POST" action="{{ route('user-profile') }}" class="needs-validation" novalidate="">
|
||||||
|
@csrf
|
||||||
|
<h4 class=" text-center text-blue h5 mt-3 mb-0">Edit Your Personal Data</h4>
|
||||||
|
<ul class="profile-edit-list row">
|
||||||
|
<li class="col-md-4">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<input id="name" type="text" class="form-control" name="name" value="{{ Auth::user()->name }}">
|
||||||
|
<div class="invalid-feedback">Please fill in your name </div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="col-md-4">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Username</label>
|
||||||
|
<input id="name" type="text" class="form-control" name="username" value="{{ Auth::user()->username }}">
|
||||||
|
<div class="invalid-feedback">Please fill in your username </div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="col-md-4">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="name">Email</label>
|
||||||
|
<input id="name" type="text" class="form-control" name="email" value="{{ Auth::user()->email }}">
|
||||||
|
<div class="invalid-feedback">Please fill in your email </div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="input-group mb-3 mx-auto">
|
||||||
|
<button class="btn btn-primary btn-lg btn-block" type="submit">Save Changes</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Password -->
|
||||||
|
<div class="tab-pane fade" id="password" role="tabpanel">
|
||||||
|
<div class="profile-setting">
|
||||||
|
<form method="POST" action="{{ route('user-profile') }}" class="needs-validation" novalidate="">
|
||||||
|
@csrf
|
||||||
|
<h4 class=" text-center text-blue h5 mt-3 mb-0">Edit Your Personal Password</h4>
|
||||||
|
<ul class="profile-edit-list row">
|
||||||
|
<li class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="password">Current Password</label>
|
||||||
|
<input id="password" type="text" class="form-control" name="password">
|
||||||
|
<div class="invalid-feedback">Please fill in your current password </div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="col-md-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="new_password">New Password</label>
|
||||||
|
<input id="new_password" type="text" class="form-control" name="new_password">
|
||||||
|
<div class="invalid-feedback">Please fill in your new password </div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="input-group mb-3 mx-auto">
|
||||||
|
<button class="btn btn-primary btn-lg btn-block" type="submit">Save Changes</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
@endsection
|
|
@ -3,6 +3,7 @@
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use App\Http\Controllers\AuthController;
|
use App\Http\Controllers\AuthController;
|
||||||
|
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\WakilKepalaController;
|
use App\Http\Controllers\WakilKepalaController;
|
||||||
|
@ -76,11 +77,22 @@
|
||||||
// Route::get('/siswa/dashboard', [SiswaController::class, 'dashboard'])->name('siswa.dashboard');
|
// Route::get('/siswa/dashboard', [SiswaController::class, 'dashboard'])->name('siswa.dashboard');
|
||||||
// });
|
// });
|
||||||
|
|
||||||
Route::get('/dashboard/index', function () {
|
Route::middleware(['auth','web','PreventBackHistory'])->group(function () {
|
||||||
|
Route::get('/dashboard', function () {
|
||||||
return view('dashboard.index');
|
return view('dashboard.index');
|
||||||
})->name('dashboard.index');
|
})->name('dashboard.index');
|
||||||
|
|
||||||
|
Route::get('/user-profile', function () {
|
||||||
|
if (!Auth::check()) {
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
return view('user.user-profile');
|
||||||
|
})->name('user-profile');
|
||||||
|
Route::post('/user-profile', [UserController::class, 'update_profile']);
|
||||||
|
|
||||||
Route::resource('kriteria', CriteriaController::class);
|
Route::resource('kriteria', CriteriaController::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