fix pemutihan pagination
This commit is contained in:
parent
71d5b5f302
commit
cd8934b377
|
@ -9,19 +9,62 @@
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
||||||
|
use Yajra\DataTables\Facades\DataTables;
|
||||||
|
|
||||||
class LayananPemutihanController extends Controller
|
class LayananPemutihanController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function index(){
|
public function data(Request $request){
|
||||||
|
$query = PengajuanPemutihan::
|
||||||
|
select(
|
||||||
|
'pengajuan_pemutihans.*',
|
||||||
|
'users.nama_gelar as dosen_pengampu',
|
||||||
|
)
|
||||||
|
->join('users','dosen_id','=','users.id');
|
||||||
|
|
||||||
|
if ($request->has('program_studi') && !empty($request->program_studi)) {
|
||||||
|
if($request->program_studi == "s1"){
|
||||||
|
$query->where('program_studi', "S1 Farmasi");
|
||||||
|
}elseif($request->program_studi == "s2"){
|
||||||
|
$query->where('program_studi', "S2 Farmasi");
|
||||||
|
}elseif($request->program_studi == "psppa"){
|
||||||
|
$query->where('program_studi', "PSPPA");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$data = $query->orderBy('pengajuan_pemutihans.created_at', 'desc')->get();
|
||||||
|
|
||||||
|
return DataTables::of($data)
|
||||||
|
->addColumn('action', function($row){
|
||||||
|
if (!empty($row->status_operator)) {
|
||||||
|
$btn = '<a href="javascript:void(0)" class="btn btn-info" onclick="showDetail(\''.$row->caseid.'\')">Detail</a>';
|
||||||
|
} else {
|
||||||
|
$btn = '<a href="javascript:void(0)" class="btn btn-info" onclick="showDetail(\''.$row->caseid.'\')">Detail</a>';
|
||||||
|
$btn = $btn.'<a href="javascript:void(0)" class="btn btn-success" onclick="showDetail(\''.$row->caseid.'\')">Terima</a>';
|
||||||
|
$btn = $btn.'<a href="javascript:void(0)" class="edit btn btn-danger" onclick="tolak(\''.$row->caseid.'\')">Tolak</a> ';
|
||||||
|
|
||||||
|
}
|
||||||
|
return $btn;
|
||||||
|
})
|
||||||
|
->toJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function detail($caseid){
|
||||||
$data = PengajuanPemutihan::
|
$data = PengajuanPemutihan::
|
||||||
select(
|
select(
|
||||||
'pengajuan_pemutihans.*',
|
'pengajuan_pemutihans.*',
|
||||||
'users.nama_gelar as dosen_pengampu',
|
'users.nama_gelar as dosen_pengampu',
|
||||||
)
|
)
|
||||||
->join('users','dosen_id','=','users.id')
|
->join('users','dosen_id','=','users.id')
|
||||||
|
->where('pengajuan_pemutihans.caseid',$caseid)
|
||||||
->get();
|
->get();
|
||||||
return view('layanan-pemutihan.index',['title' => 'Pengajuan Pemutihan | Admin Dashboard','data' => $data]);
|
return DataTables::of($data)
|
||||||
|
->toJson();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index(){
|
||||||
|
return view('layanan-pemutihan.index',[
|
||||||
|
'title' => 'Pengajuan Pemutihan | Admin Dashboard',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function tambah(){
|
public function tambah(){
|
||||||
|
@ -121,7 +164,8 @@ public function selesai($caseid, Request $request){
|
||||||
$data->status_operator = Carbon::now();
|
$data->status_operator = Carbon::now();
|
||||||
$data->keterangan_operator = 0;
|
$data->keterangan_operator = 0;
|
||||||
$data->save();
|
$data->save();
|
||||||
return redirect()->route('layanan-pemutihan.index')->with('success','Data Berhasil Disimpan, status akan diupdate menjadi selesai');
|
// return redirect()->route('layanan-pemutihan.index')->with('success','Data Berhasil Disimpan, status akan diupdate menjadi selesai');
|
||||||
|
return redirect()->back()->with('success','Data Berhasil Disimpan, status akan diupdate menjadi selesai');
|
||||||
}
|
}
|
||||||
|
|
||||||
function tolak($caseid, Request $request){
|
function tolak($caseid, Request $request){
|
||||||
|
@ -132,6 +176,6 @@ function tolak($caseid, Request $request){
|
||||||
$data->status_operator = Carbon::now();
|
$data->status_operator = Carbon::now();
|
||||||
$data->keterangan_operator = $request->keterangan_operator;
|
$data->keterangan_operator = $request->keterangan_operator;
|
||||||
$data->save();
|
$data->save();
|
||||||
return redirect()->route('layanan-pemutihan.index')->with('success','Data Berhasil Disimpan, status akan diupdate menjadi Ditolak');
|
return redirect()->back()->with('success','Data Berhasil Disimpan, status akan diupdate menjadi Ditolak');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
"laravel/sanctum": "^3.3",
|
"laravel/sanctum": "^3.3",
|
||||||
"laravel/tinker": "^2.8",
|
"laravel/tinker": "^2.8",
|
||||||
"simplesoftwareio/simple-qrcode": "^4.2",
|
"simplesoftwareio/simple-qrcode": "^4.2",
|
||||||
"spatie/laravel-permission": "^6.4"
|
"spatie/laravel-permission": "^6.4",
|
||||||
|
"yajra/laravel-datatables": "~10.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
|
|
1107
composer.lock
generated
1107
composer.lock
generated
File diff suppressed because it is too large
Load Diff
|
@ -169,6 +169,7 @@
|
||||||
App\Providers\EventServiceProvider::class,
|
App\Providers\EventServiceProvider::class,
|
||||||
App\Providers\RouteServiceProvider::class,
|
App\Providers\RouteServiceProvider::class,
|
||||||
Spatie\Permission\PermissionServiceProvider::class,
|
Spatie\Permission\PermissionServiceProvider::class,
|
||||||
|
Yajra\DataTables\DataTablesServiceProvider::class,
|
||||||
])->toArray(),
|
])->toArray(),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
127
config/datatables.php
Normal file
127
config/datatables.php
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
/*
|
||||||
|
* DataTables search options.
|
||||||
|
*/
|
||||||
|
'search' => [
|
||||||
|
/*
|
||||||
|
* Smart search will enclose search keyword with wildcard string "%keyword%".
|
||||||
|
* SQL: column LIKE "%keyword%"
|
||||||
|
*/
|
||||||
|
'smart' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Multi-term search will explode search keyword using spaces resulting into multiple term search.
|
||||||
|
*/
|
||||||
|
'multi_term' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Case insensitive will search the keyword in lower case format.
|
||||||
|
* SQL: LOWER(column) LIKE LOWER(keyword)
|
||||||
|
*/
|
||||||
|
'case_insensitive' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Wild card will add "%" in between every characters of the keyword.
|
||||||
|
* SQL: column LIKE "%k%e%y%w%o%r%d%"
|
||||||
|
*/
|
||||||
|
'use_wildcards' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Perform a search which starts with the given keyword.
|
||||||
|
* SQL: column LIKE "keyword%"
|
||||||
|
*/
|
||||||
|
'starts_with' => false,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DataTables internal index id response column name.
|
||||||
|
*/
|
||||||
|
'index_column' => 'DT_RowIndex',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of available builders for DataTables.
|
||||||
|
* This is where you can register your custom dataTables builder.
|
||||||
|
*/
|
||||||
|
'engines' => [
|
||||||
|
'eloquent' => Yajra\DataTables\EloquentDataTable::class,
|
||||||
|
'query' => Yajra\DataTables\QueryDataTable::class,
|
||||||
|
'collection' => Yajra\DataTables\CollectionDataTable::class,
|
||||||
|
'resource' => Yajra\DataTables\ApiResourceDataTable::class,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DataTables accepted builder to engine mapping.
|
||||||
|
* This is where you can override which engine a builder should use
|
||||||
|
* Note, only change this if you know what you are doing!
|
||||||
|
*/
|
||||||
|
'builders' => [
|
||||||
|
//Illuminate\Database\Eloquent\Relations\Relation::class => 'eloquent',
|
||||||
|
//Illuminate\Database\Eloquent\Builder::class => 'eloquent',
|
||||||
|
//Illuminate\Database\Query\Builder::class => 'query',
|
||||||
|
//Illuminate\Support\Collection::class => 'collection',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Nulls last sql pattern for PostgreSQL & Oracle.
|
||||||
|
* For MySQL, use 'CASE WHEN :column IS NULL THEN 1 ELSE 0 END, :column :direction'
|
||||||
|
*/
|
||||||
|
'nulls_last_sql' => ':column :direction NULLS LAST',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* User friendly message to be displayed on user if error occurs.
|
||||||
|
* Possible values:
|
||||||
|
* null - The exception message will be used on error response.
|
||||||
|
* 'throw' - Throws a \Yajra\DataTables\Exceptions\Exception. Use your custom error handler if needed.
|
||||||
|
* 'custom message' - Any friendly message to be displayed to the user. You can also use translation key.
|
||||||
|
*/
|
||||||
|
'error' => env('DATATABLES_ERROR', null),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default columns definition of dataTable utility functions.
|
||||||
|
*/
|
||||||
|
'columns' => [
|
||||||
|
/*
|
||||||
|
* List of columns hidden/removed on json response.
|
||||||
|
*/
|
||||||
|
'excess' => ['rn', 'row_num'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of columns to be escaped. If set to *, all columns are escape.
|
||||||
|
* Note: You can set the value to empty array to disable XSS protection.
|
||||||
|
*/
|
||||||
|
'escape' => '*',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of columns that are allowed to display html content.
|
||||||
|
* Note: Adding columns to list will make us available to XSS attacks.
|
||||||
|
*/
|
||||||
|
'raw' => ['action'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of columns are forbidden from being searched/sorted.
|
||||||
|
*/
|
||||||
|
'blacklist' => ['password', 'remember_token'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* List of columns that are only allowed fo search/sort.
|
||||||
|
* If set to *, all columns are allowed.
|
||||||
|
*/
|
||||||
|
'whitelist' => '*',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* JsonResponse header and options config.
|
||||||
|
*/
|
||||||
|
'json' => [
|
||||||
|
'header' => [],
|
||||||
|
'options' => 0,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default condition to determine if a parameter is a callback or not.
|
||||||
|
* Callbacks needs to start by those terms, or they will be cast to string.
|
||||||
|
*/
|
||||||
|
'callback' => ['$', '$.', 'function'],
|
||||||
|
];
|
|
@ -65,6 +65,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>CaseID</th>
|
<th>CaseID</th>
|
||||||
|
<th>Tanggal Pengajuan</th>
|
||||||
<th>Program Studi</th>
|
<th>Program Studi</th>
|
||||||
<th>Mata Kuliah</th>
|
<th>Mata Kuliah</th>
|
||||||
<th>Dosen Pengampu</th>
|
<th>Dosen Pengampu</th>
|
||||||
|
@ -73,50 +74,18 @@
|
||||||
<th>Action</th>
|
<th>Action</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
|
||||||
@foreach ($data as $datas)
|
|
||||||
<tr>
|
|
||||||
<td>@if($datas->status_operator === null)<span class="badge badge-warning">{{$datas->caseid}}</span> @elseif($datas->keterangan_operator != "0")<span class="badge badge-danger">{{$datas->caseid}}</span> @else <span class="badge badge-success">{{$datas->caseid}}</span> @endif</td>
|
|
||||||
<td>{{ $datas->program_studi }}</td>
|
|
||||||
<td>{{ $datas->mata_kuliah }} </td>
|
|
||||||
<td>{{ $datas->dosen_pengampu }} </td>
|
|
||||||
<td>{{ $datas->ruang_kelas }} </td>
|
|
||||||
<td>{{ $datas->tanggal_kelas }}</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<form action="{{ route('layanan-pemutihan.selesai',['caseid'=>$datas->caseid]) }}" method="post">@csrf
|
|
||||||
<a class="btn btn-primary" data-toggle="modal" data-target="#MD{{ $datas->id }}">Details</a>
|
|
||||||
@if($datas->status_operator == null) | <button type="submit" id="selesai" class="btn btn-success">Selesai</button> | <a class="btn btn-danger" data-toggle="modal" data-target="#Delete{{ $datas->id }}">Tolak</a>@endif
|
|
||||||
</form>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- /.modal-Delete -->
|
<!-- /.modal-Delete -->
|
||||||
<div class="modal fade" id="Delete{{$datas->id}}">
|
<div class="modal fade" id="ModalDelete">
|
||||||
<div class="modal-dialog modal-lg">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">Apa Anda Yakin Menolak Pengajuan Pemutihan <b>{{ $datas->caseid }}</b> ?</h4>
|
<h4 class="modal-title"></h4>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<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 >Alasan yang Dimasukkan Disini, Akan dikirimkan melalui Email Kepada Mahasiswa Terkait.</span>
|
|
||||||
</div>
|
|
||||||
<form action="{{ route('layanan-pemutihan.tolak',$datas->caseid) }}" method="post">
|
|
||||||
@csrf
|
|
||||||
<input type="hidden" name="id" value="{{$datas->id}}">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<label for="keterangan_operator">Alasan:</label>
|
|
||||||
<textarea name="keterangan_operator" class="form-control" id="keterangan_operator" cols="30" rows="10"
|
|
||||||
placeholder="Masukkan Alasan Disini
|
|
||||||
Masukkan Alasan Disini"></textarea>
|
|
||||||
<input type="hidden" name="id" value="{{$datas->id}}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer justify-content-between">
|
<div class="modal-footer justify-content-between">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
|
<button type="button" class="btn btn-default" data-dismiss="modal">Batal</button>
|
||||||
|
@ -129,89 +98,75 @@
|
||||||
<!-- /.modal-dialog -->
|
<!-- /.modal-dialog -->
|
||||||
</div>
|
</div>
|
||||||
<!-- Modal Detail dan Terima -->
|
<!-- Modal Detail dan Terima -->
|
||||||
<div class="modal fade" id="MD{{$datas->id}}">
|
<div class="modal fade" id="ModalDetail">
|
||||||
<div class="modal-dialog modal-lg">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">Details Data <b>{{ $datas->caseid }}</b></h4>
|
<h4 class="modal-title">Details Data</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<!-- Content goes here -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<label for="program_studi">Program Studi:</label>
|
<label for="program_studi">Program Studi:</label>
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->program_studi }}">
|
<input id="program_studi" type="text" class="form-control form-control-border" readonly value="">
|
||||||
<label for="jam_kelas">Jam Kelas:</label>
|
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->jam_kelas }}">
|
|
||||||
<label for="ruang_kelas">Ruang Kelas:</label>
|
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->ruang_kelas }}">
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<label for="mata_kuliah">Mata Kuliah:</label>
|
<label for="mata_kuliah">Mata Kuliah:</label>
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->mata_kuliah }}">
|
<input id="program_studi" type="text" class="form-control form-control-border" readonly value="">
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<label for="jam_kelas">Jam Kelas:</label>
|
||||||
|
<input id="jam_kelas" type="text" class="form-control form-control-border" readonly value="">
|
||||||
<label for="tanggal_kelas">Tanggal Kelas:</label>
|
<label for="tanggal_kelas">Tanggal Kelas:</label>
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->tanggal_kelas }}">
|
<input id="tanggal_kelas" type="text" class="form-control form-control-border" readonly value="">
|
||||||
<label for="bukti_izin_dosen">Bukti Izin Dosen:</label><br/>
|
</div>
|
||||||
<a href="{{asset('storage')}}/pemutihan/{{ $datas->bukti_izin_dosen }}" target="_blank" class="btn btn-success">Klik Disini</a>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="link-dokumen"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<label for="ruang_kelas">Ruang Kelas:</label>
|
||||||
|
<input id="ruang_kelas" type="text" class="form-control form-control-border" readonly value="">
|
||||||
|
<label for="dosen_pengampu">Dosen Pengampu:</label>
|
||||||
|
<input id="dosen_pengampu" class="form-control form-control-border" readonly value="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<label for="jurnal_kuliah">Jurnal Perkuliahan:</label>
|
||||||
|
<input id="jurnal_kuliah" class="form-control form-control-border" readonly value="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<label for="dosen_pengampu">Dosen Pengampu: {{ $datas->ttd_dosen === '-' ? 'Belum Tanda Tangan' : 'Telah TTD Pada '.$datas->ttd_dosen }}</label>
|
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->dosen_pengampu }}">
|
|
||||||
<label for="jurnal_kuliah">Jurnal Kuliah:</label>
|
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->jurnal_kuliah }}">
|
|
||||||
<label for="alasan">Alasan Pemutihan:</label>
|
<label for="alasan">Alasan Pemutihan:</label>
|
||||||
<input type="text" class="form-control form-control-border" readonly value="{{ $datas->alasan }}">
|
<input id="alasan" class="form-control form-control-border" readonly value="">
|
||||||
<label for="keterangan">Keterangan:</label>
|
|
||||||
<textarea name="keterangan" id="keterangan" cols="30" rows="10" class="form-control form-control-border" readonly>
|
|
||||||
{{ $datas->keterangan }}
|
|
||||||
</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<label for="file_transkrip">Cetak Surat Pernyataan<br>
|
<label for="keterangan">Keterangan Pemutihan:</label>
|
||||||
<a href="{{ route('layanan-pemutihan.cetak',['caseid'=>$datas->caseid]) }}" target="_blank" class="btn btn-success">Klik Disini</a>
|
<textarea name="keterangan" id="keterangan" class="form-control form-control-border" cols="30" rows="5" readonly></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if($datas->status_operator == null)
|
|
||||||
<div class="row mt-3">
|
|
||||||
<div class="col">
|
|
||||||
<form action="{{ route('layanan-pemutihan.selesai',['caseid'=>$datas->caseid]) }}" method="post">
|
|
||||||
@csrf
|
|
||||||
<input type="hidden" name="caseid" value="{{$datas->caseid}}">
|
|
||||||
<button type="submit" id="selesai" class="btn btn-success btn-block">Selesai</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer justify-content-between">
|
<div class="modal-footer justify-content-between">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
|
||||||
<span>{{$datas->caseid}}</span>
|
|
||||||
@if($datas->ttd_operator=="-")
|
|
||||||
<form action="{{ route('layanan-sempro.terima')}}" method="post">
|
|
||||||
@csrf
|
|
||||||
<input type="hidden" name="id" value="{{$datas->id}}">
|
|
||||||
<button type="submit" class="btn btn-success">Terima</button>
|
|
||||||
</form>
|
|
||||||
@endif
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- /.modal-content -->
|
<!-- /.modal-content -->
|
||||||
</div>
|
</div>
|
||||||
<!-- /.modal-dialog -->
|
<!-- /.modal-dialog -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endforeach
|
|
||||||
</tbody>
|
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<th>CaseID</th>
|
<th>CaseID</th>
|
||||||
|
<th>Tanggal Pengajuan</th>
|
||||||
<th>Program Studi</th>
|
<th>Program Studi</th>
|
||||||
<th>Mata Kuliah</th>
|
<th>Mata Kuliah</th>
|
||||||
<th>Dosen Pengampu</th>
|
<th>Dosen Pengampu</th>
|
||||||
|
@ -245,23 +200,168 @@
|
||||||
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.html5.min.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.print.min.js"></script>
|
||||||
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
|
<script src="{{asset('/')}}plugins/datatables-buttons/js/buttons.colVis.min.js"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
$("#example1").DataTable({
|
if(window.location.search === '?program_studi=s1'){
|
||||||
"responsive": true, "lengthChange": false, "autoWidth": false,
|
var url = '/admin/layanan-pemutihan/data?program_studi=s1';
|
||||||
"order": [[6, 'desc']],
|
}else if(window.location.search === '?program_studi=s2'){
|
||||||
"buttons": [{
|
var url = '/admin/layanan-pemutihan/data?program_studi=s2';
|
||||||
// New button configuration
|
}else if(window.location.search === '?program_studi=psppa'){
|
||||||
text: 'Tambah Data', // Replace with your desired button text
|
var url = '/admin/layanan-pemutihan/data?program_studi=psppa';
|
||||||
action: function ( e, dt, node, config ) {
|
}else{
|
||||||
// Perform your custom action here, e.g., open a new tab with the external link
|
var url = '/admin/layanan-pemutihan/data';
|
||||||
window.open("{{ route('layanan-pemutihan.tambah')}}", '_blank');
|
};
|
||||||
|
var table = $("#example1").DataTable({
|
||||||
|
"responsive": true,
|
||||||
|
"lengthChange": false,
|
||||||
|
"autoWidth": false,
|
||||||
|
"processing": true,
|
||||||
|
"serverSide": true,
|
||||||
|
"ajax": {
|
||||||
|
"url": url,
|
||||||
|
},
|
||||||
|
"columns": [{ // mengambil & menampilkan kolom sesuai tabel database
|
||||||
|
data: 'caseid',
|
||||||
|
// name: 'CaseID',
|
||||||
|
searchable: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'created_at',
|
||||||
|
render: function(data, type, row) {
|
||||||
|
return moment(data).format('DD-MM-YYYY hh:mm')
|
||||||
}
|
}
|
||||||
},"csv", "excel", "pdf", "print", "colvis"]
|
},
|
||||||
}).buttons().container().appendTo('#example1_wrapper .col-md-6:eq(0)');
|
{
|
||||||
|
data: 'program_studi',
|
||||||
|
// name: 'Program Studi'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'mata_kuliah',
|
||||||
|
// name: 'Mata Kuliah'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'dosen_pengampu',
|
||||||
|
// name: 'Dosen Pengampu'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'ruang_kelas',
|
||||||
|
// name: 'Ruang Kuliah'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'tanggal_kelas',
|
||||||
|
// name: 'Tanggal'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'action',
|
||||||
|
searchable: false
|
||||||
|
// name: 'Aksi'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"search": {
|
||||||
|
"caseInsensitive": true
|
||||||
|
},
|
||||||
|
order: [
|
||||||
|
[2, 'desc']
|
||||||
|
]
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
function showDetail($caseid) {
|
||||||
|
// Implement the logic to show the detail modal or navigate to the detail page
|
||||||
|
// For example, you can use AJAX to fetch the detail data and show it in a modal
|
||||||
|
// console.log($caseid);
|
||||||
|
$.ajax({
|
||||||
|
url: '/admin/layanan-pemutihan/data/'+$caseid,
|
||||||
|
method: 'GET',
|
||||||
|
success: function(data) {
|
||||||
|
// Populate the modal with the detail data
|
||||||
|
var result = data.data[0];
|
||||||
|
|
||||||
|
var modalTitle = `
|
||||||
|
<h4 class="modal-title">Details Data <strong>${result.caseid}</strong></h4>
|
||||||
|
`;
|
||||||
|
var linkDokumen = `
|
||||||
|
<label for="bukti_izin_dosen">Bukti Izin Dosen :</label>
|
||||||
|
<a href="/storage/pemutihan/${result.bukti_izin_dosen}" target="_blank" class="form-control btn btn-success" id="bukti_izin_dosen">Klik Disini</a>
|
||||||
|
<label for="cetak_bukti_pemutihan">Cetak Surat Pernyataan :</label>
|
||||||
|
<a href="/admin/layanan-pemutihan/cetak/${result.caseid}" target="_blank" class="form-control btn btn-success">Klik Disini</a>
|
||||||
|
`;
|
||||||
|
$('#ModalDetail .link-dokumen').html(linkDokumen);
|
||||||
|
$('#ModalDetail .modal-title').html(modalTitle);
|
||||||
|
$('#ModalDetail #caseid').val(result.caseid);
|
||||||
|
$('#ModalDetail #program_studi').val(result.program_studi);
|
||||||
|
$('#ModalDetail #mata_kuliah').val(result.mata_kuliah);
|
||||||
|
$('#ModalDetail #jam_kelas').val(result.jam_kelas);
|
||||||
|
$('#ModalDetail #tanggal_kelas').val(result.tanggal_kelas);
|
||||||
|
$('#ModalDetail #ruang_kelas').val(result.ruang_kelas);
|
||||||
|
$('#ModalDetail #bukti_izin_dosen').val(result.bukti_izin_dosen);
|
||||||
|
$('#ModalDetail #dosen_pengampu').val(result.dosen_pengampu);
|
||||||
|
$('#ModalDetail #jurnal_kuliah').val(result.jurnal_kuliah);
|
||||||
|
$('#ModalDetail #alasan').val(result.alasan);
|
||||||
|
$('#ModalDetail #keterangan').val(result.keterangan);
|
||||||
|
|
||||||
|
if(result.status_operator == null){
|
||||||
|
$('#ModalDetail .modal-footer').html(`
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||||
|
<form action="/admin/layanan-pemutihan/selesai/${result.caseid}" method="post">
|
||||||
|
@csrf
|
||||||
|
<button type="submit" class="btn btn-success">Kirim</button>
|
||||||
|
</form>
|
||||||
|
`);
|
||||||
|
$('#ModalDetail').modal('show');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#ModalDetail .modal-footer').html(`
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
$('#ModalDetail').modal('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function tolak($caseid) {
|
||||||
|
// Implement the logic to show the detail modal or navigate to the detail page
|
||||||
|
// For example, you can use AJAX to fetch the detail data and show it in a modal
|
||||||
|
// console.log($caseid);
|
||||||
|
$.ajax({
|
||||||
|
url: '/admin/layanan-pemutihan/data/'+$caseid,
|
||||||
|
method: 'GET',
|
||||||
|
success: function(data) {
|
||||||
|
// Populate the modal with the detail data
|
||||||
|
var result = data.data[0];
|
||||||
|
|
||||||
|
var modalTitle = `
|
||||||
|
Apa Anda Yakin Menolak Pengajuan Pemutihan <b>${result.caseid}</b> ?
|
||||||
|
`;
|
||||||
|
$('#ModalDelete .modal-title').html(modalTitle);
|
||||||
|
|
||||||
|
|
||||||
|
if(result.status_operator == null){
|
||||||
|
$('#ModalDelete .modal-body').html(`
|
||||||
|
<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 >Alasan yang Dimasukkan Disini, Akan dikirimkan melalui Email Kepada Mahasiswa Terkait.</span>
|
||||||
|
</div>
|
||||||
|
<form action="/admin/layanan-pemutihan/tolak/${result.caseid}" method="post">
|
||||||
|
@csrf
|
||||||
|
<label for="keterangan_operator">Keterangan Operator :</label>
|
||||||
|
<textarea name="keterangan_operator" id="keterangan_operator" class="form-control" cols="20" rows="10" required></textarea>
|
||||||
|
<div class="text-center mt-3">
|
||||||
|
<button type="submit" class="btn btn-danger">Tolak</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
`);
|
||||||
|
|
||||||
|
$('#ModalDelete .modal-footer').html(`
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
$('#ModalDelete').modal('show');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
<script src="{{ asset('/') }}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
|
<script src="{{ asset('/') }}plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||||
<!-- AdminLTE App -->
|
<!-- AdminLTE App -->
|
||||||
<script src="{{ asset('/') }}dist/js/adminlte.min.js"></script>
|
<script src="{{ asset('/') }}dist/js/adminlte.min.js"></script>
|
||||||
|
|
||||||
@stack('js')
|
@stack('js')
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -46,13 +46,40 @@
|
||||||
</li>
|
</li>
|
||||||
@hasanyrole('Super Administrator|Operator Akademik')
|
@hasanyrole('Super Administrator|Operator Akademik')
|
||||||
<li class="nav-header text-bold">LAYANAN AKADEMIK</li>
|
<li class="nav-header text-bold">LAYANAN AKADEMIK</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item has-treeview">
|
||||||
<a href="{{ route('layanan-pemutihan.index') }}" class="nav-link {{ Request::is('admin/layanan-pemutihan') ? 'active' : '' }}">
|
<a href="{{ route('layanan-pemutihan.index') }}" class="nav-link {{ Request::is('admin/layanan-pemutihan') ? 'active' : '' }}">
|
||||||
<i class="nav-icon fas fa-chalkboard-teacher"></i>
|
<i class="nav-icon fas fa-chalkboard-teacher"></i>
|
||||||
<p>
|
<p>
|
||||||
Pengajuan Pemutihan
|
Layanan Pemutihan
|
||||||
|
<i class="right fas fa-angle-left"></i>
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
|
<ul class="nav nav-treeview">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ route('layanan-pemutihan.index') }}" id="filter-s1-farmasi" class="nav-link {{ Request::is('admin/layanan-pemutihan/s1') ? 'active' : '' }}">
|
||||||
|
<i class="far fa-circle nav-icon"></i>
|
||||||
|
<p>Keseluruhan</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ route('layanan-pemutihan.index',['program_studi' => 's1']) }}" id="filter-s1-farmasi" class="nav-link {{ Request::is('admin/layanan-pemutihan/s1') ? 'active' : '' }}">
|
||||||
|
<i class="far fa-circle nav-icon"></i>
|
||||||
|
<p>S1 Farmasi</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ route('layanan-pemutihan.index',['program_studi' => 's2']) }}" id="filter-s2-farmasi" class="nav-link {{ Request::is('admin/layanan-pemutihan/s2') ? 'active' : '' }}">
|
||||||
|
<i class="far fa-circle nav-icon"></i>
|
||||||
|
<p>S2 Farmasi</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="{{ route('layanan-pemutihan.index',['program_studi' => 'psppa']) }}" class="nav-link {{ Request::is('admin/layanan-pemutihan/psppa') ? 'active' : '' }}">
|
||||||
|
<i class="far fa-circle nav-icon"></i>
|
||||||
|
<p>PSPPA</p>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('layanan-dpudpa.index') }}" class="nav-link {{ Request::is('admin/layanan-dpudpa') ? 'active' : '' }}">
|
<a href="{{ route('layanan-dpudpa.index') }}" class="nav-link {{ Request::is('admin/layanan-dpudpa') ? 'active' : '' }}">
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
//layanan Pemutihan kelas
|
//layanan Pemutihan kelas
|
||||||
Route::get('/layanan-pemutihan', [LayananPemutihanController::class, 'index'])->name('layanan-pemutihan.index');
|
Route::get('/layanan-pemutihan', [LayananPemutihanController::class, 'index'])->name('layanan-pemutihan.index');
|
||||||
Route::POST('/layanan-pemutihan', [LayananPemutihanController::class, 'terima'])->name('layanan-pemutihan.terima');
|
Route::POST('/layanan-pemutihan', [LayananPemutihanController::class, 'terima'])->name('layanan-pemutihan.terima');
|
||||||
|
Route::get('/layanan-pemutihan/data', [LayananPemutihanController::class, 'data'])->name('layanan-pemutihan.data');
|
||||||
|
Route::get('/layanan-pemutihan/data/{caseid}', [LayananPemutihanController::class, 'detail'])->name('layanan-pemutihan.detail');
|
||||||
Route::POST('/layanan-pemutihan/tolak/{caseid}', [LayananPemutihanController::class, 'tolak'])->name('layanan-pemutihan.tolak');
|
Route::POST('/layanan-pemutihan/tolak/{caseid}', [LayananPemutihanController::class, 'tolak'])->name('layanan-pemutihan.tolak');
|
||||||
Route::POST('/layanan-pemutihan/selesai/{caseid}', [LayananPemutihanController::class, 'selesai'])->name('layanan-pemutihan.selesai');
|
Route::POST('/layanan-pemutihan/selesai/{caseid}', [LayananPemutihanController::class, 'selesai'])->name('layanan-pemutihan.selesai');
|
||||||
//layanan Pengajuan DPU DPA
|
//layanan Pengajuan DPU DPA
|
||||||
|
|
Loading…
Reference in New Issue
Block a user