publikasi jurnal

parent bf5a22d7
......@@ -275,7 +275,7 @@ class PenelitianSumberDanaController extends Controller
if (!is_null($dosen) && $request->name == 'dosen') {
$store['jenis'] = $dosen->jenis;
$store['nama'] = $dosen->nama;
$store['nama'] = $dosen->name;
} elseif (is_null($dosen) && $request->name == 'non_dosen') {
$store['jenis'] = 'l';
......
......@@ -3,7 +3,13 @@
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Models\Biodata;
use App\Models\User\PublikasiJurnal;
use App\Models\User\PublikasiJurnalAnggota;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Validator;
class PublikasiJurnalController extends Controller
{
......@@ -14,8 +20,8 @@ class PublikasiJurnalController extends Controller
*/
public function index()
{
//
return view('user.publikasijurnal.index');
$data['rs'] = PublikasiJurnal::query()->orderBy('updated_at', 'desc')->get();
return view('user.publikasijurnal.index', $data);
}
/**
......@@ -26,7 +32,8 @@ class PublikasiJurnalController extends Controller
public function create()
{
//
return view('user.publikasijurnal.create');
$data['edit'] = false;
return view('user.publikasijurnal.create', $data);
}
/**
......@@ -37,7 +44,144 @@ class PublikasiJurnalController extends Controller
*/
public function store(Request $request)
{
//
$data = $request->except('_token');
Validator::make($data, PublikasiJurnal::RULES, PublikasiJurnal::ERROR_MESSAGES)->validate();
$data['userid_created'] = Auth::user()->id;
$data['userid_updated'] = Auth::user()->id;
$data['halaman'] = abs($data['halaman1']).'-'.abs($data['halaman2']);
try{
$publikasi = PublikasiJurnal::query()->create($data);
return redirect()->route('publikasijurnal.next-form', ['id' => encrypt($publikasi->id)]);
}
catch(Exception $ex){
return redirect()->back()->withInput();
}
return redirect()->back()->withInput();
}
public function nextForm(Request $request, $id)
{
$anggota = PublikasiJurnalAnggota::query()->with('biodata')->where('publikasijurnal_id', decrypt($id))->get();
if(count($anggota) < 1 || is_null($request->next_state)){
$data['id'] = $id;
$data['keanggotaan'] = PublikasiJurnalAnggota::KEANGGOTAAN;
$data['dosen_anggota'] = $anggota->whereNotNull('nidn');
$data['non_dosen_anggota'] = $anggota->whereNull('nidn');
return view('user.publikasijurnal.create_anggota', $data);
}
else if($request->next_state == 'finish' && count($anggota) > 0){
return redirect()->route('publikasijurnal.index');
}
}
public function editAnggota(Request $request, $id)
{
$anggota = PublikasiJurnalAnggota::query()->with('biodata')->where('publikasijurnal_id', decrypt($id))->get();
$data['id'] = $id;
$data['keanggotaan'] = PublikasiJurnalAnggota::KEANGGOTAAN;
$data['dosen_anggota'] = $anggota->whereIn('jenis', ['t', 'd']);
$data['non_dosen_anggota'] = $anggota->whereIn('jenis', ['l']);
return view('user.publikasijurnal.create_anggota', $data);
}
public function deleteAnggota(Request $request)
{
try{
$anggota = PublikasiJurnalAnggota::query()->find(decrypt($request->id))->delete();
return response('Success', 200);
}
catch(Exception $ex){
return response('Error', 500);
}
}
public function simpanAnggota(Request $request, $id)
{
$allAnggota = PublikasiJurnalAnggota::where('publikasijurnal_id', decrypt($id))->get();
$anggota = $allAnggota->where('nidn', $request->nidn);
$ketua = $allAnggota->where('peran', PublikasiJurnalAnggota::KEANGGOTAAN['k']);
if( count($ketua) > 0 && $request->keanggotaan == PublikasiJurnalAnggota::KEANGGOTAAN['k']){
return response('Ketua tidak boleh lebih dari satu', 500);
}
if(count($anggota) < 1 || is_null($request->nidn)){
$dosen = null;
if(!is_null($request->nidn)){
$dosen = Biodata::query()->where('nidn', $request->nidn)->first();
}
$data = $this->arrayDataAnggota($request);
$store = $this->getStoredArrayDataAnggota($request, $id, $dosen);
if(is_null($dosen) && $request->name == 'dosen'){
return response('NIDN tidak terdaftar sebagai dosen atau belum tervalidasi', 500);
}
elseif(!is_null($dosen) && $request->name == 'non_dosen'){
return response('NIDN terdaftar sebagai dosen', 500);
}
try{
Validator::make($store, PublikasiJurnalAnggota::RULES, PublikasiJurnalAnggota::ERROR_MESSAGES)->validate();
$anggota = PublikasiJurnalAnggota::query()->create($store);
$data['id'] = $anggota->id;
return view('user.publikasijurnal.row_anggota', $data);
}
catch(Exception $ex){
return response('Data yang diberikan tidak lengkap atau tidak valid', 500);
}
}
return response('Data sudah ada', 500);
}
private function arrayDataAnggota(Request $request)
{
$data['no'] = $request->no;
$data['nama'] = $request->nama;
$data['keanggotaan'] = $request->keanggotaan;
$data['prodi'] = $request->prodi;
$data['nidn'] = encrypt($request->nidn);
$data['name'] = $request->name;
return $data;
}
public function getStoredArrayDataAnggota(Request $request, $id, $dosen)
{
$store['publikasijurnal_id'] = decrypt($id);
$store['nidn'] = $request->nidn;
$store['peran'] = $request->keanggotaan;
if (!is_null($dosen) && $request->name == 'dosen') {
$store['jenis'] = $dosen->jenis;
$store['nama'] = $dosen->name;
} elseif (is_null($dosen) && $request->name == 'non_dosen') {
$store['jenis'] = 'l';
$store['institusi'] = $request->prodi;
$store['nama'] = $request->nama;
}
return $store;
}
/**
......@@ -59,7 +203,9 @@ class PublikasiJurnalController extends Controller
*/
public function edit($id)
{
//
$data['data'] = PublikasiJurnal::query()->find(decrypt($id));
$data['edit'] = true;
return view('user.publikasijurnal.create', $data);
}
/**
......@@ -71,7 +217,20 @@ class PublikasiJurnalController extends Controller
*/
public function update(Request $request, $id)
{
//
$data = $request->except('_token');
Validator::make($data, PublikasiJurnal::RULES, PublikasiJurnal::ERROR_MESSAGES)->validate();
$data['userid_updated'] = Auth::user()->id;
$data['halaman'] = abs($data['halaman1']).'-'.abs($data['halaman2']);
try{
PublikasiJurnal::query()->find(decrypt($id))->update($data);
return redirect()->route('publikasijurnal.index');
}
catch(Exception $ex){
return redirect()->back()->withInput();
}
}
/**
......
<?php
namespace App\Models\User;
use App\Traits\UuidTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PublikasiJurnal extends Model
{
use HasFactory;
use UuidTrait;
public $incrementing = false;
protected $table = 'publikasijurnal';
protected $keyType = 'string';
protected $fillable = ['judul', 'nama_jurnal', 'nomor', 'issn', 'volume', 'halaman', 'url', 'userid_created', 'user_id_updated'];
public const RULES = [
'judul' => 'required',
'nama_jurnal' => 'required',
'nomor' => 'required',
'issn' => 'required',
'volume' => 'required',
'halaman1' => 'required',
'halaman2' => 'required',
'url' => 'required'
];
public const ERROR_MESSAGES = [
'judul.required' => 'judul tidak boleh kosong',
'nama_jurnal.required' => 'nama jurnal tidak boleh kosong',
'nomor.required' => 'nomor tidak boleh kosong',
'issn.required' => 'issn tidak boleh kosong',
'volume.required' => 'volume tidak boleh kosong',
'halaman1.required' => 'halaman tidak boleh kosong',
'halaman2.required' => 'halaman tidak boleh kosong',
'url.required' => 'url tidak boleh kosong'
];
public function anggota()
{
return $this->hasMany(PublikasiJurnalAnggota::class, 'publikasijurnal_id', 'id');
}
}
<?php
namespace App\Models\User;
use App\Models\Biodata;
use App\Traits\UuidTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PublikasiJurnalAnggota extends Model
{
use HasFactory;
use UuidTrait;
public $incrementing = false;
protected $table = 'publikasijurnal_anggota';
protected $keyType = 'string';
protected $fillable = [
'nama', 'publikasijurnal_id', 'nidn', 'peran', 'tugas', 'institusi', 'jenis', 'userid_created', 'userid_updated', 'created_at', 'updated_at',
];
public const RULES = [
'nama' => 'required',
'publikasijurnal_id' => 'required',
'peran' => 'required',
'jenis' => 'required'
];
public const ERROR_MESSAGES = [
'nama.required' => 'nama tidak boleh kosong',
'publikasijurnal_id.required' => 'publikasijurnal tidak boleh kosong',
'peran.required' => 'peran tidak boleh kosong',
'jenis' => 'jenis tidak boleh kosong'
];
public const KEANGGOTAAN = [
'k'=>'Ketua',
'a'=>'Anggota'
];
public function biodata()
{
return $this->belongsTo(Biodata::class, 'nidn', 'nidn');
}
}
......@@ -134,8 +134,8 @@
<div class="account-settings-footer">
<div class="as-footer-container">
<button id="multiple-reset" class="btn btn-warning">Batal</button>
<button id="multiple-messages" class="btn btn-primary">Simpan</button>
<a href="{{ route('publikasijurnal.index') }}" id="multiple-reset" class="btn btn-warning">Batal</a>
<button type="submit" id="multiple-messages" class="btn btn-primary">Simpan</button>
</div>
</div>
</form>
......
......@@ -18,6 +18,7 @@
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
<div class="widget-content widget-content-area br-6">
<div class="table-responsive mb-4 mt-4">
<a href="{{ url('penelitiansumber/create') }}" class="btn btn-primary mb-2"><i data-feather="file-plus"></i> Tambah</a>
<table id="zero-config" class="table table-hover" style="width:100%">
<thead>
<tr>
......
......@@ -15,13 +15,16 @@
$menu = 'dashboard';
@endphp
<div class="account-settings-container layout-top-spacing">
<form action="{{ $edit ? route('publikasijurnal.update', ['publikasijurnal' => encrypt($data->id)]) : route('publikasijurnal.store') }}" method="POST">
@if ($edit)
{{ method_field('PUT') }}
@endif
@csrf
<div class="account-content">
<div class="scrollspy-example" data-spy="scroll" data-target="#account-settings-scroll" data-offset="-100">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 layout-spacing">
<form id="contact" class="section contact">
<div class="info">
<h5 class="">Data Publikasi Jurnal Internasional</h5>
<div class="row">
......@@ -30,31 +33,31 @@
<div class="col-md-12">
<div class="form-group">
<label>Judul</label>
<textarea class="form-control" id="judul" placeholder="Judul" rows="3"></textarea>
<textarea class="form-control" id="judul" placeholder="Judul" name="judul" rows="3">{{ $edit ? $data->judul : old('judul') }}</textarea>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Nama Jurnal</label>
<input type="text" class="form-control mb-4" id="nama" placeholder="Nama Jurnal">
<input type="text" class="form-control mb-4" id="nama" name="nama_jurnal" placeholder="Nama Jurnal" value="{{ $edit ? $data->nama_jurnal : old('nama_jurnal') }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>ISSN</label>
<input type="text" class="form-control mb-4" id="issn" placeholder="ISSN">
<input type="text" class="form-control mb-4" id="issn" placeholder="ISSN" name="issn" value="{{ $edit ? $data->issn : old('issn') }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Volume</label>
<input type="text" class="form-control mb-4" id="volume" placeholder="Volume">
<input type="text" class="form-control mb-4" id="volume" placeholder="Volume" name="volume" value="{{ $edit ? $data->volume : old('volume') }}">
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Nomor</label>
<input type="text" class="form-control mb-4" id="nomor" placeholder="Nomor">
<input type="text" class="form-control mb-4" id="nomor" placeholder="Nomor" name="nomor" value="{{ $edit ? $data->nomor : old('nomor') }}">
</div>
</div>
<div class="col-md-6">
......@@ -62,7 +65,7 @@
<div class="row">
<div class="col-xl-5">
<div class="form-group">
<input type="text" class="form-control mb-4" id="halaman">
<input type="number" min="0" class="form-control mb-4" id="halaman1" name="halaman1" value="{{ $edit ? explode('-', $data->halaman)[0] : old('halaman1') }}" required>
</div>
</div>
<div class="col-xl-1">
......@@ -72,7 +75,7 @@
</div>
<div class="col-xl-5">
<div class="form-group">
<input type="text" class="form-control mb-4" id="halaman">
<input type="number" min="0" class="form-control mb-4" id="halaman2" name="halaman2" value="{{ $edit ? explode('-', $data->halaman)[1] : old('halaman2') }}" required>
</div>
</div>
</div>
......@@ -80,199 +83,16 @@
<div class="col-md-6">
<div class="form-group">
<label>Url Artikel</label>
<input type="text" class="form-control mb-4" id="tempat" placeholder="URL Artikel">
<input type="text" class="form-control mb-4" id="tempat" name="url" placeholder="URL Artikel" value="{{ $edit ? $data->url : old('url') }}" required>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="col-xl-12 col-lg-12 col-md-12 layout-spacing">
<form id="general-info" class="section general-info">
<div class="info">
<h6 class="">Personil Dosen</h6>
<div class="row">
<div class="col-lg-11 mx-auto">
<div class="row">
<div class="col-md-8">
<div class="table-responsive">
<table class="table table-bordered mb-4">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Program Studi</th>
<th class="text-center">Keanggotaan</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Shaun Park</td>
<td>10/08/2020</td>
<td>320</td>
<td class="text-center"><span class="text-success">Complete</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Alma Clarke</td>
<td>11/08/2020</td>
<td>420</td>
<td class="text-center"><span class="text-secondary">Pending</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Xavier</td>
<td>12/08/2020</td>
<td>130</td>
<td class="text-center"><span class="text-info">In progress</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Vincent Carpenter</td>
<td>13/08/2020</td>
<td>260</td>
<td class="text-center"><span class="text-danger">Canceled</span></td>
<td class="text-center"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-4">
<div class="input-group mb-4">
<input type="text" class="form-control" placeholder="NIDN" aria-label="nidn">
<div class="input-group-append">
<button class="btn btn-info" type="button">Cek</button>
</div>
</div>
<div class="form-row mb-4">
<div class="form-group col-md-6">
<label for="inputEmail4">Nama Dosen</label>
<input type="text" class="form-control" id="namadosen">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Program Studi</label>
<input type="text" class="form-control" id="programstudi">
</div>
<div class="form-group col-md-6">
<div class="form-group">
<label>Keanggotaan</label>
<select class="form-control" id="institusi">
<option>Penelitian Dasar</option>
<option>Norway</option>
<option>Canada</option>
</select>
</div>
</div>
<div class="form-group col-md-6">
</div>
<div class="form-group col-md-6">
<button id="multiple-messages" class="btn btn-primary">Save Changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="col-xl-12 col-lg-12 col-md-12 layout-spacing">
<form id="general-info" class="section general-info">
<div class="info">
<h6 class="">Personil Non Dosen</h6>
<div class="row">
<div class="col-lg-11 mx-auto">
<div class="row">
<div class="col-md-8">
<div class="table-responsive">
<table class="table table-bordered mb-4">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Program Studi</th>
<th class="text-center">Keanggotaan</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Shaun Park</td>
<td>10/08/2020</td>
<td>320</td>
<td class="text-center"><span class="text-success">Complete</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Alma Clarke</td>
<td>11/08/2020</td>
<td>420</td>
<td class="text-center"><span class="text-secondary">Pending</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Xavier</td>
<td>12/08/2020</td>
<td>130</td>
<td class="text-center"><span class="text-info">In progress</span></td>
<td class="text-center"></td>
</tr>
<tr>
<td>Vincent Carpenter</td>
<td>13/08/2020</td>
<td>260</td>
<td class="text-center"><span class="text-danger">Canceled</span></td>
<td class="text-center"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-4">
<div class="input-group mb-4">
<input type="text" class="form-control" placeholder="NIDN" aria-label="nidn">
<div class="input-group-append">
<button class="btn btn-info" type="button">Cek</button>
</div>
</div>
<div class="form-row mb-4">
<div class="form-group col-md-6">
<label for="inputEmail4">Nama Dosen</label>
<input type="text" class="form-control" id="namadosen">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Program Studi</label>
<input type="text" class="form-control" id="programstudi">
</div>
<div class="form-group col-md-6">
<div class="form-group">
<label>Keanggotaan</label>
<select class="form-control" id="institusi">
<option>Penelitian Dasar</option>
<option>Norway</option>
<option>Canada</option>
</select>
</div>
</div>
<div class="form-group col-md-6">
</div>
<div class="form-group col-md-6">
<button id="multiple-messages" class="btn btn-primary">Save Changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
......@@ -280,10 +100,11 @@
<div class="account-settings-footer">
<div class="as-footer-container">
<button id="multiple-reset" class="btn btn-warning">Batal</button>
<button id="multiple-messages" class="btn btn-primary">Save Changes</button>
<a href="{{ route('publikasijurnal.index') }}" id="multiple-reset" class="btn btn-warning">Batal</a>
<button id="multiple-messages" class="btn btn-primary">Simpan</button>
</div>
</div>
</form>
</div>
@endsection
......
@extends('layouts.master')
@section('title')
Publikasi Jurnal
@endsection
@section('header')
<div class="page-title">
<h3>Publikasi Jurnal</h3>
</div>
@endsection
@section('contents')
@php
$menu = 'dashboard';
@endphp
<div class="account-settings-container layout-top-spacing">
<div class="account-content">
<div class="scrollspy-example" data-spy="scroll" data-target="#account-settings-scroll" data-offset="-100">
<div class="row">
<div class="col-xl-12 col-lg-12 col-md-12 layout-spacing">
<div id="general-info" class="section general-info">
<div class="info">
<h6 class="">Personil Dosen</h6>
<div class="row">
<div class="col-lg-11 mx-auto">
<div class="row">
<div class="col-md-8">
<div class="table-responsive">
<table class="table table-bordered mb-4">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Program Studi</th>
<th class="text-center">Keanggotaan</th>
<th>Aksi</th>
</tr>
</thead>
<tbody id="table_dosen_nidn">
@foreach ($dosen_anggota as $item)
@php
$token = Str::random(10)
@endphp
<tr id="dosen_{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->biodata->name }}</td>
<td>{{ $item->biodata->prodi }}</td>
<td class="text-center">{{ $item->peran }}</td>
<td>
<button class="btn btn-sm btn-danger" type="button" onclick="deleteAnggota('{{ encrypt($item->id) }}', 'dosen_{{ $token }}')">Hapus</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="col-md-4">
<div class="input-group mb-4">
<input type="text" class="form-control" id="input_dosen_nidn" placeholder="NIDN" aria-label="nidn">
<div class="input-group-append">
<button type="button" onclick="checkNidn('dosen_nidn')" class="btn btn-info" type="button">Cek</button>
</div>
</div>
<div class="form-row mb-4">
<div class="form-group col-md-6">
<label for="inputEmail4">Nama Dosen</label>
<input type="text" class="form-control" id="nama_dosen_nidn">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Program Studi</label>
<input type="text" class="form-control" id="prodi_dosen_nidn">
</div>
<div class="form-group col-md-6">
<div class="form-group">
<label>Keanggotaan</label>
<select class="form-control" id="keanggotaan_dosen_nidn">
@foreach ($keanggotaan as $item)
<option>{{ $item }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group col-md-6">
<input type="text" id="dosen_nidn" value="" hidden>
</div>
<div class="form-group col-md-6">
<button type="button" onclick="saveDosen('dosen_nidn')" id="multiple-messages" class="btn btn-primary">Save Changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-12 col-lg-12 col-md-12 layout-spacing">
<div id="general-info" class="section general-info">
<div class="info">
<h6 class="">Personil Non Dosen</h6>
<div class="row">
<div class="col-lg-11 mx-auto">
<div class="row">
<div class="col-md-8">
<div class="table-responsive">
<table class="table table-bordered mb-4">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Institusi</th>
<th class="text-center">Keanggotaan</th>
<th></th>
</tr>
</thead>
<tbody id="table_non_dosen_nip">
@foreach ($non_dosen_anggota as $item)
@php
$token = Str::random(10)
@endphp
<tr id="non_dosen_{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->nama }}</td>
<td>{{ $item->institusi }}</td>
<td class="text-center">{{ $item->peran }}</td>
<td>
<button class="btn btn-sm btn-danger" type="button" onclick="deleteAnggota('{{ encrypt($item->id) }}', 'non_dosen_{{ $token }}')">Hapus</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div class="col-md-4">
<div class="form-row mb-4">
<div class="form-group col-md-6">
<label for="inputEmail4">Nama</label>
<input type="text" class="form-control" id="nama_non_dosen_nip">
</div>
<div class="form-group col-md-6">
<label for="inputPassword4">Institusi</label>
<input type="text" class="form-control" id="prodi_non_dosen_nip">
</div>
<div class="form-group col-md-6">
<div class="form-group">
<label>Keanggotaan</label>
<select class="form-control" id="keanggotaan_non_dosen_nip">
@foreach ($keanggotaan as $item)
<option>{{ $item }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group col-md-6">
</div>
<div class="form-group col-md-6">
<button onclick="saveNonDosen('non_dosen_nip')" type="button" id="multiple-messages" class="btn btn-primary">Save Changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<form action="{{ route('publikasijurnal.next-form', ['id' => $id]) }}">
<div class="account-settings-footer">
<div class="as-footer-container">
@csrf
<input type="text" name="next_state" value="finish" hidden>
<a href="{{ route('publikasijurnal.index') }}" id="multiple-reset" class="btn btn-warning">Batal</a>
<button id="multiple-messages" class="btn btn-primary">Selesai</button>
</div>
</div>
</form>
</div>
@endsection
@section('js')
<script src="{{ url('theme/plugins/apex/apexcharts.min.js') }} "></script>
<script src="{{ url('theme/assets/js/dashboard/dash_2.js') }} "></script>
<script>
var iDosen = {{ count($dosen_anggota) + 1 }};
var iNonDosen = {{ count($non_dosen_anggota) + 1 }};
function checkNidn(id){
var value = $('#input_'+id).val();
var request = $.ajax({
url: "{{ route('get-biodata') }}",
type: "get",
dataType: "json",
data: {nidn:value},
success: function(result){
$('#nama_'+id).val(result['name']);
$('#prodi_'+id).val(result['prodi']);
$('#'+id).val(result['nidn']);
}
})
}
function saveDosen(id){
save(id, 'dosen', iDosen++);
}
function saveNonDosen(id){
save(id, 'non_dosen', iNonDosen++);
}
function save(id, name, no){
var nama = $('#nama_'+id).val();
var prodi = $('#prodi_'+id).val();
var nidn = $('#'+id).val();
var keanggotaan = $('#keanggotaan_'+id).val();
var csrf = "{{ csrf_token() }}";
var request = $.ajax({
url: "{{ route('publikasijurnal.simpan-anggota', ['id' => $id]) }}",
type: "post",
dataType: "html",
data: {nama:nama, prodi:prodi, nidn:nidn, keanggotaan:keanggotaan, name:name, no:no, _token: csrf},
success: function(result){
$('#table_'+id).append(result);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
})
}
function deleteAnggota(id, element){
var csrf = "{{ csrf_token() }}";
var request = $.ajax({
url: "{{ route('publikasijurnal.delete-anggota') }}",
type: "post",
dataType: "html",
data: { _token: csrf, id: id},
success: function(result){
$("#"+element).remove();
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
})
}
</script>
@endsection
......@@ -18,130 +18,43 @@
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
<div class="widget-content widget-content-area br-6">
<div class="table-responsive mb-4 mt-4">
<a href="{{ url('publikasijurnal/create') }}" class="btn btn-primary mb-2"><i data-feather="file-plus"></i> Tambah</a>
<table id="zero-config" class="table table-hover" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
<th>No.</th>
<th>Judul</th>
<th>Nama Jurnal</th>
<th>ISSN</th>
<th>Volume</th>
<th>Nomor</th>
<th>Halaman</th>
<th>URL</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
<td>2011/07/25</td>
<td>$170,750</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>San Francisco</td>
<td>66</td>
<td>2009/01/12</td>
<td>$86,000</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>Edinburgh</td>
<td>22</td>
<td>2012/03/29</td>
<td>$433,060</td>
</tr>
<tr>
<td>Airi Satou</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>33</td>
<td>2008/11/28</td>
<td>$162,700</td>
</tr>
<tr>
<td>Brielle Williamson</td>
<td>Integration Specialist</td>
<td>New York</td>
<td>61</td>
<td>2012/12/02</td>
<td>$372,000</td>
</tr>
<tr>
<td>Herrod Chandler</td>
<td>Sales Assistant</td>
<td>San Francisco</td>
<td>59</td>
<td>2012/08/06</td>
<td>$137,500</td>
</tr>
<tr>
<td>Rhona Davidson</td>
<td>Integration Specialist</td>
<td>Tokyo</td>
<td>55</td>
<td>2010/10/14</td>
<td>$327,900</td>
</tr>
<tr>
<td>Colleen Hurst</td>
<td>Javascript Developer</td>
<td>San Francisco</td>
<td>39</td>
<td>2009/09/15</td>
<td>$205,500</td>
</tr>
<tr>
<td>Sonya Frost</td>
<td>Software Engineer</td>
<td>Edinburgh</td>
<td>23</td>
<td>2008/12/13</td>
<td>$103,600</td>
</tr>
<tr>
<td>Jena Gaines</td>
<td>Office Manager</td>
<td>London</td>
<td>30</td>
<td>2008/12/19</td>
<td>$90,560</td>
</tr>
<tr>
<td>Quinn Flynn</td>
<td>Support Lead</td>
<td>Edinburgh</td>
<td>22</td>
<td>2013/03/03</td>
<td>$342,000</td>
</tr>
<tr>
<td>Charde Marshall</td>
<td>Regional Director</td>
<td>San Francisco</td>
<td>36</td>
<td>2008/10/16</td>
<td>$470,600</td>
</tr>
<tr>
<td>Haley Kennedy</td>
<td>Senior Marketing Designer</td>
<td>London</td>
<td>43</td>
<td>2012/12/18</td>
<td>$313,500</td>
</tr>
@foreach ($rs as $item)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $item->judul }}</td>
<td>{{ $item->nama_jurnal }}</td>
<td>{{ $item->issn }}</td>
<td>{{ $item->volume }}</td>
<td>{{ $item->nomor }}</td>
<td>{{ $item->halaman }}</td>
<td>{{ $item->url }}</td>
<td>
<a class="btn btn-sm btn-warning" href="{{ route('publikasijurnal.edit', ['publikasijurnal' => encrypt($item->id)]) }}">Edit</a>
<a class="btn btn-sm btn-warning" href="{{ route('publikasijurnal.edit-anggota', ['id' => encrypt($item->id)]) }}">Edit Anggota</a>
<button class="btn btn-sm btn-danger delete" type="button" data-target="form_penelitian_{{ $loop->iteration }}">Hapus</button>
<form id="form_penelitian_{{ $loop->iteration }}" action="{{ route('publikasijurnal.destroy', ['publikasijurnal' => encrypt($item->id)]) }}" method="POST">
{{ method_field('DELETE') }}
@csrf
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
......
@php
$token = Str::random(10)
@endphp
<tr id="{{ $name }}_{{ $token }}">
<td>{{ $no }}</td>
<td>{{ $nama }}</td>
<td>
{{ $prodi }}
</td>
<td class="text-center">{{ $keanggotaan }}</td>
<td>
<button class="btn btn-sm btn-danger" type="button" onclick="deleteAnggota('{{ encrypt($id) }}', '{{ $name }}_{{ $token }}')">Hapus</button>
</td>
</tr>
......@@ -46,15 +46,22 @@ Route::middleware(['auth:sanctum', 'verified'])->group(function () {
Route::resource('/fasilitas', FasilitasController::class);
Route::resource('/kekayaanintelek', KekayaanIntelController::class);
Route::resource('/kontrakkerja', KontrakKerjaController::class);
Route::resource('/penelitiansumber', PenelitianSumberDanaController::class);
Route::get('/penelitiansumber/next-form/{id}', [PenelitianSumberDanaController::class, 'nextForm'])->name('penelitiansumber.next-form');
Route::get('/penelitiansumber/edit-anggota/{id}', [PenelitianSumberDanaController::class, 'editAnggota'])->name('penelitiansumber.edit-anggota');
Route::post('/penelitiansumber/simpan-anggota/{id}', [PenelitianSumberDanaController::class, 'simpanAnggota'])->name('penelitiansumber.simpan-anggota');
Route::post('/penelitiansumber/delete-anggota', [PenelitianSumberDanaController::class, 'deleteAnggota'])->name('penelitiansumber.delete-anggota');
Route::post('/penelitiansumber/cek-simpan-anggota', [PenelitianSumberDanaController::class, 'cekSimpanAnggota'])->name('penelitiansumber.cek-simpan-anggota');
Route::resource('/penelitiasing', PenelitiAsingController::class);
Route::resource('/publikasiartikel', PublikasiArtikelController::class);
Route::resource('/publikasijurnal', PublikasiJurnalController::class);
Route::get('/publikasijurnal/next-form/{id}', [PublikasiJurnalController::class, 'nextForm'])->name('publikasijurnal.next-form');
Route::get('/publikasijurnal/edit-anggota/{id}', [PublikasiJurnalController::class, 'editAnggota'])->name('publikasijurnal.edit-anggota');
Route::post('/publikasijurnal/simpan-anggota/{id}', [PublikasiJurnalController::class, 'simpanAnggota'])->name('publikasijurnal.simpan-anggota');
Route::post('/publikasijurnal/delete-anggota', [PublikasiJurnalController::class, 'deleteAnggota'])->name('publikasijurnal.delete-anggota');
Route::resource('/penyelenggaraseminar', PenyelenggaraanSeminarController::class);
Route::resource('/stafpendukung', StafPendukungController::class);
Route::resource('/unitbisnis', UnitBisnisController::class);
......
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