Commit ff11b2f0 by Farendi Giotivano R.P

dosen dan mahasiswa

parent 76a907b0
......@@ -5,10 +5,9 @@ namespace App\Http\Controllers\Dosen;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Proposal;
use App\Models\Kelompok;
use App\Models\Periode;
use App\Models\Jenis;
use App\Models\MonevInternal;
use App\Models\JadwalKegiatan;
use Session;
use Alert;
......@@ -16,65 +15,34 @@ use Auth;
class MonevController extends Controller
{
public function monevsatu()
public function monev($id)
{
$title = 'Monev Internal I';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($bio){
$query->where('nidn_dosen', $bio->noidentitas);
$nidn = $bio->noidentitas;
$periode = Periode::where('status', 1)->first();
$jadwal = JadwalKegiatan::where('periode_id', $periode->periode_id)->where('nama','Monev Internal '.$id)->first();
$title = 'Monev Internal '.$id;
$proposal = MonevInternal::with(['rProposal', 'rJenisMonev'])
->whereHas('rProposal', function ($query) use($nidn){
$query->whereHas('rKelompok', function ($query) use($nidn){
$query->where('nidn_dosen', $nidn);
});
})
->orderBy('kelompok_id')
->get();
$data = [
'proposal' => $proposal,
'title' => $title,
];
return view('backend.dosen.monev.indexmonev1', $data);
}
public function monevdua()
{
$title = 'Monev Internal I';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($bio){
$query->where('nidn_dosen', $bio->noidentitas);
->whereHas('rJenisMonev', function ($query) use($id){
$query->where('nama', 'Monev Internal '.$id);
})
->orderBy('kelompok_id')
->orderBy('created_at')
->get();
// dd($proposal);
$data = [
'proposal' => $proposal,
'title' => $title,
'jadwal' => $jadwal,
];
return view('backend.dosen.monev.indexmonev2', $data);
return view('backend.dosen.monev.indexmonev'.$id, $data);
}
public function monevtiga()
{
$title = 'Monev Internal I';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($bio){
$query->where('nidn_dosen', $bio->noidentitas);
})
->orderBy('kelompok_id')
->get();
$data = [
'proposal' => $proposal,
'title' => $title,
];
return view('backend.dosen.monev.indexmonev3', $data);
}
}
<?php
namespace App\Http\Controllers\Mahasiswa;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Controllers\GetDataApiController;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use App\Models\Proposal;
use App\Models\ProposalLuaran;
use Session;
use Alert;
use Auth;
class LuaranController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$luaran = $request->except('_token');
$proposal = Proposal::with(['rPeriode'])->find($luaran['proposal_id']);
$file_nama = $proposal->rPeriode->nama.'_'.$proposal->proposal_id.'_'.$luaran['jenis_luaran'].'.'.$luaran['file']->getClientOriginalExtension();
Storage::disk('static')->put('simpkm/luaran/'.$luaran['jenis_luaran'].'/'.$file_nama, file_get_contents($luaran['file']->getRealPath()));
ProposalLuaran::create([
'proposal_id' => $luaran['proposal_id'],
'judul' => $luaran['judul'],
'jenis_luaran' => $luaran['jenis_luaran'],
'keterangan_luaran' => $luaran['keterangan_luaran'],
'file_luaran' => $file_nama,
'created_user' => Auth::user()->id
]);
return redirect()->route('mahasiswa.luaran.show', encrypt($luaran['proposal_id']))->with('success', 'Proposal Berhasil ditambahkan');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$title = 'Proposal Luaran Mahasiswa';
$proposal = Proposal::with(['rluaran', 'rPeriode'])->find(decrypt($id));
$data = [
'proposal' => $proposal,
'title' => $title
];
return view('backend.mahasiswa.luaran.index', $data);
}
public function hapus(Request $request)
{
$pro = $request->except('_token');
$proposal = Proposal::query()->find(decrypt($pro['id']));
Storage::disk('static')->delete('simpkm/luaran/'.$proposal->jenis_luaran.'/'.$proposal->file_luaran);
$proposal->delete();
Alert::success('Berhasil dihapus');
return redirect()->route('mahasiswa.luaran.index');
}
public function dosen($id)
{
//
$title = 'Proposal Luaran Mahasiswa';
$proposal = Proposal::with(['rluaran', 'rPeriode'])->find(decrypt($id));
$data = [
'proposal' => $proposal,
'title' => $title
];
return view('backend.dosen.luaran.index', $data);
}
}
......@@ -11,7 +11,8 @@ use Illuminate\Support\Str;
use App\Models\Proposal;
use App\Models\Kelompok;
use App\Models\Periode;
use App\Models\Jenis;
use App\Models\MonevInternal;
use App\Models\JadwalKegiatan;
use Session;
use Alert;
......@@ -19,84 +20,70 @@ use Auth;
class MonevController extends Controller
{
public function monevsatu()
{
$title = 'Monev Internal I';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($nim){
$query->whereHas('rAnggota', function ($query) use($nim){
$query->where('nim', $nim);
});
})
->orderBy('kelompok_id')
->get();
$data = [
'proposal' => $proposal,
'title' => $title,
];
return view('backend.mahasiswa.monev.indexmonev1', $data);
}
public function monevdua()
public function monev($id)
{
$title = 'Monev Internal II';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($nim){
$query->whereHas('rAnggota', function ($query) use($nim){
$query->where('nim', $nim);
$periode = Periode::where('status', 1)->first();
$jadwal = JadwalKegiatan::where('periode_id', $periode->periode_id)->where('nama','Monev Internal '.$id)->first();
$title = 'Monev Internal '.$id;
$proposal = MonevInternal::with(['rProposal', 'rJenisMonev'])
->whereHas('rProposal', function ($query) use($nim){
$query->whereHas('rKelompok', function ($query) use($nim){
$query->whereHas('rAnggota', function ($query) use($nim){
$query->where('nim', $nim);
});
});
})
->orderBy('kelompok_id')
->whereHas('rJenisMonev', function ($query) use($id){
$query->where('nama', 'Monev Internal '.$id);
})
->orderBy('created_at')
->get();
// dd($proposal);
$data = [
'proposal' => $proposal,
'title' => $title,
'jadwal' => $jadwal,
];
return view('backend.mahasiswa.monev.indexmonev2', $data);
return view('backend.mahasiswa.monev.indexmonev'.$id, $data);
}
public function monevtiga()
public function revisiMonevEd($id)
{
$title = 'Monev Internal III';
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
//
$id = explode('__', decrypt($id));
$proposal = Proposal::with(['rJenis'])->find($id[0]);
$proposal = Proposal::with(['rKelompok', 'rJenis'])
->whereHas('rKelompok', function ($query) use($nim){
$query->whereHas('rAnggota', function ($query) use($nim){
$query->where('nim', $nim);
});
})
->orderBy('kelompok_id')
->get();
if($id[1] == 'logbook'){ $title = 'Upload Logbook'; }
elseif($id[1] == 'kemajuan'){ $title = 'Upload Laporan Kemajuan';}
elseif($id[1] == 'akhir'){ $title = 'Upload Laporan Akhir'; }
else{$title = 'Upload Revisi Proposal Monev I';}
$data = [
'proposal' => $proposal,
'title' => $title,
'type' => $id[1],
'monev' => $id[2],
];
return view('backend.mahasiswa.monev.indexmonev3', $data);
return view('backend.mahasiswa.monev.upload_monev', $data);
}
public function revisiMonev($id)
{
//
$id = explode('__', decrypt($id));
$proposal = Proposal::with(['rJenis'])->find($id[0]);
$proposal = MonevInternal::with(['rProposal'])->find($id[0]);
if($id[1] == 'logbook'){ $title = 'Upload Logbook'; }
elseif($id[1] == 'kemajuan'){ $title = 'Upload Laporan Kemajuan';}
else{ $title = 'Upload Laporan Akhir'; }
elseif($id[1] == 'akhir'){ $title = 'Upload Laporan Akhir'; }
else{$title = 'Upload Revisi Proposal Monev I';}
$data = [
'proposal' => $proposal,
......@@ -108,38 +95,35 @@ class MonevController extends Controller
return view('backend.mahasiswa.monev.upload_monev', $data);
}
public function uploadMonev(Request $request)
{
//
$pro = $request->except('_token');
$proposal = Proposal::with(['rPeriode'])->find($pro['proposal_id']);
$file_nama = $proposal->rPeriode->nama.'_'.$proposal->proposal_id.'.'.$pro['file']->getClientOriginalExtension();
Storage::disk('static')->put('simpkm/'.$pro['type'].'/'.$proposal->rPeriode->nama.'/'.$file_nama, file_get_contents($pro['file']->getRealPath()));
if($pro['type'] == 'logbook') {
$proposal = MonevInternal::with(['rProposal'])->find($pro['monev_id']);
$proposal->logbook_file = $file_nama ;
$proposal->logbook_date = now();
$proposal->save();
$file_nama = $proposal->rProposal->rPeriode->nama.'_'.$proposal->rProposal->proposal_id.'.'.$pro['file']->getClientOriginalExtension();
} elseif($pro['type'] == 'kemajuan') {
$proposal->laporan_kemajuan_file = $file_nama ;
$proposal->laporan_kemajuan_date = now();
$proposal->save();
} else {
$proposal->laporan_akhir_file = $file_nama ;
$proposal->laporan_akhir_date = now();
$proposal->save();
Storage::disk('static')->put('simpkm/monev/'.$pro['monev'].'/'.$pro['type'].'/'.$file_nama, file_get_contents($pro['file']->getRealPath()));
if($pro['type'] == 'logbook'){
$proposal->logbook_file = $file_nama;
$proposal->logbook_date = now();
}elseif($pro['type'] == 'kemajuan'){
$proposal->kemajuan_file = $file_nama;
$proposal->kemajuan_date = now();
}elseif($pro['type'] == 'akhir'){
$proposal->akhir_file = $file_nama;
$proposal->akhir_date = now();
}elseif($pro['type'] == 'proposal'){
$proposal->upload_dokumen = $file_nama;
$proposal->date_upload = now();
}
return redirect()->route('mahasiswa.monev-'.$pro['monev'])->with('success', 'Proposal Berhasil revisi');
$proposal->save();
return redirect()->route('mahasiswa.monev-index', $pro['monev'])->with('success', 'Proposal Berhasil revisi');
}
}
......@@ -165,7 +165,6 @@ class ProposalController extends Controller
public function update(Request $request, $id)
{
//
$proposal = $request->except('_token');
$pro = Proposal::with(['rPeriode'])->find($id);
......
......@@ -27,7 +27,7 @@ class SeleksiController extends Controller
$bio = auth()->user()->rBiodata;
$nim = $bio->noidentitas;
$proposal = Proposal::with(['rKelompok', 'rJenis'])
$proposal = Proposal::with(['rKelompok', 'rJenis', 'rNilai'])
->whereHas('rKelompok', function ($query) use($nim){
$query->whereHas('rAnggota', function ($query) use($nim){
$query->where('nim', $nim);
......@@ -35,6 +35,7 @@ class SeleksiController extends Controller
})
->orderBy('kelompok_id')
->get();
// dd($proposal);
$data = [
'proposal' => $proposal,
......
<?php
namespace App\Http\Controllers\Operator;
use App\Http\Controllers\Controller;
use App\Models\Admin\Role;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Models\Role as ModelsRole;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$data['users'] = User::with(['biodata','rolesCustom'])->whereHas('rolesCustom',function ($q){
$q->whereIn('name', ['satuan','verifikator']);
})->get();
$data['roles'] = Role::query()->orderBy('name')->get();
return view('admin.user.index', $data);
}
public function removeRole(Request $request)
{
DB::table('model_has_roles')
->where([['model_id', decrypt($request->user_id)], ['role_id', decrypt($request->role_id)]])
->delete();
return response('success', 200);
}
public function addRole(Request $request)
{
$data['role'] = Role::query()->find(decrypt($request->role_id));
$data['user'] = User::query()->find(decrypt($request->user_id));
$data['user']->assignRole($data['role']);
return view('admin.user.row_role', $data);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
$menu = 'artikel';
$edit = false;
$data = [
'menu' => $menu,
'edit' => $edit,
];
return view('mahasiswa.inbound.biodata.index', $data);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use App\Traits\UuidTrait;
use Illuminate\Database\Eloquent\Model;
class MonevInternal extends Model
{
use HasFactory;
use UuidTrait;
protected $table = 'monev_internal';
protected $primaryKey = 'id';
public $incrementing = false;
protected $keyType = 'string';
protected $fillable = [
'id',
'proposal_id',
'jenis_monev_id',
'upload_dokumen',
'date_upload',
'date_approval',
'status',
'created_user',
'created_at',
'updated_user',
'updated_at',
'logbook_file',
'logbook_date',
'kemajuan_file',
'kemajuan_date',
'akhir_file',
'akhir_date',
];
public function rProposal()
{
return $this->hasOne(Proposal::class, 'proposal_id', 'proposal_id')->with('rKelompok');
}
public function rJenisMonev()
{
return $this->hasOne(JenisMonev::class, 'jenis_monev_id', 'jenis_monev_id');
}
public function rNilai()
{
return $this->hasOne(VDaftarProposal::class, 'proposal_id', 'proposal_id')->with(['rReviewerBio1', 'rReviewerBio2']);
}
}
......@@ -58,19 +58,34 @@ class Proposal extends Model
return $this->hasOne(Jenis::class, 'jenis_id', 'jenis_id');
}
public function rMahasiswa()
// public function rMahasiswa()
// {
// return $this->hasOne(Jenis::class, 'jenis_id', 'jenis_id');
// }
// public function rDosen()
// {
// return $this->hasOne(Jenis::class, 'jenis_id', 'jenis_id');
// }
public function rPeriode()
{
return $this->hasOne(Jenis::class, 'jenis_id', 'jenis_id');
return $this->hasOne(Periode::class, 'periode_id', 'periode_id');
}
public function rDosen()
public function rLuaran()
{
return $this->hasOne(Jenis::class, 'jenis_id', 'jenis_id');
return $this->hasMany(ProposalLuaran::class, 'proposal_id', 'proposal_id');
}
public function rPeriode()
public function rMonev()
{
return $this->hasOne(Periode::class, 'periode_id', 'periode_id');
return $this->hasMany(MonevInternal::class, 'proposal_id', 'proposal_id');
}
public function rNilai()
{
return $this->hasOne(VDaftarProposal::class, 'proposal_id', 'proposal_id')->with(['rReviewerBio1', 'rReviewerBio2']);
}
}
......
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use App\Traits\UuidTrait;
use Illuminate\Database\Eloquent\Model;
class ProposalLuaran extends Model
{
use HasFactory;
use UuidTrait;
protected $table = 'proposal_luaran';
protected $primaryKey = 'id';
public $incrementing = false;
protected $keyType = 'string';
protected $fillable = [
'id',
'proposal_id',
'judul',
'jenis_luaran',
'ketegori_luaran',
'keterangan_luaran',
'file_luaran',
'created_user',
'created_at',
'updated_user',
'updated_at',
];
public function rProposal()
{
return $this->hasOne(Proposal::class, 'proposal_id', 'proposal_id')->with('rPeriode');
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class VDaftarProposal extends Model
{
public $incrementing = false;
protected $table = 'daftar_proposal';
public function rReviewerBio1()
{
return $this->hasOne(Reviewer::class, 'reviewer_id', 'reviewer_id_1');
}
public function rReviewerBio2()
{
return $this->hasOne(Reviewer::class, 'reviewer_id', 'reviewer_id_2');
}
}
......@@ -67,7 +67,7 @@ return [
|
*/
'timezone' => 'UTC',
'timezone' => 'Asia/Jakarta',
/*
|--------------------------------------------------------------------------
......@@ -80,7 +80,7 @@ return [
|
*/
'locale' => 'en',
'locale' => 'id',
/*
|--------------------------------------------------------------------------
......@@ -106,7 +106,7 @@ return [
|
*/
'faker_locale' => 'en_US',
'faker_locale' => 'id_ID',
/*
|--------------------------------------------------------------------------
......
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Dosen</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
<div class="col-md-4">
<div class="float-end d-none d-md-block">
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
<th>Jenis</th>
<th>Judul</th>
<th>File</th>
</tr>
</thead>
<tbody>
@foreach ($proposal->rLuaran as $item)
@php $token = Str::random(30); @endphp
<tr id="row-{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->jenis_luaran }}</td>
<td>{{ $item->judul }}</td>
<td><a href="https://statik.unesa.ac.id/simpkm/luaran/{{ $item->jenis_luaran }}/{{ $item->file_luaran }}" target="_blank" title="Logbook" class="btn btn-info btn-sm waves-effect waves-light"> <i class="fas fa-search"></i> Lihat</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
<div id="tmbhKel" class="modal fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form action="{{ route('mahasiswa.luaran.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">Tambah Luaran</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<input class="form-control" type="hidden" name="proposal_id" id="proposal_id" value="{{ $proposal->proposal_id }}">
<div class="col-12">
<h5 class="font-size-16">Jenis Luaran : </h5>
<p><select class="form-select" aria-label="Default select example" name="jenis_luaran">
<option value="Buku">Buku</option>
<option value="Jurnal">Jurnal</option>
<option value="Video">Video</option>
<option value="Produk">Produk</option>
<option value="Media">Publikasi Media</option>
</select></p>
</div>
<div class="col-12">
<h5 class="font-size-16">Judul : </h5>
<p>
<input class="form-control" type="text" name="judul" id="judul">
</p>
<div class="col-12">
<h5 class="font-size-16">Upload File : </h5>
<p>
<input type="file" name="file" class="form-control" id="input-file">
</p>
<div class="col-12">
<h5 class="font-size-16">Keterangan : </h5>
<p>
<textarea id="textarea" class="form-control" maxlength="225" rows="3" name="keterangan_luaran" ></textarea>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary waves-effect waves-light">Save changes</button>
</div>
</form>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endsection
@section('js')
<script>
function hapus(id, rowId){
Swal.fire({
title: 'Apakah anda yakin untuk menghapus usulan ini?',
text: "file yang sudah terupload juga terhapus",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'OK',
}).then((result) => {
if (result.isConfirmed) {
var token = '{{ csrf_token() }}';
var request = $.ajax({
url: '{{ route('mahasiswa.luaran.hapus') }}',
type: 'POST',
dataType: 'html',
data: {id:id, _token:token},
success: function(data){
Swal.fire({
title: 'Data Berhasil Di Hapus',
icon: 'success',
showConfirmButton: false,
timer: 1500
});
$('#'+rowId).remove();
},
error: function(xhr, status, error){
Swal.fire({
position: 'top-end',
icon: 'error',
title: xhr.responseText,
showConfirmButton: false,
timer: 3500
});
}
});
}
})
}
</script>
@endsection
......@@ -37,13 +37,13 @@
<div class="card">
<div class="card-body">
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="datatable" class="table table-bordered dt-responsive" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
<th>Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas Dosen Pembimbing</th>
{{-- <th>Identitas Dosen Pembimbing</th> --}}
<th>Jenis PKM</th>
<th>Judul Proposal</th>
<th>Status</th>
......@@ -57,7 +57,7 @@
<td>{{ $loop->iteration }}</td>
<td>{{ $item->rKelompok->kode }}</td>
<td>{{ $item->rKelompok->rBiodata->name }} <br> {{ $item->rKelompok->rBiodata->noidentitas }} <br> {{ $item->rKelompok->rBiodata->fakultas }} <br> {{ $item->rKelompok->rBiodata->prodi }}</td>
<td>{{ $item->rKelompok->nama_dosen }} <br> {{ $item->rKelompok->nidn_dosen }}</td>
{{-- <td>{{ $item->rKelompok->nama_dosen }} <br> {{ $item->rKelompok->nidn_dosen }}</td> --}}
<td>{{ $item->rJenis->nama }}</td>
<td>{{ $item->judul }}</td>
<td>
......
......@@ -36,13 +36,12 @@
<div class="card">
<div class="card-body">
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="datatable" class="table table-bordered dt-responsive" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
<th>Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas Dosen Pembimbing</th>
<th>Jenis PKM</th>
<th>Judul Proposal</th>
<th>Status</th>
......@@ -56,7 +55,6 @@
<td>{{ $loop->iteration }}</td>
<td>{{ $item->rKelompok->kode }}</td>
<td>{{ $item->rKelompok->rBiodata->name }} <br> {{ $item->rKelompok->rBiodata->noidentitas }} <br> {{ $item->rKelompok->rBiodata->fakultas }} <br> {{ $item->rKelompok->rBiodata->prodi }}</td>
<td>{{ $item->rKelompok->nama_dosen }} <br> {{ $item->rKelompok->nidn_dosen }}</td>
<td>{{ $item->rJenis->nama }}</td>
<td>{{ $item->judul }}</td>
<td>
......@@ -134,6 +132,8 @@
@endsection
@section('js')
<script src="{{ asset('theme/js/pages/datatables.init.js') }}"></script>
<script>
function hapus(id, rowId){
......
......@@ -36,13 +36,12 @@
<div class="card">
<div class="card-body">
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="datatable" class="table table-bordered dt-responsive" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
<th>Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas Dosen Pembimbing</th>
<th>Jenis PKM</th>
<th>Judul Proposal</th>
<th>Status</th>
......@@ -56,7 +55,6 @@
<td>{{ $loop->iteration }}</td>
<td>{{ $item->rKelompok->kode }}</td>
<td>{{ $item->rKelompok->rBiodata->name }} <br> {{ $item->rKelompok->rBiodata->noidentitas }} <br> {{ $item->rKelompok->rBiodata->fakultas }} <br> {{ $item->rKelompok->rBiodata->prodi }}</td>
<td>{{ $item->rKelompok->nama_dosen }} <br> {{ $item->rKelompok->nidn_dosen }}</td>
<td>{{ $item->rJenis->nama }}</td>
<td>{{ $item->judul }}</td>
<td>
......@@ -165,6 +163,8 @@
@endsection
@section('js')
<script src="{{ asset('theme/js/pages/datatables.init.js') }}"></script>
<script>
$(function(){
$('#input-file').change(function(){
......
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Mahasiswa</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
<div class="col-md-4">
<div class="float-end d-none d-md-block">
<button type="button" class="btn btn-primary waves-effect waves-light" data-bs-toggle="modal" data-bs-target="#tmbhKel">Tambah Data</button>
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
<th>Jenis</th>
<th>Judul</th>
<th>File</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@foreach ($proposal->rLuaran as $item)
@php $token = Str::random(30); @endphp
<tr id="row-{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->jenis_luaran }}</td>
<td>{{ $item->judul }}</td>
<td><a href="https://statik.unesa.ac.id/simpkm/luaran/{{ $item->jenis_luaran }}/{{ $item->file_luaran }}" target="_blank" title="Logbook" class="btn btn-info btn-sm waves-effect waves-light"> <i class="fas fa-search"></i> Lihat</a></td>
<td>
<a onclick="hapus('{{ encrypt($item->id) }}', 'row-{{ $token }}')" class="btn btn-danger btn-sm">Hapus</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
<div id="tmbhKel" class="modal fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form action="{{ route('mahasiswa.luaran.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">Tambah Luaran</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<input class="form-control" type="hidden" name="proposal_id" id="proposal_id" value="{{ $proposal->proposal_id }}">
<div class="col-12">
<h5 class="font-size-16">Jenis Luaran : </h5>
<p><select class="form-select" aria-label="Default select example" name="jenis_luaran">
<option value="Buku">Buku</option>
<option value="Jurnal">Jurnal</option>
<option value="Video">Video</option>
<option value="Produk">Produk</option>
<option value="Media">Publikasi Media</option>
</select></p>
</div>
<div class="col-12">
<h5 class="font-size-16">Judul : </h5>
<p>
<input class="form-control" type="text" name="judul" id="judul">
</p>
<div class="col-12">
<h5 class="font-size-16">Upload File : </h5>
<p>
<input type="file" name="file" class="form-control" id="input-file">
</p>
<div class="col-12">
<h5 class="font-size-16">Keterangan : </h5>
<p>
<textarea id="textarea" class="form-control" maxlength="225" rows="3" name="keterangan_luaran" ></textarea>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary waves-effect waves-light">Save changes</button>
</div>
</form>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endsection
@section('js')
<script>
function hapus(id, rowId){
Swal.fire({
title: 'Apakah anda yakin untuk menghapus usulan ini?',
text: "file yang sudah terupload juga terhapus",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'OK',
}).then((result) => {
if (result.isConfirmed) {
var token = '{{ csrf_token() }}';
var request = $.ajax({
url: '{{ route('mahasiswa.luaran.hapus') }}',
type: 'POST',
dataType: 'html',
data: {id:id, _token:token},
success: function(data){
Swal.fire({
title: 'Data Berhasil Di Hapus',
icon: 'success',
showConfirmButton: false,
timer: 1500
});
$('#'+rowId).remove();
},
error: function(xhr, status, error){
Swal.fire({
position: 'top-end',
icon: 'error',
title: xhr.responseText,
showConfirmButton: false,
timer: 3500
});
}
});
}
})
}
</script>
@endsection
......@@ -34,15 +34,15 @@
<h4 class="card-title">{!! $title !!}</h4>
<p class="card-title-desc"></p>
<div class="row mb-3">
<input class="form-control" type="hidden" id="proposal_id" name="proposal_id" value="{{ $proposal->proposal_id }}" >
<input class="form-control" type="hidden" id="monev_id" name="monev_id" value="{{ $proposal->id }}" >
<input class="form-control" type="hidden" id="type" name="type" value="{{ $type }}" >
<input class="form-control" type="hidden" id="monev" name="monev" value="{{ $monev }}" >
<label for="kode" class="col-sm-2 col-form-label">Judul</label>
<label class="col-sm-10 col-form-label">{{ $proposal->judul }}</label>
<label class="col-sm-10 col-form-label">{{ $proposal->rProposal->judul }}</label>
</div>
<div class=" row mb-3">
<label class="col-sm-2 col-form-label">Jenis PKM</label>
<label class="col-sm-10 col-form-label">{{ $proposal->rJenis->nama }}</label>
<label class="col-sm-10 col-form-label">{{ $proposal->rProposal->rJenis->nama }}</label>
</div>
<div class=" row mb-3">
<label class="col-sm-2 col-form-label">Komentar Review</label>
......
......@@ -40,7 +40,7 @@
<thead>
<tr>
<th>No</th>
<th>Kode Kelompok</th>
<th width="5%">Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas Dosen Pembimbing</th>
<th>Jenis PKM</th>
......
......@@ -102,11 +102,17 @@
</tr>
<tr>
<th>Proposal</th>
<td> <iframe id="view-pdf" width="100%" height="200px" src="https://statik.unesa.ac.id/simpkm/proposal/{{ $item->rPeriode->nama }}/{{ $item->upload_dokumen }}" frameborder="0"></iframe></td>
<td> <iframe id="view-pdf" width="100%" height="180px" src="https://statik.unesa.ac.id/simpkm/proposal/{{ $item->rPeriode->nama }}/{{ $item->upload_dokumen }}" frameborder="0"></iframe></td>
</tr>
<tr>
<th>Komentar</th>
<td> </td>
<td>
<h4 class="card-title mb-4">Reviewer 1 - {{ $item->rNilai->rReviewerBio1 ? $item->rNilai->rReviewerBio1->nama : '' }}</h4>
<p class="text-muted mb-3 pb-4">" {{ $item->rNilai->reviewer_komentar_1 }}"</p>
<h4 class="card-title mb-4">Reviewer 2 - {{ $item->rNilai->rReviewerBio2 ? $item->rNilai->rReviewerBio2->nama : '' }}</h4>
<p class="text-muted mb-3 pb-4">" {{ $item->rNilai->reviewer_komentar_2 }}"</p>
</td>
</tr>
</table>
</div>
......
......@@ -100,9 +100,9 @@
<span>Monev Internal</span>
</a>
<ul class="sub-menu" aria-expanded="false">
<li><a href="{{ URL::to('/mahasiswa/monev-satu') }}">Monev Internal I</a></li>
<li><a href="{{ URL::to('/mahasiswa/monev-dua') }}">Monev Internal II</a></li>
<li><a href="{{ URL::to('/mahasiswa/monev-tiga') }}">Monev Internal III</a></li>
<li><a href="{{ URL::to('/mahasiswa/monev/I') }}">Monev Internal I</a></li>
<li><a href="{{ URL::to('/mahasiswa/monev/II') }}">Monev Internal II</a></li>
<li><a href="{{ URL::to('/mahasiswa/monev/III') }}">Monev Internal III</a></li>
</ul>
</li>
@endif
......@@ -133,9 +133,9 @@
<span>Monev Internal</span>
</a>
<ul class="sub-menu" aria-expanded="false">
<li><a href="{{ URL::to('/dosen/monev-satu') }}">Monev Internal I</a></li>
<li><a href="{{ URL::to('/dosen/monev-dua') }}">Monev Internal II</a></li>
<li><a href="{{ URL::to('/dosen/monev-tiga') }}">Monev Internal III</a></li>
<li><a href="{{ URL::to('/dosen/monev/I') }}">Monev Internal I</a></li>
<li><a href="{{ URL::to('/dosen/monev/II') }}">Monev Internal II</a></li>
<li><a href="{{ URL::to('/dosen/monev/III') }}">Monev Internal III</a></li>
</ul>
</li>
@endif
......
......@@ -18,6 +18,7 @@ use App\Http\Controllers\Mahasiswa\ProposalController as MahasiswaProposal;
use App\Http\Controllers\Mahasiswa\BiodataController as BiodataMahasiswa;
use App\Http\Controllers\Mahasiswa\SeleksiController as SeleksiMahasiswa;
use App\Http\Controllers\Mahasiswa\MonevController as MonevMahasiswa;
use App\Http\Controllers\Mahasiswa\LuaranController as LuaranMahasiswa;
use App\Http\Controllers\Dosen\KelompokController as DosenKelompok;
use App\Http\Controllers\Dosen\BiodataController as DosenBiodata;
......@@ -83,7 +84,9 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('/seleksi-belmawa/revisi/{id}', [SeleksiMahasiswa::class, 'editBelmawa'])->name('seleksi-belmawa-revisi');
Route::post('/seleksi-belmawa/upload', [SeleksiMahasiswa::class, 'uploadBelmawa'])->name('seleksi-belmawa-upload');
//seleksi
//monev
Route::get('/monev/{id}', [MonevMahasiswa::class, 'monev'])->name('monev-index');
Route::get('/monev-satu', [MonevMahasiswa::class, 'monevsatu'])->name('monev-satu');
Route::get('/monev-dua', [MonevMahasiswa::class, 'monevdua'])->name('monev-dua');
Route::get('/monev-tiga', [MonevMahasiswa::class, 'monevtiga'])->name('monev-tiga');
......@@ -91,6 +94,10 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('/monev-revisi/{id}', [MonevMahasiswa::class, 'revisiMonev'])->name('monev-revisi');
Route::post('/monev-revisi/upload', [MonevMahasiswa::class, 'uploadMonev'])->name('monev-revisi-upload');
//luaran
Route::resource('luaran', LuaranMahasiswa::class);
Route::post('/luaran-hapus', [LuaranMahasiswa::class, 'hapus'])->name('luaran.hapus');
});
Route::name('dosen.')->prefix('dosen')->middleware(['role:admin|dosen|tendik'])->group(function () {
......@@ -114,10 +121,11 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('/seleksi-belmawa', [DosenSeleksi::class, 'seleksiBelmawa'])->name('seleksi-belmawa');
Route::get('/seleksi-internal-revisi', [DosenSeleksi::class, 'internalRevisi'])->name('seleksi-internal-revisi');
//seleksi
Route::get('/monev-satu', [DosenMonev::class, 'monevsatu'])->name('monev-satu');
Route::get('/monev-dua', [DosenMonev::class, 'monevdua'])->name('monev-duaa');
Route::get('/monev-tiga', [DosenMonev::class, 'monevtiga'])->name('monev-tiga');
//monev
Route::get('/monev/{id}', [DosenMonev::class, 'monev'])->name('monev-index');
//luaran
Route::get('/luaran-dosen/{id}', [luaranMahasiswa::class, 'dosen'])->name('luaran-dosen');
});
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment