Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jabatan #527

Merged
merged 17 commits into from
Nov 16, 2022
164 changes: 164 additions & 0 deletions app/Http/Controllers/Data/JabatanController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<?php

/*
* File ini bagian dari:
*
* OpenDK
*
* Aplikasi dan source code ini dirilis berdasarkan lisensi GPL V3
*
* Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
*
* Dengan ini diberikan izin, secara gratis, kepada siapa pun yang mendapatkan salinan
* dari perangkat lunak ini dan file dokumentasi terkait ("Aplikasi Ini"), untuk diperlakukan
* tanpa batasan, termasuk hak untuk menggunakan, menyalin, mengubah dan/atau mendistribusikan,
* asal tunduk pada syarat berikut:
*
* Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam
* setiap salinan atau bagian penting Aplikasi Ini. Barang siapa yang menghapus atau menghilangkan
* pemberitahuan ini melanggar ketentuan lisensi Aplikasi Ini.
*
* PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, BAIK TERSURAT MAUPUN
* TERSIRAT. PENULIS ATAU PEMEGANG HAK CIPTA SAMA SEKALI TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU
* KEWAJIBAN APAPUN ATAS PENGGUNAAN ATAU LAINNYA TERKAIT APLIKASI INI.
*
* @package OpenDK
* @author Tim Pengembang OpenDesa
* @copyright Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
* @license http://www.gnu.org/licenses/gpl.html GPL V3
* @link https://github.com/OpenSID/opendk
*/

namespace App\Http\Controllers\Data;

use App\Http\Controllers\Controller;
use App\Models\Jabatan;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Yajra\DataTables\DataTables;

class JabatanController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$page_title = 'Data Jabatan';
$page_description = 'Daftar Data Jabatan';

return view('data.jabatan.index', compact('page_title', 'page_description'));
}

public function getData(Request $request)
{
if ($request->ajax()) {
return DataTables::of(Jabatan::all())
->addIndexColumn()
->addColumn('aksi', function ($row) {
if (! auth()->guest()) {
$data['edit_url'] = route('data.jabatan.edit', $row->id);
if ($row->jenis == 3) {
$data['delete_url'] = route('data.jabatan.destroy', $row->id);
}
}

return view('forms.aksi', $data);
})
->escapeColumns([])
->make(true);
}
}

/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
$page_title = 'Jabatan';
$page_description = 'Tambah Jabatan';

return view('data.jabatan.create', compact('page_title', 'page_description'));
}

/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store(Request $request)
{
request()->validate([
'nama' => 'required',
]);
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved

try {
Jabatan::create($request->all());
} catch (\Exception $e) {
report($e);
return back()->withInput()->with('error', 'Jabatan gagal ditambah!');
}

return redirect()->route('data.jabatan.index')->with('success', 'Jabatan berhasil ditambah!');
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
$jabatan = Jabatan::findOrFail($id);
$page_title = 'Jabatan';
$page_description = 'Ubah Jabatan : ' . $jabatan->nama;

return view('data.jabatan.edit', compact('page_title', 'page_description', 'jabatan'));
}

/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/

public function update(Request $request, $id)
{
request()->validate([
'nama' => 'required',
]);
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved

try {
Jabatan::findOrFail($id)->update($request->all());
} catch (\Exception $e) {
report($e);
return back()->withInput()->with('error', 'Jabatan gagal diubah!');
}

return redirect()->route('data.jabatan.index')->with('success', 'Jabatan berhasil diubah!');
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
try {
Jabatan::findOrFail($id)->delete();
} catch (\Exception $e) {
report($e);
return redirect()->route('data.jabatan.index')->with('error', 'Jabatan gagal dihapus!');
}

return redirect()->route('data.jabatan.index')->with('success', 'Jabatan berhasil dihapus!');
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved
}
}
55 changes: 55 additions & 0 deletions app/Models/Jabatan.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php

