add monitoring pemutihan
All checks were successful
Run Action to Production / run pull to sync on target message (push) Has been skipped

This commit is contained in:
Fiky B 2024-04-17 11:40:27 +07:00
parent c5ca3d2622
commit 6d520050e3
10 changed files with 346 additions and 0 deletions

View File

@ -16,6 +16,18 @@ public function index(){
return view('monitoring.index',['title' => 'Cari Pengajuan Anda Menggunakan CASEID yang Dikirim Lewat Email']);
}
public function ruangbaca(){
$data = PengajuanWisuda::
where('caseid','!=','-')
->select(
'pengajuan_wisudas.*',
'mahasiswas.nama',
'mahasiswas.nim',
)
->join('mahasiswas','mahasiswas.id','=','mahasiswas_id')->get();
return view('monitoring.ruangbaca',['title' => 'Monitoring Pengajuan Wisuda Untuk Ruang Baca','data'=>$data]);
}
public function search(Request $request){
return redirect()->route('monitoring.caseid',['caseid'=>$request->caseid]);
}

View File

@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class layananPemutihanController extends Controller
{
public function tambah(){
$dosen = User::role('Dosen')->get();
return view('layanan-pemutihan.tambah',['title'=> 'Pengajuan Pemutihan Kelas','dosen'=>$dosen]);
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PengajuanPemutihan extends Model
{
use HasFactory;
}

11
app/Models/RuangKelas.php Normal file
View File

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class RuangKelas extends Model
{
use HasFactory;
}

View File

@ -0,0 +1,27 @@
<?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('pengajuan_pemutihans', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('pengajuan_pemutihans');
}
};

View File

@ -0,0 +1,27 @@
<?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('ruang_kelas', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('ruang_kelas');
}
};

View File

@ -0,0 +1,104 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => $title])
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">{{$title}}</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<form action="{{ route('pemutihan.store') }}" method="post" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col">
<div class="form-group">
<label for="ruang_kelas">Nama Ruang Kelas: </label>
<input type="text" name="ruang_kelas" id="ruang_kelas" class="form-control" placeholder="Masukkan Nama Ruang Kelas">
<label for="ruang_kelas">Nama Mata Kuliah/Prodi: </label>
<input type="text" name="ruang_kelas" id="ruang_kelas" class="form-control" placeholder="Masukkan Nama Ruang Kelas">
<label for="ruang_kelas">Jurnal Kuliah: </label>
<input type="text" name="ruang_kelas" id="ruang_kelas" class="form-control" placeholder="Masukkan Nama Ruang Kelas">
</div>
<!-- /.form-group -->
</div>
</div>
<div class="row">
<div class="col">
<div class="form-group">
<label for="dosen_pengampu">Dosen Pengampu Mata Kuliah: </label>
<select class="form-control select2" style="width: 100%;" id="dosen_pengampu" name="dosen_pengampu">
<option selected>Pilih Dosen Pengampu Mata Kuliah: </option>
@foreach ($dosen as $item)
<option value="{{$item->id}}" {{ old('dosen_pengampu') === $item->id ? 'selected' : '' }}>{{ $item->nama_gelar }}</option>
@endforeach
</select>
</div>
<!-- /.form-group -->
</div>
</div>
<!-- /.row -->
<div class="row">
<div class="col">
<div class="form-group">
<label for="tanggal_kelas">Hari/Tanggal: </label>
<input type="date" class="form-control" required name="tanggal_kelas">
<label for="jam_kelas">Hari/Tanggal: </label>
<input type="time" class="form-control" required name="jam_kelas">
<label for="alasan">Alasan: </label>
<textarea name="alasan" id="alasan" cols="30" rows="10" class="form-control">
</textarea>
<input type="text" name="ruang_kelas" id="ruang_kelas" class="form-control" placeholder="Masukkan Nama Ruang Kelas">
</div>
<!-- /.form-group -->
</div>
</div>
<div class="row">
<div class="col py-3">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection
@push('js')
<script>
//Date and time picker
$('#reservationdatetime').datetimepicker({ icons: { time: 'far fa-clock' } });
</script>
@endpush

View File

@ -9,10 +9,13 @@
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{asset('/')}}plugins/fontawesome-free/css/all.min.css">
<!-- Date Range Picker -->
<link rel="stylesheet" href="{{asset('/')}}plugins/daterangepicker/daterangepicker.css">
<!-- Select2 -->
<link rel="stylesheet" href="{{asset('/')}}plugins/select2/css/select2.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="{{asset('/')}}dist/css/adminlte.min.css">
@stack('css')
</head>
<body class="hold-transition sidebar-mini">
<div class="wrapper">
@ -86,6 +89,15 @@
</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('pemutihan.tambah') }}" class="nav-link {{ Request::is('pemutihan/tambah') ? 'active' : '' }}">
<i class="nav-icon fas fa-chalkboard-teacher"></i>
<p>
Pemutihan Kelas
</p>
</a>
</li>
<li class="nav-header">LAYANAN WISUDA</li>
<li class="nav-item">
<a href="{{ route('layanan-wisuda.tambah') }}" class="nav-link {{ Request::is('layanan-wisuda/tambah') ? 'active' : '' }}">
<i class="nav-icon fas fa-user-graduate"></i>
@ -148,6 +160,8 @@
<script src="{{asset('/')}}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Select2 -->
<script src="{{asset('/')}}plugins/select2/js/select2.full.min.js"></script>
<!-- Date Range Picker -->
<script src="{{asset('/')}}plugins/daterangepicker/daterangepicker.js"></script>
<!-- AdminLTE App -->
<script src="{{asset('/')}}dist/js/adminlte.min.js"></script>
<!-- Page specific script -->
@ -157,5 +171,6 @@
$('.select2').select2()
});
</script>
@stack('js')
</body>
</html>

