Add SPOTA core PHP application
Add the main admin, dosen, mahasiswa, API, and service code needed to run the core legacy application with configurable upload storage.
This commit is contained in:
500
mahasiswa/page/praoutline/act.praoutline.php
Normal file
500
mahasiswa/page/praoutline/act.praoutline.php
Normal file
@@ -0,0 +1,500 @@
|
||||
<?php
|
||||
session_start();
|
||||
if ($_SESSION['login-mhs']) {
|
||||
if ($_POST) {
|
||||
include '../../../inc/helper.php';
|
||||
include '../../../inc/gcm_helper.php';
|
||||
include '../../../inc/konfigurasi.php';
|
||||
include '../../../inc/db.pdo.class.php';
|
||||
|
||||
$db = new dB($dbsetting);
|
||||
$db2 = new dB($dbsetting);
|
||||
|
||||
switch ($_POST['act']) {
|
||||
case 'upload':
|
||||
$inputDeskripsi = trim($_POST['deskripsi']);
|
||||
$inputPemb1 = trim($_POST['pilpemb1']);
|
||||
$inputPemb2 = trim($_POST['pilpemb2']);
|
||||
$inputPemb3 = trim($_POST['pilpemb3']);
|
||||
$inputPemb4 = trim($_POST['pilpemb4']);
|
||||
$kk = trim($_POST['dKKTujuan']);
|
||||
|
||||
if ($inputDeskripsi === '') {
|
||||
echo json_encode(['result' => false, 'msg' => 'Deskripsi tugas akhir wajib diisi.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($inputPemb1 === '' || $inputPemb2 === '' || $inputPemb3 === '' || $inputPemb4 === '') {
|
||||
echo json_encode(['result' => false, 'msg' => 'Pembimbing Tugas Akhir harus diisi ke 4 4 nya.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($kk === '') {
|
||||
echo json_encode(['result' => false, 'msg' => 'Kelompok keahlian wajib diisi.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$query = "SHOW TABLE STATUS LIKE 'tbpraoutline'";
|
||||
$db->runQuery($query);
|
||||
$data = $db->dbFetch();
|
||||
$newID = $data['Auto_increment'];
|
||||
$nim = $_SESSION['login-mhs']['nim'];
|
||||
$newID = time().rand(100,999);
|
||||
|
||||
$g = "SELECT * FROM tbmhs WHERE nim='$nim'";
|
||||
$db->runQuery($g);
|
||||
$noHPMahasiswa = '-';
|
||||
while ($r = $db->dbFetch()) {
|
||||
$noHPMahasiswa = $r['noHP'];
|
||||
}
|
||||
|
||||
//cek apakah draft sudah terupload sebelumnya
|
||||
$check = "SELECT id FROM tbpraoutline WHERE nim='$nim' AND status_usulan IN ('0','1')";
|
||||
$db->runQuery($check);
|
||||
if ($db->dbRows() > 0) {
|
||||
echo json_encode(['result' => false, 'msg' => 'Draft Praoutline Anda Telah DiUpload.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!isset($_FILES['berkas']) || !is_uploaded_file($_FILES['berkas']['tmp_name'])) {
|
||||
echo json_encode(['result' => false, 'msg' => 'Pastikan File Sudah dipilih']);
|
||||
exit;
|
||||
} else {
|
||||
$dir = LAMPIRAN_FILE;
|
||||
if (!is_dir($dir) && !@mkdir($dir, 0777, true) && !is_dir($dir)) {
|
||||
echo json_encode(['result' => false, 'msg' => 'Folder upload tidak tersedia.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
//$supportlist=array('pdf','zip','doc','docx');
|
||||
$namaberkas = $_FILES['berkas']['name'];
|
||||
$type = $_FILES['berkas']['type'];
|
||||
$tmpname = $_FILES['berkas']['tmp_name'];
|
||||
$ext = get_ext($namaberkas);
|
||||
|
||||
if ($ext != 'pdf') {
|
||||
echo json_encode(['result' => false, 'msg' => 'Hanya Mendukung file pdf']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$kettambahan = [
|
||||
'dosenpa' => $_POST['dosenpa'],
|
||||
'rekomjudul' => $_POST['drekomjudul'],
|
||||
'pilpemb1' => $_POST['pilpemb1'],
|
||||
'pilpemb2' => $_POST['pilpemb2'],
|
||||
'pilpemb3' => $_POST['pilpemb3'],
|
||||
'pilpemb4' => $_POST['pilpemb4'],
|
||||
];
|
||||
$ket = json_encode($kettambahan);
|
||||
|
||||
$pathfile = $dir.$newID.'-'.$nim.'.'.$ext;
|
||||
//echo $pathfile;
|
||||
if (move_uploaded_file($tmpname, $pathfile)) {
|
||||
$query = "INSERT INTO tbpraoutline SET
|
||||
nim='$nim',
|
||||
judul='".$_POST['judul']."',
|
||||
deskripsi='".$_POST['deskripsi']."',
|
||||
berkas='".$newID.'-'.$nim.'.'.$ext."',
|
||||
idProdi='".$_SESSION['login-mhs']['prodi']."',
|
||||
semester=(SELECT `values` FROM web_setting WHERE idProdi='".$_SESSION['login-mhs']['prodi']."' AND `name`='smt'),
|
||||
thn_ajaran=(SELECT `values` FROM web_setting WHERE idProdi='".$_SESSION['login-mhs']['prodi']."' AND `name`='thn_ajaran'),
|
||||
tgl_upload='".CURDATE."',
|
||||
wkt_upload='".CURTIME."',
|
||||
ket='$ket',
|
||||
kelompokKeahlian='$kk'
|
||||
";
|
||||
|
||||
//echo $query;
|
||||
if (!$db->runQuery($query)) {
|
||||
echo json_encode(['result' => false, 'msg' => 'Upload Berkas Gagal DbError']);
|
||||
@unlink($pathfile);
|
||||
exit;
|
||||
} else {
|
||||
echo json_encode(['result' => true, 'msg' => 'Upload Desain Praoutline Berhasil']);
|
||||
|
||||
$newID = $db->dbLastInsertId();
|
||||
//notif gcm
|
||||
//-----------------------------------------------------------------------------
|
||||
// $g = "SELECT regid FROM gcm_service WHERE jenisuser IN('D','K')";
|
||||
// $db->runQuery($g);
|
||||
// $registrationid = [];
|
||||
// while ($r = $db->dbFetch()) {
|
||||
// array_push($registrationid, $r['regid']);
|
||||
// }
|
||||
// $isipesan = 'Terdapat Draft Praoutline Terbaru';
|
||||
// $pesan = json_encode(['jenisnotif' => 'J', 'pesan' => $isipesan]);
|
||||
// $message = ['spota' => $pesan];
|
||||
|
||||
// sendPushNotificationToGCM($registrationid, $message);
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
$g = "SELECT * FROM tbmhs WHERE nim='$nim'";
|
||||
$db->runQuery($g);
|
||||
$namaMahasiswa = '-';
|
||||
while ($r = $db->dbFetch()) {
|
||||
$namaMahasiswa = $r['nmLengkap'];
|
||||
$noMhs = $r['noHP'];
|
||||
}
|
||||
|
||||
$g = "SELECT * FROM tb_kelompok_keahlian WHERE idKK='$kk'";
|
||||
$db->runQuery($g);
|
||||
$namaKelompokKeahlian = '-';
|
||||
while ($r = $db->dbFetch()) {
|
||||
$namaKelompokKeahlian = $r['namaKK'];
|
||||
}
|
||||
|
||||
$judulEmail = 'Permohonan Review Draft Proposal';
|
||||
$isiEmail = "Mahasiswa *$namaMahasiswa / $nim* ($noHPMahasiswa) telah mengupload draft proposal pada Kelompok Keahlian Anda *($namaKelompokKeahlian)* dengan judul *".$_POST['judul']."* dan membutuhkan review dari anda.<br><br><br>Terima Kasih.";
|
||||
|
||||
$emailTo = [];
|
||||
$listNoHP = [];
|
||||
|
||||
$g = "SELECT * FROM tbdosen WHERE kelompokKeahlian='$kk'";
|
||||
|
||||
$db->runQuery($g);
|
||||
while ($r = $db->dbFetch()) {
|
||||
$email = $r['email'];
|
||||
$noHPDosen = $r['nohp'];
|
||||
array_push($emailTo, $email);
|
||||
array_push($listNoHP, $noHPDosen);
|
||||
}
|
||||
|
||||
$isiPesanHP = "*".$judulEmail." (SPOTA)*\n\n".str_replace('<br>', "\n", $isiEmail)."\n*SPOTA INFORMATIKA UNTAN*\nKlik Disini :\nhttps://spota.untan.ac.id/dosen/dashboard.php?page=praoutline&menu=review&prid=$newID";
|
||||
$isiPesanHP = str_replace('"', "'", $isiPesanHP);
|
||||
foreach ($listNoHP as $key => $hp) {
|
||||
if(empty($hp)){
|
||||
continue;
|
||||
}
|
||||
|
||||
$hp = '62'.intval($hp);
|
||||
|
||||
$query = 'INSERT INTO tbl_notif_wa(toX, isiPesan) VALUES(
|
||||
"'.$hp.'",
|
||||
"'.$isiPesanHP.'"
|
||||
)';
|
||||
$db->runQuery($query);
|
||||
}
|
||||
|
||||
if(!empty($noMhs)){
|
||||
//$isiPesanHP = "*UPLOAD DRAFT PRAOUTLINE BERHASIL (SPOTA)*\n\nAnda berhasil mengupload draft praoutline dengan judul *".$_POST['judul']."*, pastikan anda aktif berdiskusi pada forum review draft praoutline , dikarenakan judul ini akan *terclose* secara otomatis oleh sistem SPOTA INFORMATIKA UNTAN setelah 14 hari semenjak komentar terakhir dosen tidak direspon.\n\n*SPOTA INFORMATIKA UNTAN*";
|
||||
$isiPesanHP = "*UPLOAD DRAFT PRAOUTLINE BERHASIL (SPOTA)*\n\nAnda berhasil mengupload draft praoutline dengan judul *".$_POST['judul']."*, pastikan anda aktif berdiskusi pada forum review draft praoutline , dikarenakan judul ini akan *terclose* secara otomatis oleh sistem SPOTA INFORMATIKA UNTAN setelah 14 hari semenjak waktu upload.\n\n*SPOTA INFORMATIKA UNTAN*";
|
||||
|
||||
$noMhs = '62'.intval($noMhs);
|
||||
$query = 'INSERT INTO tbl_notif_wa(toX, isiPesan) VALUES(
|
||||
"'.$noMhs.'",
|
||||
"'.$isiPesanHP.'"
|
||||
)';
|
||||
$db->runQuery($query);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
$ch = curl_init();
|
||||
$emailParams = [];
|
||||
$emailParams['to'] = json_encode($emailTo);
|
||||
$emailParams['judul'] = $judulEmail;
|
||||
$emailParams['content'] = $isiEmail;
|
||||
|
||||
$postdata = $emailParams;
|
||||
curl_setopt($ch, CURLOPT_URL, 'https://spota.untan.ac.id/steven/API/sendMail.php');
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$result = curl_exec($ch);
|
||||
*/
|
||||
|
||||
//echo $result;
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['result' => false, 'msg' => 'Upload Berkas Gagal']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'post_review':
|
||||
$idpraoutline = $_POST['idpra'];
|
||||
$nim = $_SESSION['login-mhs']['nim'];
|
||||
$prodi = $_SESSION['login-mhs']['prodi'];
|
||||
if (ctype_digit($idpraoutline)) {
|
||||
if ($_POST['text_review'] == '') {
|
||||
echo json_encode(['result' => false, 'msg' => 'Tanggapan harus diisi']);
|
||||
} else {
|
||||
$insert = "INSERT INTO tbreview SET
|
||||
idpraoutline='".$idpraoutline."',
|
||||
idProdi='".$prodi."',
|
||||
reviewer='".$nim."',
|
||||
review_text='".$_POST['text_review']."',
|
||||
jenis_review='0',
|
||||
tgl='".CURDATE."',
|
||||
wkt='".CURTIME."'";
|
||||
|
||||
if ($db->runQuery($insert)) {
|
||||
echo json_encode(['result' => true, 'msg' => 'Sukses Menambahkan Tanggapan']);
|
||||
if (count($_SESSION['selected_user']) > 0) {
|
||||
//print_r($_SESSION['selected_user']);
|
||||
$selecteduser = '';
|
||||
for ($xx = 0; $xx < count($_SESSION['selected_user']); ++$xx) {
|
||||
$notif = "INSERT INTO tmp_notif_r SET
|
||||
idkonten='$idpraoutline',
|
||||
idProdi='".$_SESSION['login-mhs']['prodi']."',
|
||||
user='".$_SESSION['selected_user'][$xx]."',
|
||||
jns_usr='D',
|
||||
tgl='".NOW."',
|
||||
msg='".$_SESSION['login-mhs']['nama_lengkap'].' ('.$_SESSION['login-mhs']['nim'].") Menambahkan Tanggapan baru',
|
||||
`read`='N'";
|
||||
//echo $notif;
|
||||
$db->runQuery($notif);
|
||||
if ($xx == 0) {
|
||||
$selecteduser .= "'".$_SESSION['selected_user'][$xx]."'";
|
||||
} else {
|
||||
$selecteduser .= ",'".$_SESSION['selected_user'][$xx]."'";
|
||||
}
|
||||
}
|
||||
//notif gcm
|
||||
//-----------------------------------------------------------------------------
|
||||
$g = "SELECT regid FROM gcm_service WHERE iduser IN($selecteduser) AND jenisuser IN('D','K')";
|
||||
$db->runQuery($g);
|
||||
if ($db->dbRows() > 0) {
|
||||
$registrationid = [];
|
||||
while ($r = $db->dbFetch()) {
|
||||
array_push($registrationid, $r['regid']);
|
||||
}
|
||||
$isipesan = $_SESSION['login-mhs']['nama_lengkap'].' Menambahkan Tanggapan baru';
|
||||
$pesan = json_encode(['jenisnotif' => 'P', 'pesan' => $isipesan]);
|
||||
$message = ['spota' => $pesan];
|
||||
|
||||
sendPushNotificationToGCM($registrationid, $message);
|
||||
}
|
||||
//--------------------------------------------------------------------------------
|
||||
}
|
||||
} else {
|
||||
echo json_encode(['result' => false, 'msg' => 'Gagal Menambahkan Tanggapan, DBError']);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'cari':
|
||||
$key = $_POST['key'];
|
||||
$jenis = $_POST['by'];
|
||||
if ($jenis == 'nim') {
|
||||
if (ctype_alnum($key)) {
|
||||
$by = " tp.nim LIKE '%$key%' ";
|
||||
} else {
|
||||
$newkey = str_replace("'", "\'", $key);
|
||||
$by = " tp.nim LIKE '%$newkey%' ";
|
||||
}
|
||||
} else {
|
||||
/*$pecah=explode(" ", $key);
|
||||
$jpecah=count($pecah);
|
||||
if($jpecah==1){
|
||||
if(ctype_alnum($key)){
|
||||
$by=" tp.judul LIKE '%$key%' ";
|
||||
}else{
|
||||
$newkey=str_replace("'", "\'", $key);
|
||||
$by=" tp.judul LIKE '%$newkey%' ";
|
||||
}
|
||||
|
||||
}else{
|
||||
$by="";
|
||||
if(ctype_alnum($key)){
|
||||
for($x=0;$x<$jpecah;$x++){
|
||||
if($x==0){
|
||||
$by.=" tp.judul like '%$pecah[$x]%' ";
|
||||
}else{
|
||||
$by.=" OR tp.judul like '%$pecah[$x]%' ";
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$newpecah=str_replace("'", "\'", $pecah[$x]);
|
||||
for($x=0;$x<$jpecah;$x++){
|
||||
if($x==0){
|
||||
$by.=" tp.judul like '%$newpecah[$x]%' ";
|
||||
}else{
|
||||
$by.=" OR tp.judul like '%$newpecah[$x]%' ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
if (ctype_alnum($key)) {
|
||||
$by = " MATCH (tp.judul) AGAINST ('".$key."')";
|
||||
} else {
|
||||
$newkey = str_replace("'", "\'", $key);
|
||||
$by = " MATCH (tp.judul) AGAINST ('".$newkey."')";
|
||||
}
|
||||
}
|
||||
//include "result-cari.php";
|
||||
/*$cari="SELECT * FROM tbpraoutline WHERE $by ORDER BY tgl_upload,wkt_upload,nim,judul";*/
|
||||
$cari = "SELECT
|
||||
tp.id,
|
||||
tp.nim,
|
||||
tp.deskripsi,
|
||||
tm.nmLengkap as nama,
|
||||
tp.judul,
|
||||
tp.tgl_upload,
|
||||
tp.wkt_upload,
|
||||
tp.status_usulan
|
||||
FROM tbpraoutline tp
|
||||
LEFT JOIN tbreview tr ON (tp.id=tr.idpraoutline)
|
||||
JOIN tbmhs tm ON (tp.nim=tm.nim)
|
||||
WHERE $by
|
||||
";
|
||||
|
||||
/*$cari="SELECT
|
||||
tp.id,
|
||||
tp.nim,
|
||||
tp.deskripsi,
|
||||
tm.nmLengkap as nama,
|
||||
tp.judul,
|
||||
tp.tgl_upload,
|
||||
tp.wkt_upload,
|
||||
tp.status_usulan,
|
||||
COUNT(tr.id) as jlhreview,
|
||||
COUNT(if(tr.jenis_review='0',1,null)) as komentar,
|
||||
COUNT(if(tr.jenis_review='1',1,null)) as putusan,
|
||||
COUNT(if(tr.putusan='1',1,null)) as setuju,
|
||||
count(if(tr.putusan='0',1,null)) as tdk_setuju,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=trh.pemb1) as dpemb1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=trh.pemb2) as dpemb2,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=trh.peng1) as dpeng1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=trh.peng2) as dpeng2
|
||||
FROM tbpraoutline tp
|
||||
LEFT JOIN tbreview tr ON (tp.id=tr.idpraoutline)
|
||||
LEFT JOIN tbrekaphasil trh ON (tp.id=trh.idpraoutline)
|
||||
JOIN tbmhs tm ON (tp.nim=tm.nim)
|
||||
WHERE $by GROUP BY tp.id";*/
|
||||
|
||||
//echo $cari;
|
||||
$db->runQuery($cari);
|
||||
$listIdPraoutline = [];
|
||||
if ($db->dbRows() > 0) {
|
||||
?>
|
||||
<h3>Hasil Pencarian '<?php echo $key; ?>'</h3>
|
||||
<hr>
|
||||
<?php
|
||||
while ($rcari = $db->dbFetch()) {
|
||||
$idPraoutline = $rcari['id'];
|
||||
|
||||
if(isset($listIdPraoutline[$idPraoutline])){
|
||||
continue;
|
||||
}
|
||||
$listIdPraoutline[$idPraoutline] = true;
|
||||
|
||||
$sql = "SELECT * FROM tbreview WHERE idpraoutline = '$idPraoutline'";
|
||||
$resultReview = $db2->runQuery($sql);
|
||||
|
||||
$banyakReview = 0;
|
||||
$banyakKomentar = 0;
|
||||
$banyakPutusan = 0;
|
||||
$banyakSetuju = 0;
|
||||
$banyakTidakSetuju = 0;
|
||||
while ($aRowReview = $db2->dbFetch($resultReview)) {
|
||||
$jenisReview = $aRowReview['jenis_review'];
|
||||
$banyakReview++;
|
||||
switch($jenisReview){
|
||||
case 0 : $banyakKomentar++; break;
|
||||
case 1 : $banyakPutusan++;
|
||||
if($aRowReview['putusan'] == '1'){
|
||||
$banyakSetuju++;
|
||||
}
|
||||
|
||||
if($aRowReview['putusan'] == '0'){
|
||||
$banyakTidakSetuju++;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ($rcari['status_usulan'] == 0) {
|
||||
$statusPraoutline = ' - <span class="label label-default">Dalam Proses</span>';
|
||||
} elseif ($rcari['status_usulan'] == 1) {
|
||||
$statusPraoutline = ' - <span class="label label-success">Judul Diterima</span>';
|
||||
} elseif ($rcari['status_usulan'] == 2) {
|
||||
$statusPraoutline = ' - <span class="label label-danger">Judul Ditolak</span>';
|
||||
} elseif ($rcari['status_usulan'] == 3) {
|
||||
$statusPraoutline = ' - <span class="label label-danger">Judul Gugur</span>';
|
||||
} ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<p><h4 style="text-align:left;margin-top:0"><a href="?page=praoutline&menu=review&prid=<?php echo $rcari['id']; ?>"><?php echo strtoupper($rcari['judul']); ?></a></h4></p>
|
||||
<?php echo substr($rcari['deskripsi'], 0, 200).' ...'; ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<p>Oleh <?php echo $rcari['nama'].' ('.$rcari['nim'].')'.$statusPraoutline; ?> - <a class="btn btn-xs btn-bricky" href="#"><i class="fa fa-trash-o"></i>Download File</a></p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<p>Jumlah Review : <span class="badge badge-info"><?php echo $banyakReview; ?></span> | Setuju : <span class="badge badge-success"><?php echo $banyakSetuju; ?></span> | Tidak Setuju : <span class="badge badge-danger"><?php echo $banyakTidakSetuju; ?></span></p>
|
||||
</div><hr/>
|
||||
</div>
|
||||
<?php switch ($rcari['status_usulan']) {
|
||||
case '1':
|
||||
$kep_final = "SELECT *,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=pemb1) as dpemb1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=pemb2) as dpemb2,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=peng1) as dpeng1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=peng2) as dpeng2
|
||||
FROM tbrekaphasil WHERE idProdi='".$_SESSION['login-mhs']['prodi']."' AND idpraoutline='".$rcari['id']."' LIMIT 1";
|
||||
$db2->runQuery($kep_final);
|
||||
if ($db2->dbRows() > 0) {
|
||||
$kep = $db2->dbFetch(); ?>
|
||||
<div class="alert alert-block alert-info">
|
||||
<!-- <h4 class="alert-heading"><i class="fa fa-info-circle"></i> Info!</h4> -->
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<strong><u>Ditetapkan</u></strong> <br/>
|
||||
Tanggal : <?php echo tanggalIndo($kep['tgl_kep'], 'j F Y'); ?> <br/>
|
||||
Waktu : <?php echo substr($kep['wkt_kep'], 0, 5); ?> <br/>
|
||||
Semester : <?php echo $kep['semester']; ?> <br/>
|
||||
Tahun Akademik : <?php echo $kep['tahun_ajaran']; ?>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<strong><u>Dosen Pembimbing & Penguji</u></strong><br/>
|
||||
Pembimbing 1 : <?php echo $kep['dpemb1']; ?> <br/>
|
||||
Pembimbing 2 : <?php echo $kep['dpemb2']; ?> <br/>
|
||||
Penguji 1 : <?php echo $kep['dpeng1']; ?> <br/>
|
||||
Penguji 2 : <?php echo $kep['dpeng2']; ?>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<strong><u>Judul Outline</u></strong><br/>
|
||||
<?php echo $kep['judul_final']; ?>
|
||||
<strong><u>Catatan</u></strong><br/>
|
||||
<?php echo $kep['ket']; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} else {
|
||||
echo '<div class="alert alert-danger">
|
||||
<i class="clip-cancel-circle"></i>
|
||||
<strong>Maaf!</strong> Data Tidak Ditemukan..
|
||||
</div>';
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case '2':
|
||||
break;
|
||||
} ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
<?php
|
||||
} else {
|
||||
echo '<div class="alert alert-danger">
|
||||
<i class="clip-cancel-circle"></i>
|
||||
<strong>Maaf!</strong> Data Tidak Ditemukan..
|
||||
</div>';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
55
mahasiswa/page/praoutline/daftar-praoutline.php
Normal file
55
mahasiswa/page/praoutline/daftar-praoutline.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="clip-home-3"></i>
|
||||
<a href="<?php ECHO MHS_PAGE;?>">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Cari Draft Praoutline
|
||||
</li>
|
||||
<li class="search-box">
|
||||
<label><?php echo tanggalIndo(date('Y-m-d H:i:s'),'j F Y, H:i');?></label>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="page-header">
|
||||
<h1>Cari Draft Praoutline <small></small></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<!-- start: SEARCH RESULT -->
|
||||
<div class="search-classic">
|
||||
<form method="POST" action="" id="cari">
|
||||
<input type="hidden" name="act" value="cari">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<div class="form-group">
|
||||
<select name="by" class="form-control">
|
||||
<option <?php echo($_POST['by']=='nim')?'selected':'';?> value="nim">N I M</option>
|
||||
<option <?php echo($_POST['by']=='judul')?'selected':'';?> value="judul">Judul Praoutline</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-7">
|
||||
<div class="form-group">
|
||||
<input type="text" name="key" placeholder="Cari..." class="required form-control" value="<?php echo $_POST['key'];?>" Title="Silakan Masukkan Kata Kunci"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<div class="form-group">
|
||||
<input type="submit" class="form-control" name="cari" value="Cari">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="loading" style="display:none;text-align:center"><br/><i class="clip-spin-alt icon-spin icon-2x"></i><br/><em> Searching..</em></div>
|
||||
<div id="result-cari"></div>
|
||||
</div>
|
||||
<!-- end: SEARCH RESULT -->
|
||||
</div>
|
||||
</div>
|
||||
43
mahasiswa/page/praoutline/pemberitahuan.php
Normal file
43
mahasiswa/page/praoutline/pemberitahuan.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="clip-home-3"></i>
|
||||
<a href="<?php ECHO MHS_PAGE;?>">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Pemberitahuan
|
||||
</li>
|
||||
<li class="search-box">
|
||||
<label><?php echo tanggalIndo(date('Y-m-d H:i:s'),'j F Y, H:i');?></label>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="page-header">
|
||||
<h1>Pemberitahuan <small></small></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<table class="table table-hover" id="tb-pemberitahuan">
|
||||
<?php
|
||||
//variabel yg ada di pemberitahuan berasal dari _header.php
|
||||
$db->runQuery($Q_notif_review);
|
||||
if($jlh_notif_review>0){
|
||||
while($r=$db->dbFetch()){
|
||||
echo '<tr>
|
||||
<td style="width:20%">'.tanggalIndo($r['tgl'],'j F Y, H:i').'</td>
|
||||
<td> <a href="?page=praoutline&menu=review#post_review" rel="nofollow" target="_blank">'.$r['msg'].'</a></td>
|
||||
</tr>';
|
||||
}
|
||||
}else{
|
||||
echo '<tr>
|
||||
<td colspan="2">Tidak Ada Pemberitahuan Terbaru</td>
|
||||
</tr>';
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
27
mahasiswa/page/praoutline/praoutline.php
Normal file
27
mahasiswa/page/praoutline/praoutline.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
switch ($_GET['menu']) {
|
||||
case 'upload':
|
||||
include 'upload.php';
|
||||
break;
|
||||
|
||||
case 'review':
|
||||
include 'review.php';
|
||||
break;
|
||||
|
||||
case 'daftar-praoutline':
|
||||
include 'daftar-praoutline.php';
|
||||
break;
|
||||
|
||||
case 'pemberitahuan':
|
||||
include 'pemberitahuan.php';
|
||||
break;
|
||||
|
||||
case 'unduhan':
|
||||
include 'unduhan.php';
|
||||
break;
|
||||
|
||||
default:
|
||||
echo "<script>location.href='".DOSEN_PAGE."dashboard.php'</script>";
|
||||
break;
|
||||
}
|
||||
595
mahasiswa/page/praoutline/review.php
Normal file
595
mahasiswa/page/praoutline/review.php
Normal file
@@ -0,0 +1,595 @@
|
||||
<?php $db = new dB($dbsetting); ?>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
|
||||
<style>
|
||||
.mic-button {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
background-color: #2196F3;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.mic-button.recording {
|
||||
background-color: #f44336;
|
||||
animation: pulse 1.5s infinite;
|
||||
}
|
||||
</style>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="clip-home-3"></i>
|
||||
<a href="<?php echo MHS_PAGE; ?>">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<?php
|
||||
if ($_GET['prid'] != '') {
|
||||
echo '
|
||||
<li>
|
||||
<a href="'.MHS_PAGE.'dashboard.php?page=praoutline&menu=&menu=daftar-praoutline">
|
||||
Daftar Judul
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Review
|
||||
</li>';
|
||||
} else {
|
||||
echo '<li class="active">
|
||||
Review
|
||||
</li>';
|
||||
}
|
||||
?>
|
||||
<li class="search-box">
|
||||
<label><?php echo tanggalIndo(date('Y-m-d H:i:s'), 'j F Y, H:i'); ?></label>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="page-header">
|
||||
<h1>Review <?php echo($_GET['nim'] != '') ? '<small>'.$_GET['nim'].'</small>' : ''; ?><small></small></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
$nim = $_SESSION['login-mhs']['nim'];
|
||||
unset($_SESSION['selected_user']);
|
||||
$where = ' WHERE ';
|
||||
if (isset($_GET['prid'])) {
|
||||
//tampilan review dari hasil pencarian
|
||||
$idpra = $_GET['prid'];
|
||||
if (!ctype_digit($idpra)) {
|
||||
$idpra = '0';
|
||||
}
|
||||
$where .= " tp.id='$idpra' ";
|
||||
$checkpraoutline = "SELECT id,nim FROM tbpraoutline WHERE id='$idpra' LIMIT 1";
|
||||
} else {
|
||||
//tampilan default review milik mahasiswa
|
||||
//print_r($_SESSION['new_review_mhs']);
|
||||
if (count($_SESSION['new_review_mhs']) > 0) {
|
||||
$id_notif_r = implode(',', $_SESSION['new_review_mhs']);
|
||||
$db->runQuery("UPDATE tmp_notif_r SET `read`='Y' WHERE id IN ($id_notif_r)");
|
||||
}
|
||||
$checkpraoutline = "SELECT id,nim FROM tbpraoutline WHERE nim='$nim' ORDER BY id DESC LIMIT 1";
|
||||
}
|
||||
//echo $checkpraoutline;
|
||||
|
||||
$db->runQuery($checkpraoutline);
|
||||
if ($db->dbRows() > 0) {
|
||||
$fromtp = $db->dbFetch();
|
||||
$selectednim = $fromtp['nim']; // nim dari praoutline
|
||||
$selectedid = $fromtp['id'];
|
||||
|
||||
if (!isset($_GET['prid'])) {
|
||||
$where .= "tp.nim='$selectednim' AND tp.id='$selectedid'";
|
||||
}
|
||||
|
||||
$sqlKK = 'SELECT * FROM tb_kelompok_keahlian';
|
||||
$db->runQuery($sqlKK);
|
||||
$dataKK = array();
|
||||
while ($kk = $db->dbFetch()) {
|
||||
$idKK = $kk['idKK'];
|
||||
$namaKK = $kk['namaKK'];
|
||||
$dataKK[$idKK] = $namaKK;
|
||||
}
|
||||
|
||||
$stat_judul = "SELECT
|
||||
tp.id,
|
||||
tp.nim,
|
||||
tp.deskripsi,
|
||||
tm.nmLengkap as nama,
|
||||
tp.judul,
|
||||
tp.tgl_upload,
|
||||
tp.wkt_upload,
|
||||
tp.status_usulan,
|
||||
tp.kelompokKeahlian
|
||||
FROM tbpraoutline tp
|
||||
JOIN tbmhs tm ON (tp.nim=tm.nim)
|
||||
$where";
|
||||
|
||||
// echo $stat_judul;
|
||||
$db->runQuery($stat_judul);
|
||||
$kelompokKeahlian = ' <span class="label label-success">Tidak Ada Kelompok Keahlian</span>';
|
||||
if ($db->dbRows() > 0) {
|
||||
$stat = $db->dbFetch();
|
||||
|
||||
$sql = "SELECT * FROM tbreview WHERE idpraoutline = '$selectedid'";
|
||||
$resultReview = $db->runQuery($sql);
|
||||
|
||||
$banyakReview = 0;
|
||||
$banyakKomentar = 0;
|
||||
$banyakPutusan = 0;
|
||||
$banyakSetuju = 0;
|
||||
$banyakTidakSetuju = 0;
|
||||
while ($aRowReview = $db->dbFetch($resultReview)) {
|
||||
$jenisReview = $aRowReview['jenis_review'];
|
||||
$banyakReview++;
|
||||
switch($jenisReview){
|
||||
case 0 : $banyakKomentar++; break;
|
||||
case 1 : $banyakPutusan++;
|
||||
if($aRowReview['putusan'] == '1'){
|
||||
$banyakSetuju++;
|
||||
}
|
||||
|
||||
if($aRowReview['putusan'] == '0'){
|
||||
$banyakTidakSetuju++;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($stat['status_usulan'] == 0) {
|
||||
$statusPraoutline = ' - <span class="label label-default">Dalam Proses</span>';
|
||||
} elseif ($stat['status_usulan'] == 1) {
|
||||
$statusPraoutline = ' - <span class="label label-success">Judul Diterima</span>';
|
||||
} elseif ($stat['status_usulan'] == 2) {
|
||||
$statusPraoutline = ' - <span class="label label-danger">Judul Ditolak</span>';
|
||||
} elseif ($stat['status_usulan'] == 3) {
|
||||
$statusPraoutline = ' - <span class="label label-danger">Judul Gugur</span>';
|
||||
}
|
||||
|
||||
$idKelompokKeahlian = $stat['kelompokKeahlian'];
|
||||
if (isset($dataKK[$idKelompokKeahlian])) {
|
||||
$kelompokKeahlian = ' <span class="label label-success">'.$dataKK[$idKelompokKeahlian].'</span>';
|
||||
} ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<p><h3 style="text-align:left;margin-top:0"><?php echo strtoupper($stat['judul']); ?></h3></p>
|
||||
<?php echo $stat['deskripsi']; ?>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<p>Kelompok Keahlian : <?php echo $kelompokKeahlian; ?></p>
|
||||
<p>Oleh <?php echo $stat['nama'].' ('.$stat['nim'].'), pada tanggal '.tanggalIndo($stat['tgl_upload'], 'j F Y').' '.$statusPraoutline; ?> - <a class="btn btn-xs btn-bricky" href="<?php echo DOMAIN_UTAMA.'/download.php?doc_id='.$stat['id']; ?>"><i class="fa fa-trash-o"></i>Download File</a> - <a target="_blank" href="<?php echo DOMAIN_UTAMA.'/cetak.php?rev_id='.$stat['id']; ?>" class="btn btn-xs btn-default" title="">Cetak Isi Review</a></p>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<p>Jumlah Review : <span class="badge badge-info"><?php echo $banyakReview; ?></span> | Setuju : <span class="badge badge-success"><?php echo $banyakSetuju; ?></span> | Tidak Setuju : <span class="badge badge-danger"><?php echo $banyakTidakSetuju; ?></span></p>
|
||||
</div><hr/>
|
||||
</div>
|
||||
<!-- UNTUK JUDUL YG SUDAH DI CLOSE SEMUA STATUS -->
|
||||
<?php
|
||||
$kep_final = "SELECT *,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=pemb1) as dpemb1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=pemb2) as dpemb2,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=peng1) as dpeng1,
|
||||
(SELECT nmLengkap FROM tbdosen WHERE tbdosen.nip=peng2) as dpeng2
|
||||
FROM tbrekaphasil
|
||||
WHERE idProdi='".$_SESSION['login-mhs']['prodi']."'
|
||||
AND idpraoutline='".$stat['id']."'
|
||||
AND kep_akhir='".$stat['status_usulan']."' LIMIT 1";
|
||||
switch ($stat['status_usulan']) {
|
||||
case '1':
|
||||
//echo $kep_final;
|
||||
$db->runQuery($kep_final);
|
||||
if ($db->dbRows() > 0) {
|
||||
$kep = $db->dbFetch(); ?>
|
||||
<div class="alert alert-block alert-info">
|
||||
<!-- <h4 class="alert-heading"><i class="fa fa-info-circle"></i> Info!</h4> -->
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<strong><u>Ditetapkan</u></strong> <br/>
|
||||
Tanggal : <?php echo tanggalIndo($kep['tgl_kep'], 'j F Y'); ?> <br/>
|
||||
Waktu : <?php echo substr($kep['wkt_kep'], 0, 5); ?> <br/>
|
||||
Semester : <?php echo $kep['semester']; ?> <br/>
|
||||
Tahun Akademik : <?php echo $kep['tahun_ajaran']; ?>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<strong><u>Dosen Pembimbing & Penguji</u></strong><br/>
|
||||
Pembimbing 1 : <?php echo $kep['dpemb1']; ?> <br/>
|
||||
Pembimbing 2 : <?php echo $kep['dpemb2']; ?> <br/>
|
||||
Penguji 1 : <?php echo $kep['dpeng1']; ?> <br/>
|
||||
Penguji 2 : <?php echo $kep['dpeng2']; ?>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<strong><u>Judul Outline</u></strong><br/>
|
||||
<?php echo $kep['judul_final']; ?><br/>
|
||||
<strong><u>Catatan</u></strong><br/>
|
||||
<?php echo $kep['ket']; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}/*else{
|
||||
echo '<div class="alert alert-danger">
|
||||
<i class="clip-cancel-circle"></i>
|
||||
<strong>Maaf!</strong> Data Tidak Ditemukan..
|
||||
</div>';
|
||||
}*/
|
||||
break;
|
||||
|
||||
case '2':
|
||||
$db->runQuery($kep_final);
|
||||
if ($db->dbRows() > 0) {
|
||||
$tolak = $db->dbFetch(); ?>
|
||||
<div class="alert alert-block alert-danger">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<strong><u>Ditetapkan</u></strong> <br/>
|
||||
Tanggal : <?php echo tanggalIndo($tolak['tgl_kep'], 'j F Y'); ?> <br/>
|
||||
Waktu : <?php echo substr($tolak['wkt_kep'], 0, 5); ?> <br/>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
<strong><u>Catatan</u></strong><br/>
|
||||
<?php echo $tolak['ket']; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
break;
|
||||
} ?>
|
||||
<!-- UNTUK JUDUL YG SUDAH DI CLOSE end -->
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if ($banyakReview > 0) {
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<?php
|
||||
$rev = "SELECT tr.*,td.nmLengkap as nmDosen,td.foto as ftdosen, tm.nmLengkap as nmMhs,tm.foto as ftmhs FROM tbreview tr
|
||||
LEFT JOIN tbdosen td ON (td.nip=tr.reviewer)
|
||||
LEFT JOIN tbmhs tm ON (tm.nim=tr.reviewer)
|
||||
HAVING tr.idpraoutline='".$stat['id']."'";
|
||||
//echo $rev;
|
||||
$db->runQuery($rev);
|
||||
if ($db->dbRows() > 0) {
|
||||
$_SESSION['selected_user'] = array();
|
||||
echo '<ol class="discussion">';
|
||||
while ($r = $db->dbFetch()) {
|
||||
if ($r['reviewer'] == $nim) {
|
||||
$jenis = 'self';
|
||||
$nama = '<span style="float:right"><small class="label label-info">'.$r['nmMhs'].'</small> <small class="label label-inverse" style="cursor:pointer;" onclick="location.href=\'?page=praoutline&menu=review"e='.$r['id'].'#post_review\'">Quote</small></span><br/>';
|
||||
$foto = $r['ftmhs'];
|
||||
} else {
|
||||
if (!in_array($r['reviewer'], $_SESSION['selected_user'])) {
|
||||
$_SESSION['selected_user'][] = $r['reviewer'];
|
||||
}
|
||||
$jenis = 'other';
|
||||
$nama = '<small class="label label-info">'.$r['nmDosen'].'</small> <small class="label label-inverse"><span style="cursor:pointer" onclick="location.href=\'?page=praoutline&menu=review"e='.$r['id'].'#post_review\'">Quote</span></small><br/>';
|
||||
$foto = $r['ftdosen'];
|
||||
}
|
||||
|
||||
if ($r['putusan'] == '1') {
|
||||
$putusan = 'Setuju';
|
||||
} elseif ($r['putusan'] == '0') {
|
||||
$putusan = 'Tidak Setuju';
|
||||
} else {
|
||||
$putusan = '';
|
||||
} ?>
|
||||
<li class="<?php echo $jenis; ?>">
|
||||
<div class="avatar">
|
||||
<img alt="" style="width:50px;height:50px;" src="../img/<?php echo $foto; ?>">
|
||||
</div>
|
||||
<div class="messages">
|
||||
<?php echo $nama; ?>
|
||||
<p>
|
||||
<?php echo bbcode_quote($r['review_text']); ?>
|
||||
</p><br/>
|
||||
<span class="time"><small><em><?php echo tanggalIndo($r['tgl'], 'j F Y'); ?>, <?php echo substr($r['wkt'], 0, 5); ?></em></small> <small class="label label-danger"><?php echo $putusan; ?></small></span>
|
||||
</div>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
echo '</ol>';
|
||||
} else {
|
||||
echo '<div class="alert alert-danger">
|
||||
<i class="clip-cancel-circle"></i>
|
||||
<strong>Maaf!</strong> Belum Ada Review..
|
||||
</div>';
|
||||
}
|
||||
/*print_r($_SESSION['selected_user']);*/ ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
//QUOTE KOMENTAR / TANGGAPAN
|
||||
if ($_GET['quote']) {
|
||||
if (ctype_digit($_GET['quote'])) {
|
||||
$nmReviewer = '';
|
||||
$text = '';
|
||||
$q = "SELECT tr.review_text,tr.tgl,tr.wkt, td.nmLengkap as nmDosen, tm.nmLengkap as nmMhs
|
||||
FROM tbreview tr
|
||||
LEFT JOIN tbdosen td ON (td.nip=tr.reviewer)
|
||||
LEFT JOIN tbmhs tm ON (tm.nim=tr.reviewer)
|
||||
WHERE tr.id='".$_GET['quote']."' LIMIT 1";
|
||||
$db->runQuery($q);
|
||||
if ($db->dbRows() > 0) {
|
||||
$qq = $db->dbFetch();
|
||||
if ($qq['nmDosen'] != '') {
|
||||
$nmReviewer = $qq['nmDosen'];
|
||||
} elseif ($qq['nmMhs'] != '') {
|
||||
$nmReviewer = $qq['nmMhs'];
|
||||
}
|
||||
|
||||
if ($qq['putusan'] == '1') {
|
||||
$putusan = 'Setuju';
|
||||
} elseif ($qq['putusan'] == '0') {
|
||||
$putusan = 'Tidak Setuju';
|
||||
} else {
|
||||
$putusan = '';
|
||||
}
|
||||
$text .= '[quote=';
|
||||
$text .= "$nmReviewer;".tanggalIndo($qq['tgl'], 'j F Y').']';
|
||||
$text .= $qq['review_text'];
|
||||
$text .= '[/quote]';
|
||||
}
|
||||
}
|
||||
}
|
||||
//QUOTE KOMENTAR / TANGAPAN end?>
|
||||
<?php
|
||||
$tanggapan = true;
|
||||
$selisih = selisih_tgl($stat['tgl_upload'], date('Y-m-d'));
|
||||
|
||||
if ($selectednim == $_SESSION['login-mhs']['nim'] and $stat['status_usulan'] == '0') {
|
||||
$tanggapan = true;
|
||||
} else {
|
||||
$tanggapan = false;
|
||||
}
|
||||
/*if($_SESSION['login-dosen']['prodi']=="2"){
|
||||
if($selisih>7){
|
||||
if($stat['setuju']>1){
|
||||
$tanggapan=false;
|
||||
}else{
|
||||
$tanggapan=true;
|
||||
}
|
||||
}
|
||||
}*/ ?>
|
||||
<?php if ($tanggapan == true) {
|
||||
?>
|
||||
<div class="col-sm-12">
|
||||
<div class="panel panel-default">
|
||||
<!-- <div class="panel-heading"></div> -->
|
||||
<form id="post_review" method="POST" action="page/praoutline/act.praoutline.php">
|
||||
<input type="hidden" name="act" value="post_review" />
|
||||
<input type="hidden" name="idpra" value="<?php echo $stat['id']; ?>" />
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
Tanggapan MIC: <br/>
|
||||
<textarea name="text_review" rows="12" id="text_review" class=" ckeditor form-control"><?php echo $text; ?></textarea>
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary" id="reply"><i class="clip-upload"></i> Submit</button>
|
||||
<span id="loading" style="display:none"><i class="clip-spin-alt icon-spin"></i><em> Loading..</em></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<button class="mic-button" id="micButton" title="Mulai/Pause Rekaman">
|
||||
<i class="fas fa-microphone"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
<?php
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Belum Ada Review dari Dosen.</div>"; ?>
|
||||
<div class="row">
|
||||
<?php
|
||||
$tanggapan = true;
|
||||
$selisih = selisih_tgl($stat['tgl_upload'], date('Y-m-d'));
|
||||
|
||||
if ($selectednim == $_SESSION['login-mhs']['nim'] and $stat['status_usulan'] == '0') {
|
||||
$tanggapan = true;
|
||||
} else {
|
||||
$tanggapan = false;
|
||||
}
|
||||
/*if($_SESSION['login-dosen']['prodi']=="2"){
|
||||
if($selisih>7){
|
||||
if($stat['setuju']>1){
|
||||
$tanggapan=false;
|
||||
}else{
|
||||
$tanggapan=true;
|
||||
}
|
||||
}
|
||||
}*/ ?>
|
||||
<?php if ($tanggapan == true) {
|
||||
?>
|
||||
<div class="col-sm-12">
|
||||
<div class="panel panel-default">
|
||||
<!-- <div class="panel-heading"></div> -->
|
||||
<form id="post_review" method="POST" action="page/praoutline/act.praoutline.php">
|
||||
<input type="hidden" name="act" value="post_review" />
|
||||
<input type="hidden" name="idpra" value="<?php echo $stat['id']; ?>" />
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
Tanggapan OKE: <br/>
|
||||
<textarea name="text_review" rows="12" id="text_review" class="ckeditor form-control"></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary" id="reply"><i class="clip-upload"></i> Submit</button>
|
||||
<span id="loading" style="display:none"><i class="clip-spin-alt icon-spin"></i><em> Loading..</em></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<button class="mic-button" id="micButton" title="Mulai/Pause Rekaman">
|
||||
<i class="fas fa-microphone"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
} ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Maaf. Data Review Tidak Ditemukan. </div>";
|
||||
}
|
||||
|
||||
?>
|
||||
<script>
|
||||
class SpeechToText {
|
||||
constructor() {
|
||||
this.micButton = document.getElementById('micButton');
|
||||
this.isRecording = false;
|
||||
this.recognition = null;
|
||||
this.lastFinalTranscript = '';
|
||||
this.init();
|
||||
}
|
||||
|
||||
init() {
|
||||
if (!('SpeechRecognition' in window || 'webkitSpeechRecognition' in window)) {
|
||||
this.showError('Browser tidak mendukung fitur speech recognition');
|
||||
this.micButton.disabled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
|
||||
this.setupRecognition();
|
||||
this.setupEventListeners();
|
||||
}
|
||||
|
||||
setupRecognition() {
|
||||
this.recognition.lang = 'id-ID';
|
||||
this.recognition.continuous = true;
|
||||
this.recognition.interimResults = true;
|
||||
|
||||
this.recognition.onstart = () => {
|
||||
this.isRecording = true;
|
||||
this.micButton.classList.add('recording');
|
||||
};
|
||||
|
||||
this.recognition.onresult = (event) => {
|
||||
let finalTranscript = '';
|
||||
for (let i = event.resultIndex; i < event.results.length; ++i){
|
||||
const transcript = event.results[i][0].transcript;
|
||||
|
||||
if(event.results[i].isFinal){
|
||||
finalTranscript += transcript;
|
||||
}
|
||||
}
|
||||
|
||||
if(finalTranscript && finalTranscript !== this.lastFinalTranscript){
|
||||
this.lastFinalTranscript = finalTranscript;
|
||||
|
||||
const editor = CKEDITOR.instances["text_review"];
|
||||
editor.focus();
|
||||
editor.insertText(' ' + finalTranscript);
|
||||
}
|
||||
};
|
||||
|
||||
this.recognition.onend = () => {
|
||||
this.isRecording = false;
|
||||
this.micButton.classList.remove('recording');
|
||||
};
|
||||
|
||||
this.recognition.onerror = (event) => {
|
||||
this.handleError(event.error);
|
||||
};
|
||||
}
|
||||
|
||||
setupEventListeners() {
|
||||
this.micButton.addEventListener('click', () => this.toggleRecording());
|
||||
|
||||
// Handle window focus changes
|
||||
window.addEventListener('focus', () => {
|
||||
if (this.isRecording) {
|
||||
this.recognition.stop();
|
||||
this.recognition.start();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
toggleRecording() {
|
||||
if (!this.isRecording) {
|
||||
this.startRecording();
|
||||
} else {
|
||||
this.stopRecording();
|
||||
}
|
||||
}
|
||||
|
||||
startRecording() {
|
||||
try {
|
||||
this.recognition.start();
|
||||
} catch (error) {
|
||||
this.handleError(error);
|
||||
}
|
||||
}
|
||||
|
||||
stopRecording() {
|
||||
try {
|
||||
this.recognition.stop();
|
||||
} catch (error) {
|
||||
this.handleError(error);
|
||||
}
|
||||
}
|
||||
|
||||
handleError(error) {
|
||||
console.error('Speech recognition error:', error);
|
||||
this.isRecording = false;
|
||||
this.micButton.classList.remove('recording');
|
||||
|
||||
let errorMessage = 'Terjadi kesalahan saat merekam suara';
|
||||
switch (error) {
|
||||
case 'no-speech':
|
||||
errorMessage = 'Tidak terdeteksi suara';
|
||||
break;
|
||||
case 'audio-capture':
|
||||
errorMessage = 'Tidak dapat mengakses mikrofon';
|
||||
break;
|
||||
case 'not-allowed':
|
||||
errorMessage = 'Akses mikrofon ditolak';
|
||||
break;
|
||||
}
|
||||
this.showError(errorMessage);
|
||||
}
|
||||
|
||||
showError(message) {
|
||||
// Create error notification
|
||||
const errorDiv = document.createElement('div');
|
||||
errorDiv.className = 'alert alert-danger';
|
||||
errorDiv.textContent = message;
|
||||
document.querySelector('.comment-section').insertBefore(errorDiv, document.querySelector('h3'));
|
||||
|
||||
// Remove error after 5 seconds
|
||||
setTimeout(() => errorDiv.remove(), 5000);
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
if (this.recognition) {
|
||||
this.recognition.stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize speech to text
|
||||
const speechToText = new SpeechToText();
|
||||
|
||||
// Cleanup on page unload
|
||||
window.addEventListener('beforeunload', () => {
|
||||
speechToText.cleanup();
|
||||
});
|
||||
</script>
|
||||
51
mahasiswa/page/praoutline/unduhan.php
Normal file
51
mahasiswa/page/praoutline/unduhan.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="clip-home-3"></i>
|
||||
<a href="<?php echo MHS_PAGE; ?>">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Unduhan
|
||||
</li>
|
||||
<li class="search-box">
|
||||
<label><?php echo tanggalIndo(date('Y-m-d H:i:s'), 'j F Y, H:i'); ?></label>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="page-header">
|
||||
<h1>Unduhan <small></small></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama</th>
|
||||
<th>Lihat</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>SOP Tugas Akhir</td>
|
||||
<td><a target="_blank" href="Berkas TA.zip">Lihat</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>SOP Draft Proposal 2020</td>
|
||||
<td><a target="_blank" href="https://drive.google.com/drive/folders/1LiyqXzUu_RHH6uluT8Dl42JN5c4-B3iZ?usp=sharing">Lihat</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>Pedoman Penulisan Skripsi (ver.2015)</td>
|
||||
<td><a target="_blank" href="https://drive.google.com/drive/folders/1zZ_W2tFc-2D1tLiad4DCJu3wPg1vdg7J?usp=sharing">Lihat</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
188
mahasiswa/page/praoutline/upload.php
Normal file
188
mahasiswa/page/praoutline/upload.php
Normal file
@@ -0,0 +1,188 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="clip-home-3"></i>
|
||||
<a href="<?php echo MHS_PAGE; ?>">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Upload
|
||||
</li>
|
||||
<li class="search-box">
|
||||
<label><?php echo tanggalIndo(date('Y-m-d H:i:s'), 'j F Y, H:i'); ?></label>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="page-header">
|
||||
<h1>Upload Draft Praoutline <small></small></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
if($bolehUploadDraft == "0"){?>
|
||||
<div class="alert alert-danger">
|
||||
<h4 class="alert-heading">Perhatian</h4>
|
||||
<b>Anda tidak memiliki akses untuk mengajukan draft praoutline, hubungi Admin Prodi (ibu Tuning) untuk diberikan akses upload. </b>
|
||||
</div>
|
||||
<?php
|
||||
}else{
|
||||
|
||||
|
||||
$db = new dB($dbsetting);
|
||||
$nim = $_SESSION['login-mhs']['nim'];
|
||||
$check = "SELECT id FROM tbpraoutline WHERE nim='$nim' AND status_usulan IN ('0','1')"; //tambahkan AND status_usulan NOT IN ('2','3') jika judul telah gugur atau ditolak
|
||||
$db->runQuery($check);
|
||||
if ($db->dbRows() > 0) {
|
||||
?>
|
||||
<div class="alert alert-block alert-info fade in">
|
||||
<h4 class="alert-heading"><i class="fa fa-exclamation-triangle"></i> Draft Praoutline Anda Telah Diupload</h4>
|
||||
<p>
|
||||
Silakan lihat menu review untuk melihat review dari dosen.
|
||||
</p>
|
||||
<p>
|
||||
<a href="?page=praoutline&menu=review" class="btn btn-blue">
|
||||
Lihat Review
|
||||
</a>
|
||||
<?php
|
||||
//informatika only
|
||||
if ($_SESSION['login-mhs']['prodi'] == '2') {
|
||||
?>
|
||||
<a href="../spotaif.apk" class="btn btn-blue">
|
||||
Download Aplikasi Android
|
||||
</a>
|
||||
<?php
|
||||
} ?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<div class="alert alert-danger">
|
||||
<h4 class="alert-heading">Perhatian</h4>
|
||||
<ul>
|
||||
<li><strong>Pastikan File Yang Anda Upload Berupa File PDF</strong></li>
|
||||
<li><strong>Periksa Terlebih Dahulu File Draft Praoutline Yang Akan diupload</strong></li>
|
||||
<li><strong>Jika Terdapat Kesalahan Upload Draft Praoutline Harap Menghubungi Administrator SPOTA Prodi Masing-Masing</strong></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<?php
|
||||
$d = "SELECT * FROM tbdosen WHERE idProdi='".$_SESSION['login-mhs']['prodi']."' ORDER by nmLengkap ASC";
|
||||
$kkSql = 'SELECT * FROM tb_kelompok_keahlian'; ?>
|
||||
<form id="upload_usulan" method="POST" enctype="multipart/form-data" action="page/praoutline/act.praoutline.php">
|
||||
<input type="hidden" name="act" value="upload" />
|
||||
<input type="hidden" name="nim" value="<?php echo $_SESSION['login-mhs']['nim']; ?>" />
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="panel panel-default">
|
||||
<!-- <div class="panel-heading"></div> -->
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<input type="text" name="judul" placeholder="JUDUL SKRIPSI" class="required form-control" Title="<span style='color:red'>Silakan masukkan judul skripsi yang akan diajukan.</span>"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
Deskripsi
|
||||
<textarea name="deskripsi" id="deskripsi" class="ckeditor form-control" placeholder="Deskripsi"></textarea>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-5">
|
||||
<label for="file-upload">
|
||||
Berkas (pdf file)
|
||||
</label>
|
||||
<input type="file" name="berkas" id="berkas" class="form-control required" title="<span style='color:red'>Silakan Pilih Berkas untuk diupload.</span>"/>
|
||||
</div>
|
||||
<div class="form-group col-sm-5">
|
||||
<label for="dosen-pa">
|
||||
Dosen Pembimbing Akademik (PA)
|
||||
</label>
|
||||
<select name="dosenpa" id="dosenpa" class="form-control search-select required" title="<span style='color:red'>Dosen PA tidak boleh kosong.</span>">
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group col-sm-5">
|
||||
<label for="dosen-pa">
|
||||
Pilih Dosen Pembimbing
|
||||
</label>
|
||||
<select name="pilpemb1" id="pilpemb1" class="form-control search-select" >
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select><br>
|
||||
<select name="pilpemb2" id="pilpemb2" class="form-control search-select" >
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select><br>
|
||||
<select name="pilpemb3" id="pilpemb3" class="form-control search-select" >
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select><br>
|
||||
<select name="pilpemb4" id="pilpemb4" class="form-control search-select" >
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-5">
|
||||
<label for="dosen-pa">
|
||||
Dosen Yang Merekomendasikan Judul
|
||||
</label>
|
||||
<select name="drekomjudul" id="drekomjudul" class="form-control search-select">
|
||||
<?php
|
||||
$db->runQuery($d);
|
||||
echo '<option value=""> Pilih Dosen </option>';
|
||||
while ($pa = $db->dbFetch()) {
|
||||
echo '<option value="'.$pa['nmLengkap'].'">'.$pa['nmLengkap'].'</option>';
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-5">
|
||||
<label for="dosen-pa">
|
||||
KK yang dituju
|
||||
</label>
|
||||
<select name="dKKTujuan" id="dKKTujuan" class="form-control search-select required" title="<span style='color:red'>Kelompok keahlian tidak boleh kosong.</span>">
|
||||
<?php
|
||||
$db->runQuery($kkSql);
|
||||
echo '<option value=""> Pilih Kelompok Keahlian </option>';
|
||||
while ($kk = $db->dbFetch()) {
|
||||
echo '<option value="'.$kk['idKK'].'">'.$kk['namaKK'].'</option>';
|
||||
} ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary" id="btnUpload"><i class="clip-upload"></i> Upload</button>
|
||||
<span id="loading" style="display:none"><i class="clip-spin-alt icon-spin"></i><em> Loading..</em></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user