/*
* File ini bagian dari:
*
* OpenDK
*
* Aplikasi dan source code ini dirilis berdasarkan lisensi GPL V3
*
* Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
*
* Dengan ini diberikan izin, secara gratis, kepada siapa pun yang mendapatkan salinan
* dari perangkat lunak ini dan file dokumentasi terkait ("Aplikasi Ini"), untuk diperlakukan
* tanpa batasan, termasuk hak untuk menggunakan, menyalin, mengubah dan/atau mendistribusikan,
* asal tunduk pada syarat berikut:
*
* Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam
* setiap salinan atau bagian penting Aplikasi Ini. Barang siapa yang menghapus atau menghilangkan
* pemberitahuan ini melanggar ketentuan lisensi Aplikasi Ini.
*
* PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, BAIK TERSURAT MAUPUN
* TERSIRAT. PENULIS ATAU PEMEGANG HAK CIPTA SAMA SEKALI TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU
* KEWAJIBAN APAPUN ATAS PENGGUNAAN ATAU LAINNYA TERKAIT APLIKASI INI.
*
* @package OpenDK
* @author Tim Pengembang OpenDesa
* @copyright Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
* @license http://www.gnu.org/licenses/gpl.html GPL V3
* @link https://github.com/OpenSID/opendk
*/

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Jabatan extends Model
{
protected $table = 'ref_jabatan';

protected $fillable = [
'nama',
'tupoksi',
'jenis',
];

/**
* Setter untuk membuat path menjadi null jika peta kosong.
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved
*
* @return string
*/
public function setJenisAttribute($value)
{
$this->attributes['jenis'] = $value ?? 3;
}
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved
}
71 changes: 71 additions & 0 deletions database/migrations/2022_11_06_191838_create_ref_jabatan_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php

/*
* File ini bagian dari:
*
* OpenDK
*
* Aplikasi dan source code ini dirilis berdasarkan lisensi GPL V3
*
* Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
*
* Dengan ini diberikan izin, secara gratis, kepada siapa pun yang mendapatkan salinan
* dari perangkat lunak ini dan file dokumentasi terkait ("Aplikasi Ini"), untuk diperlakukan
* tanpa batasan, termasuk hak untuk menggunakan, menyalin, mengubah dan/atau mendistribusikan,
* asal tunduk pada syarat berikut:
*
* Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus disertakan dalam
* setiap salinan atau bagian penting Aplikasi Ini. Barang siapa yang menghapus atau menghilangkan
* pemberitahuan ini melanggar ketentuan lisensi Aplikasi Ini.
*
* PERANGKAT LUNAK INI DISEDIAKAN "SEBAGAIMANA ADANYA", TANPA JAMINAN APA PUN, BAIK TERSURAT MAUPUN
* TERSIRAT. PENULIS ATAU PEMEGANG HAK CIPTA SAMA SEKALI TIDAK BERTANGGUNG JAWAB ATAS KLAIM, KERUSAKAN ATAU
* KEWAJIBAN APAPUN ATAS PENGGUNAAN ATAU LAINNYA TERKAIT APLIKASI INI.
*
* @package OpenDK
* @author Tim Pengembang OpenDesa
* @copyright Hak Cipta 2017 - 2022 Perkumpulan Desa Digital Terbuka (https://opendesa.id)
* @license http://www.gnu.org/licenses/gpl.html GPL V3
* @link https://github.com/OpenSID/opendk
*/

use App\Models\Jabatan;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateRefJabatanTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('ref_jabatan', function (Blueprint $table) {
$table->id();
$table->string('nama', 255);
$table->text('tupoksi')->nullable();
$table->boolean('jenis')->default(3); // 1: Camat; 2: Sekcam, 3: lainnya
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved
$table->timestamps();
});

$data = [
['nama'=>'Camat', 'jenis'=> 1],
['nama'=>'Sekretaris', 'jenis'=> 2],
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved
];

Jabatan::insert($data);
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('ref_jabatan');
}
}
55 changes: 55 additions & 0 deletions resources/views/data/jabatan/create.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
@extends('layouts.dashboard_template')

@section('content')
<section class="content-header">
<h1>
{{ $page_title ?? "Page Title" }}
<small>{{ $page_description ?? '' }}</small>
</h1>
<ol class="breadcrumb">
<li><a href="{{ route('dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li><a href="{{ route('data.jabatan.index') }}">Daftar Jabatan</a></li>
<li class="active">{{ $page_description }}</li>
</ol>
</section>

<section class="content container-fluid">
<div class="row">
<div class="col-md-12">
<div class="box box-primary">

{!! Form::open( [ 'route' => 'data.jabatan.store', 'method' => 'post','id' => 'form-jabatan', 'class' => 'form-horizontal form-label-left' ] ) !!}

<div class="box-body">

@if (count($errors) > 0)
<div class="alert alert-danger">
<strong>Ups!</strong> Ada beberapa masalah dengan masukan Anda.<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
yogiperdana marked this conversation as resolved.
Show resolved Hide resolved

@include( 'flash::message' )
@include('data.jabatan.form')

</div>
<div class="box-footer">
<div class="form-group">
<div class="col-md-6 col-sm-6 col-xs-12 col-md-offset-3">
<a href="{{ route('data.jabatan.index') }}">
<button type="button" class="btn btn-default btn-sm"><i class="fa fa-refresh"></i>&nbsp; Batal</button>
</a>
<button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-save"></i>&nbsp; Simpan</button>
</div>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</section>
@endsection
Loading