View File

@ -0,0 +1,114 @@
<!-- Extend Layout -->
@extends('layout.app_guest',['title' => $title])
@push('css')
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-bs4/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-responsive/css/responsive.bootstrap4.min.css">
<link rel="stylesheet" href="{{asset('/')}}plugins/datatables-buttons/css/buttons.bootstrap4.min.css">
@endpush
@section('content')
<!-- Main content -->
<section class="content">
<div class="container-fluid">
<!-- SELECT2 EXAMPLE -->
<div class="card card-default">
<div class="card-header">
<h3 class="card-title">{{$title}}</h3>
</div>
<!-- /.card-header -->
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error )
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session('success'))
<div class="alert alert-success">
<ul>
<li>{{ session('success') }}</li>
</ul>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger">
<ul>
<li>{{ session('error') }}</li>
</ul>
</div>
@endif
<div class="alert alert-info alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h5><i class="icon fas fa-info"></i> Perhatian!</h5>
<span>Data yang tampil disini adalah data Real time. Jika Belum Melakukan Tanda tangan maka tidak akan muncul Tanggal Pada Kolom Status Tanda Tangan</span>
</div>
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama</th>
<th>Status TTD Pj. Ruang Baca</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach($data as $item)
<tr>
<td>{{$item->caseid}}</td>
<td>{{$item->nim}}</td>
<td>{{$item->nama}}</td>
<td>{{$item->ttd_ruang_baca}}</td>
<td><a href="{{ route('layanan-wisuda.ettd',['url'=>'ruangbaca','caseid'=>$item->caseid]) }}" target="_blank" class="btn btn-success"><i class="far fa-edit"></i> TTD</a></td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<th>CaseID</th>
<th>NIM</th>
<th>Nama</th>
<th>Status TTD Pj. Ruang Baca</th>
<th>Action</th>
</tr>
</tfoot>
</table>
</div>
</div>
<!-- /.card -->
</div>
<!-- /.container-fluid -->
</section>
<!-- /.content -->
@endsection
@push('js')
<!-- DataTables & Plugins -->
<script src="{{asset('/')}}plugins/datatables/jquery.dataTables.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/dataTables.responsive.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-responsive/js/responsive.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/dataTables.buttons.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.bootstrap4.min.js"></script>
<script src="{{asset('/')}}plugins/jszip/jszip.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/pdfmake.min.js"></script>
<script src="{{asset('/')}}plugins/pdfmake/vfs_fonts.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.html5.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.print.min.js"></script>
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
<script>
$(function () {
$("#example1").DataTable({
"responsive": true, "lengthChange": false, "autoWidth": false,
order: [[3, 'asc']],
"buttons": ["csv", "excel", "pdf", "print", "colvis"]
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
});
</script>
@endpush

View File

@ -4,6 +4,7 @@
use App\Http\Controllers\AdminController;
use App\Http\Controllers\layananPemutihanController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\LayananPengajuanDpuDpaController;
use App\Http\Controllers\LayananPengajuanWisudaController;
@ -128,7 +129,14 @@
Route::get('/layanan-wisuda/cetak/{caseid}', [LayananPengajuanWisudaController::class, 'cetak'])->name('layanan-wisuda.cetak');
Route::get('/layanan-wisuda/{url}/{caseid}', [LayananPengajuanWisudaController::class, 'ettd'])->name('layanan-wisuda.ettd');
Route::POST('/layanan-wisuda/{url}/{caseid}', [LayananPengajuanWisudaController::class, 'submitettd'])->name('layanan-wisuda.submitettd');
//Layanan Pengajuan Pemutihan
Route::get('/pemutihan/tambah', [layananPemutihanController::class, 'tambah'])->name('pemutihan.tambah');
Route::post('/pemutihan/tambah', [layananPemutihanController::class, 'store'])->name('pemutihan.store');
Route::get('/pemutihan/cetak/{caseid}', [layananPemutihanController::class, 'cetak'])->name('pemutihan.cetak');
Route::get('/pemutihan/{url}/{caseid}', [layananPemutihanController::class, 'ettd'])->name('pemutihan.ettd');
Route::POST('/pemutihan/{url}/{caseid}', [layananPemutihanController::class, 'submitettd'])->name('pemutihan.submitettd');
Route::get('/monitoring', [MonitoringController::class, 'index'])->name('monitoring.index');
Route::post('/monitoring', [MonitoringController::class, 'search'])->name('monitoring.search');
Route::get('/monitoring/ruangbaca', [MonitoringController::class, 'ruangbaca'])->name('monitoring.ruangbaca');
Route::get('/monitoring/{caseid}', [MonitoringController::class, 'caseid'])->name('monitoring.caseid');