Commit d81e9c24 by Miftah

Initial commit

parents
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[docker-compose.yml]
indent_size = 4
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=https://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=database
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
* text=auto eol=lf
*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php
/.github export-ignore
CHANGELOG.md export-ignore
.styleci.yml export-ignore
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
## INFORMASI PROYEK "WEBSITE PPKUKM"
Stagging **development-web-ppkukm**
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
<p align="center">
<a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a>
</p>
## About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
Laravel is accessible, powerful, and provides tools required for large, robust applications.
## Learning Laravel
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 2000 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
## Laravel Sponsors
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
### Premium Partners
- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
- **[Cubet Techno Labs](https://cubettech.com)**
- **[Cyber-Duck](https://cyber-duck.co.uk)**
- **[Many](https://www.many.co.uk)**
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
- **[DevSquad](https://devsquad.com)**
- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
- **[OP.GG](https://op.gg)**
- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)**
- **[Lendio](https://lendio.com)**
## Contributing
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
## Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
## Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
## License
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
File added
<?php
namespace App\Actions\Fortify;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\CreatesNewUsers;
use Laravel\Jetstream\Jetstream;
class CreateNewUser implements CreatesNewUsers
{
use PasswordValidationRules;
/**
* Validate and create a newly registered user.
*
* @param array<string, string> $input
*/
public function create(array $input): User
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => $this->passwordRules(),
'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '',
])->validate();
return User::create([
'name' => $input['name'],
'email' => $input['email'],
'password' => Hash::make($input['password']),
]);
}
}
<?php
namespace App\Actions\Fortify;
use Laravel\Fortify\Rules\Password;
trait PasswordValidationRules
{
/**
* Get the validation rules used to validate passwords.
*
* @return array<int, \Illuminate\Contracts\Validation\Rule|array|string>
*/
protected function passwordRules(): array
{
return ['required', 'string', new Password, 'confirmed'];
}
}
<?php
namespace App\Actions\Fortify;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\ResetsUserPasswords;
class ResetUserPassword implements ResetsUserPasswords
{
use PasswordValidationRules;
/**
* Validate and reset the user's forgotten password.
*
* @param array<string, string> $input
*/
public function reset(User $user, array $input): void
{
Validator::make($input, [
'password' => $this->passwordRules(),
])->validate();
$user->forceFill([
'password' => Hash::make($input['password']),
])->save();
}
}
<?php
namespace App\Actions\Fortify;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
class UpdateUserPassword implements UpdatesUserPasswords
{
use PasswordValidationRules;
/**
* Validate and update the user's password.
*
* @param array<string, string> $input
*/
public function update(User $user, array $input): void
{
Validator::make($input, [
'current_password' => ['required', 'string', 'current_password:web'],
'password' => $this->passwordRules(),
], [
'current_password.current_password' => __('The provided password does not match your current password.'),
])->validateWithBag('updatePassword');
$user->forceFill([
'password' => Hash::make($input['password']),
])->save();
}
}
<?php
namespace App\Actions\Fortify;
use App\Models\User;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
use Laravel\Fortify\Contracts\UpdatesUserProfileInformation;
class UpdateUserProfileInformation implements UpdatesUserProfileInformation
{
/**
* Validate and update the given user's profile information.
*
* @param array<string, string> $input
*/
public function update(User $user, array $input): void
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255', Rule::unique('users')->ignore($user->id)],
'photo' => ['nullable', 'mimes:jpg,jpeg,png', 'max:1024'],
])->validateWithBag('updateProfileInformation');
if (isset($input['photo'])) {
$user->updateProfilePhoto($input['photo']);
}
if ($input['email'] !== $user->email &&
$user instanceof MustVerifyEmail) {
$this->updateVerifiedUser($user, $input);
} else {
$user->forceFill([
'name' => $input['name'],
'email' => $input['email'],
])->save();
}
}
/**
* Update the given verified user's profile information.
*
* @param array<string, string> $input
*/
protected function updateVerifiedUser(User $user, array $input): void
{
$user->forceFill([
'name' => $input['name'],
'email' => $input['email'],
'email_verified_at' => null,
])->save();
$user->sendEmailVerificationNotification();
}
}
<?php
namespace App\Actions\Jetstream;
use App\Models\User;
use Laravel\Jetstream\Contracts\DeletesUsers;
class DeleteUser implements DeletesUsers
{
/**
* Delete the given user.
*/
public function delete(User $user): void
{
$user->deleteProfilePhoto();
$user->tokens->each->delete();
$user->delete();
}
}
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
{
// $schedule->command('inspire')->hourly();
}
/**
* Register the commands for the application.
*/
protected function commands(): void
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
<?php
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*/
public function register(): void
{
$this->reportable(function (Throwable $e) {
//
});
}
}
<?php
/**
* Get previous value of input
*
* @param string $input_name
* @param string $value
* @param string|array|null $type (text, textarea, select, radio, checkbox)
* @param string $static_value (for select, radio, checkbox)
* @return string
*/
use Carbon\Carbon;
/**
* Pembatas judul konten
*
* Jika judul konten lebih dari 50 karakter, maka judul konten akan dipotong dan ditambahkan tanda titik tiga
*/
if (!function_exists('limit_title')) {
function limit_title($title, $limit = 50)
{
if (strlen($title) > $limit) {
return substr($title, 0, $limit) . '...';
} else {
return $title;
}
}
}
/**
* Generate obyek tanggal bahasa indonesia
*/
if (!function_exists('idn_date')) {
function idn_date(string $date = null)
{
$base_date = !is_null($date) ? Carbon::parse($date)->locale('id_ID') : Carbon::now()->locale('id_ID');
return $base_date;
}
}
/**
* Generate format tanggal bahasa indonesia
*/
if (!function_exists('print_idn_date')) {
function print_idn_date(string $date = null)
{
// periksa apakah fungsi 'idn_date' sudah didefinisikan
if(!function_exists("idn_date")){
die("Fungsi 'idn-date' tidak terdefinisi!");
}
$base_date = !is_null($date) ? Carbon::parse($date)->locale('id_ID') : Carbon::now()->locale('id_ID');
return $base_date->day . ' ' . $base_date->monthName . ' ' . $base_date->year;
}
}
/**
* Find value within checkbox option
*/
if (!function_exists('find_option')) {
function find_option($value, $option)
{
$option_arr = explode(',', $option);
if (count($option_arr) > 0) {
foreach ($option_arr as $key => $option_value) {
if ($option_value == $value) {
return true;
}
}
}
return false;
}
}
if (!function_exists('currency')) {
/**
* Convert currency format
*
* @param $number
*/
function currency(int|float|null $number, int $decimal = 2)
{
return $number != null ? number_format($number, $decimal, '.', ',') : '';
}
}
if (!function_exists('number_to_words')) {
function penyebut($nilai)
{
$nilai = intval(strval($nilai));
$huruf = array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas");
$temp = "";
if ($nilai < 12) {
$temp = "" . $huruf[$nilai];
} else if ($nilai < 20) {
$temp = penyebut($nilai - 10) . " belas";
} else if ($nilai < 100) {
$temp = penyebut($nilai / 10) . " puluh " . penyebut($nilai % 10);
} else if ($nilai < 200) {
$temp = " seratus " . penyebut($nilai - 100);
} else if ($nilai < 1000) {
$temp = penyebut($nilai / 100) . " ratus " . penyebut($nilai % 100);
} else if ($nilai < 2000) {
$temp = " seribu " . penyebut($nilai - 1000);
} else if ($nilai < 1000000) {
$temp = penyebut($nilai / 1000) . " ribu " . penyebut($nilai % 1000);
} else if ($nilai < 1000000000) {
$temp = penyebut($nilai / 1000000) . " juta " . penyebut($nilai % 1000000);
} else if ($nilai < 1000000000000) {
$temp = penyebut($nilai / 1000000000) . " milyar" . penyebut(fmod($nilai, 1000000000));
} else if ($nilai < 1000000000000000) {
$temp = penyebut($nilai / 1000000000000) . " trilyun" . penyebut(fmod($nilai, 1000000000000));
}
return $temp;
}
/**
* Convert number to words
*
* @param int $nilai
*/
function number_to_words($nilai)
{
if ($nilai < 0) {
$hasil = "minus " . trim(penyebut($nilai));
} else {
$hasil = trim(penyebut($nilai));
}
return ucwords($hasil);
}
}
if (!function_exists('count_no_urut')) {
/**
* Count no urut
*
* @param string $last_count
* @param int $num_amount
*/
function count_no_urut($last_count = 0, $num_amount = 3, $prefix = '')
{
$result = '';
if ($last_count != null) {
if ($prefix != '') {
list(, $number) = explode($prefix, $last_count);
$last_count = $number;
}
}
$no_urut_baru = strval(intval($last_count) + 1);
$angka_nol = '';
for ($i = 0; $i < ($num_amount - strlen($no_urut_baru)); $i++) {
$angka_nol .= '0';
}
$result = $angka_nol . $no_urut_baru;
$result = $prefix . $result;
return $result;
}
}
if (!function_exists('table_number')) {
function table_number($amount_per_page, $order, $first_number = 1)
{
$current_page = isset($_GET['page']) ? intval($_GET['page']) : 1;
return ($amount_per_page * ($current_page - 1)) + ($order + $first_number);
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\BeritaStore;
use App\Models\Berita;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class BeritaController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.berita.index', [
'data' => Berita::orderBy('created_at', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.berita.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(BeritaStore $request)
{
$form_data = $request->except('_token', 'files');
if ($request->hasFile('gambar')) {
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
Berita::create($form_data);
return redirect()->route('berita-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.berita.show', [
'data' => Berita::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = Berita::findOrFail($id);
$data->isi = str_replace("\r\n", "", $data->isi);
return view('main-page.admin.berita.edit', compact('data'));
}
/**
* Update the specified resource in storage.
*/
public function update(BeritaStore $request, string $id)
{
$data = Berita::findOrFail($id);
$form_data = $request->except('_token', 'files');
if ($request->hasFile('gambar')) {
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('berita-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Berita::findOrFail($id);
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('berita-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\JadwalBimbinganStore;
use App\Models\Bimbingan;
use Illuminate\Http\Request;
class BimbinganController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.bimbingan.index', [
'data' => Bimbingan::orderBy('jadwal_bimbingan', 'asc')->orderBy('status_bimbingan', 'asc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.bimbingan.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(JadwalBimbinganStore $request)
{
$jadwal_bimbingan_yang_sama = Bimbingan::where('jadwal_bimbingan', $request->jadwal_bimbingan)->where('status_bimbingan', '<', 3)->first();
if (!is_null($jadwal_bimbingan_yang_sama)) {
return back()->withErrors(['jadwal_bimbingan' => 'Jadwal sudah terisi, mohon pilih hari yang lain']);
}
Bimbingan::create($request->all());
return redirect()->route('bimbingan-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.bimbingan.show', [
'data' => Bimbingan::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.bimbingan.edit', [
'data' => Bimbingan::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(JadwalBimbinganStore $request, string $id)
{
$jadwal_bimbingan_yang_sama = Bimbingan::where('jadwal_bimbingan', $request->jadwal_bimbingan)->where('status_bimbingan', '<', 3)->first();
if (!is_null($jadwal_bimbingan_yang_sama)) {
return back()->withErrors(['jadwal_bimbingan' => 'Jadwal sudah terisi, mohon pilih hari yang lain']);
}
$data = Bimbingan::findOrFail($id);
$data->update($request->all());
return redirect()->route('bimbingan-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Bimbingan::findOrFail($id);
$data->delete();
return redirect()->route('bimbingan-admin.index')->with('success', 'Data berhasil dihapus');
}
/**
* Pengisian data petugas konsultasi
*/
public function pengisian_petugas()
{
return view('main-page.admin.bimbingan.pengisian-petugas.index', [
'data' => Bimbingan::orderBy('jadwal_bimbingan', 'asc')->orderBy('status_bimbingan', 'asc')->paginate(10)
]);
}
public function pengisian_petugas_show($id)
{
return view('main-page.admin.bimbingan.pengisian-petugas.show', [
'data' => Bimbingan::findOrFail($id)
]);
}
public function pengisian_petugas_edit($id)
{
return view('main-page.admin.bimbingan.pengisian-petugas.edit', [
'data' => Bimbingan::findOrFail($id)
]);
}
public function pengisian_petugas_update(Request $request, $id)
{
$data = Bimbingan::findOrFail($id);
$data->update([
'nama_petugas_bimbingan' => $request->nama_petugas_bimbingan,
'status_bimbingan' => 2,
'link_bimbingan' => $request->link_bimbingan
]);
return redirect()->route('bimbingan-admin.pengisian-petugas.index')->with('success', 'Pengisian petugas berhasil');
}
/**
* Pengisian hasil konsultasi
*/
public function pengisian_hasil()
{
return view('main-page.admin.bimbingan.pengisian-hasil.index', [
'data' => Bimbingan::where('status_bimbingan', '>=', 2)->orderBy('jadwal_bimbingan', 'asc')->orderBy('status_bimbingan', 'asc')->paginate(10)
]);
}
public function pengisian_hasil_show($id)
{
return view('main-page.admin.bimbingan.pengisian-hasil.show', [
'data' => Bimbingan::findOrFail($id)
]);
}
public function pengisian_hasil_edit($id)
{
return view('main-page.admin.bimbingan.pengisian-hasil.edit', [
'data' => Bimbingan::findOrFail($id)
]);
}
public function pengisian_hasil_update(Request $request, $id)
{
$data = Bimbingan::findOrFail($id);
$data->update([
'hasil_bimbingan' => $request->hasil_bimbingan,
'status_bimbingan' => 3
]);
return redirect()->route('bimbingan-admin.pengisian-hasil.index')->with('success', 'Pengisian hasil bimbingan berhasil');
}
/**
* Penilaian kinerja petugas bimbingan
*/
public function penilaian_petugas($id)
{
return view('main-page.admin.bimbingan.pengisian-petugas.penilaian', [
'data' => Bimbingan::findOrFail($id)
]);
}
public function pengisian_penilaian_petugas(Request $request, $id)
{
$data = Bimbingan::findOrFail($id);
$data->update([
'penilaian_bimbingan' => $request->penilaian_bimbingan,
'status_bimbingan' => 4
]);
return redirect()->route('bimbingan-admin.pengisian-petugas.index')->with('success', 'Pengisian penilaian kinerja petugas bimbingan berhasil');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\EventStore;
use App\Models\Event;
use App\Models\EventKategori;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class EventController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.event.index', [
'data' => Event::orderBy('created_at', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.event.create', [
'kategori_event' => EventKategori::all(),
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(EventStore $request)
{
$form_data = $request->except('_token');
if ($request->hasFile('gambar')) {
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
Event::create($form_data);
return redirect()->route('event-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.event.show', [
'data' => Event::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.event.edit', [
'kategori_event' => EventKategori::all(),
'data' => Event::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(EventStore $request, string $id)
{
$data = Event::findOrFail($id);
$form_data = $request->except('_token');
if ($request->hasFile('gambar')) {
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('event-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Event::findOrFail($id);
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('event-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Event;
use App\Models\EventKategori;
use Illuminate\Http\Request;
class EventKategoriController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.event.kategori.index', [
'data' => EventKategori::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.event.kategori.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
EventKategori::create($request->all());
return redirect()->route('event-kategori-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.event.kategori.edit', [
'data' => EventKategori::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
$data = EventKategori::findOrFail($id);
$data->update($request->all());
return redirect()->route('event-kategori-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = EventKategori::findOrFail($id);
$data->destroy();
return redirect()->route('event-kategori-admin.index')->with('success', 'Data berhasil dihapus');
}
public function relationAvailibility(Request $request)
{
$data = Event::where('event_kategori_id', $request->id)->get();
return response()->json([
'child' => $data->count()
]);
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\StoreFoto;
use App\Models\Foto;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class FotoController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.publikasi.foto.index', [
'data' => Foto::orderBy('created_at', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.publikasi.foto.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreFoto $request)
{
$form_data = $request->except('_token', 'files');
// Upload foto
if ($request->hasFile('foto')) {
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
// Simpan data
Foto::create($form_data);
return redirect()->route('publikasi-foto-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.publikasi.foto.show', [
'data' => Foto::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.publikasi.foto.edit', [
'data' => Foto::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(StoreFoto $request, string $id)
{
$form_data = $request->except('_token', 'files');
$data = Foto::findOrFail($id);
// Update foto
if ($request->hasFile('foto')) {
// Hapus file lama
$oldFile = $data->foto;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
$data->update($form_data);
return redirect()->route('publikasi-foto-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Foto::findOrFail($id);
// Hapus foto
$oldFile = $data->foto;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$data->delete();
return redirect()->route('publikasi-foto-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\InfografisStore;
use App\Models\Infografis;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class InfografisController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.infografis.index', [
'data' => Infografis::orderBy('created_at', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.infografis.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(InfografisStore $request)
{
$form_data = $request->except('_token', 'files');
if ($request->hasFile('gambar')) {
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
Infografis::create($form_data);
return redirect()->route('infografis-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.infografis.show', [
'data' => Infografis::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = Infografis::findOrFail($id);
$data->isi = str_replace("\r\n", "", $data->isi);
return view('main-page.admin.infografis.edit', compact('data'));
}
/**
* Update the specified resource in storage.
*/
public function update(InfografisStore $request, string $id)
{
$data = Infografis::findOrFail($id);
$form_data = $request->except('_token', 'files');
if ($request->hasFile('gambar')) {
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('infografis-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Infografis::findOrFail($id);
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('infografis-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\KBLIStore;
use App\Models\KBLI;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class KBLIController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.kbli.index', [
'data' => KBLI::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.kbli.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(KBLIStore $request)
{
$form_data = $request->except('_token');
if ($request->hasFile('foto')) {
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
if ($request->hasFile('file')) {
$filename = uniqid() . '-' . $request->file('file')->getClientOriginalName();
$request->file('file')->storeAs('public/files/shares', $filename);
$form_data['file'] = 'files/shares/' . $filename;
}
// Simpan data
KBLI::create($form_data);
return redirect()->route('kbli-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.kbli.show', [
'data' => KBLI::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = KBLI::findOrFail($id);
return view('main-page.admin.kbli.edit', compact('data'));
}
/**
* Update the specified resource in storage.
*/
public function update(KBLIStore $request, string $id)
{
$data = KBLI::findOrFail($id);
$form_data = $request->except('_token');
if ($request->hasFile('foto')) {
// Hapus file lama
$oldFile = $data->file;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
if ($request->hasFile('file')) {
// Hapus file lama
$oldFile = $data->file;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('file')->getClientOriginalName();
$request->file('file')->storeAs('public/files/shares', $filename);
$form_data['file'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('kbli-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = KBLI::findOrFail($id);
// Hapus file lama
$oldFile = $data->file;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$oldFoto = $data->file;
if (!is_null($oldFoto) && Storage::disk('public')->exists($oldFoto)) {
Storage::disk('public')->delete($oldFoto);
}
// Hapus data
$data->delete();
return redirect()->route('kbli-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\KategoriSideftaInformasi;
use App\Models\SideFTAInformasi;
use Illuminate\Http\Request;
class KategoriSideFTAController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.sidefta.kategori.index', [
'data' => KategoriSideftaInformasi::paginate('10')
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.sidefta.kategori.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
KategoriSideftaInformasi::create($request->all());
return redirect()->route('kategori-sidefta-informasi-admin.index')->with('success', 'Kategori Side FTA berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.sidefta.kategori.edit', [
'data' => KategoriSideftaInformasi::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
KategoriSideftaInformasi::findOrFail($id)->update($request->all());
return redirect()->route('kategori-sidefta-informasi-admin.index')->with('success', 'Kategori Side FTA berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
KategoriSideftaInformasi::findOrFail($id)->delete();
return redirect()->route('kategori-sidefta-informasi-admin.index')->with('success', 'Kategori Side FTA berhasil dihapus');
}
public function relationAvailibility(Request $request)
{
$data = SideFTAInformasi::where('sidefta_informasi_kategori_id', $request->id)->get();
return response()->json([
'child' => $data->count()
]);
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\LaporanRAT;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class LaporanRATController extends Controller
{
public function index()
{
return view('main-page.admin.laporan-rat.index', [
'data' => LaporanRAT::orderBy('created_at', 'desc')->paginate(20)
]);
}
public function detail($id)
{
return view('main-page.admin.laporan-rat.show', [
'data' => LaporanRAT::find($id)
]);
}
public function changeStatus($id)
{
$data = LaporanRAT::findOrFail($id);
$data->status = '2';
$data->save();
return redirect()->route('laporan-rat.index')->with('success', 'Status berhasil diubah');
}
public function destroy(Request $request)
{
$data = LaporanRAT::findOrFail($request->id);
// Hapus dokumen RAT
if (Storage::disk('public')->exists($data->dokumen_rat)) {
Storage::disk('public')->delete($data->dokumen_rat);
}
$data->delete();
return redirect()->route('laporan-rat.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\PPKUKMTVStore;
use App\Models\PPKUKMTV;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PPKUKMTVController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.ppkukm-tv.index', [
'data' => PPKUKMTV::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.ppkukm-tv.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(PPKUKMTVStore $request)
{
$form_data = $request->except('_token');
if ($request->hasFile('cover')) {
$filename = uniqid() . '-' . $request->file('cover')->getClientOriginalName();
$request->file('cover')->storeAs('public/files/shares', $filename);
$form_data['cover'] = 'files/shares/' . $filename;
}
// Simpan data
PPKUKMTV::create($form_data);
return redirect()->route('ppkukm-tv-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.ppkukm-tv.show', [
'data' => PPKUKMTV::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.ppkukm-tv.edit', [
'data' => PPKUKMTV::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(PPKUKMTVStore $request, string $id)
{
$form_data = $request->except('_token');
$data = PPKUKMTV::findOrFail($id);
if ($request->hasFile('cover')) {
// Hapus file lama
$oldFile = $data->cover;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('cover')->getClientOriginalName();
$request->file('cover')->storeAs('public/files/shares', $filename);
$form_data['cover'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('ppkukm-tv-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = PPKUKMTV::findOrFail($id);
// Hapus file lama
$oldFile = $data->cover;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('ppkukm-tv-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\PPKUKMTVDetailStore;
use App\Models\PPKUKMTV;
use App\Models\PPKUKMTVDetail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PPKUKMTVDetailController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.ppkukm-tv.detail.index', [
'data' => PPKUKMTVDetail::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.ppkukm-tv.detail.create', [
'ppkukm_tv' => PPKUKMTV::all()
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(PPKUKMTVDetailStore $request)
{
$form_data = $request->except('_token');
// Upload cover konten
if ($request->hasFile('cover')) {
$filename = uniqid() . '-' . $request->file('cover')->getClientOriginalName();
$request->file('cover')->storeAs('public/files/shares', $filename);
$form_data['cover'] = 'files/shares/' . $filename;
}
// Upload video konten
if ($request->hasFile('video')) {
$filename = uniqid() . '-' . $request->file('video')->getClientOriginalName();
$request->file('video')->storeAs('public/files/shares', $filename);
$form_data['video'] = 'files/shares/' . $filename;
}
// Simpan data
PPKUKMTVDetail::create($form_data);
return redirect()->route('ppkukm-tv-detail-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.ppkukm-tv.detail.show', [
'data' => PPKUKMTVDetail::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.ppkukm-tv.detail.edit', [
'data' => PPKUKMTVDetail::findOrFail($id),
'ppkukm_tv' => PPKUKMTV::all()
]);
}
/**
* Update the specified resource in storage.
*/
public function update(PPKUKMTVDetailStore $request, string $id)
{
$form_data = $request->except('_token');
$data = PPKUKMTVDetail::findOrFail($id);
// Upload cover konten
if ($request->hasFile('cover')) {
// Hapus file lama
$oldFile = $data->cover;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('cover')->getClientOriginalName();
$request->file('cover')->storeAs('public/files/shares', $filename);
$form_data['cover'] = 'files/shares/' . $filename;
}
// Upload video konten
if ($request->hasFile('video')) {
// Hapus file lama
$oldFile = $data->video;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('video')->getClientOriginalName();
$request->file('video')->storeAs('public/files/shares', $filename);
$form_data['video'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('ppkukm-tv-detail-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = PPKUKMTVDetail::findOrFail($id);
// Hapus file lama
$cover = $data->cover;
if (!is_null($cover) && Storage::disk('public')->exists($cover)) {
Storage::disk('public')->delete($cover);
}
$video = $data->video;
if (!is_null($video) && Storage::disk('public')->exists($video)) {
Storage::disk('public')->delete($video);
}
// Hapus data
$data->delete();
return redirect()->route('ppkukm-tv-detail-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\PelayananStore;
use App\Models\Pelayanan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PelayananController extends Controller
{
public function informasi_pelayanan(string $kategori)
{
if ($kategori == '2') {
$informasi_pelayanan = [
'nama_pelayanan' => 'UKM',
'kategori' => '2'
];
} elseif ($kategori == '3') {
$informasi_pelayanan = [
'nama_pelayanan' => 'Pengawasan',
'kategori' => '3'
];
} elseif ($kategori == '4') {
$informasi_pelayanan = [
'nama_pelayanan' => 'Suku Dinas',
'kategori' => '4'
];
} elseif ($kategori == '5') {
$informasi_pelayanan = [
'nama_pelayanan' => 'Pusdiklat PPKUKM',
'kategori' => '5'
];
} elseif ($kategori == '6') {
$informasi_pelayanan = [
'nama_pelayanan' => 'Pusdatin',
'kategori' => '6'
];
} else {
$informasi_pelayanan = [
'nama_pelayanan' => 'Koperasi',
'kategori' => '1'
];
}
return $informasi_pelayanan;
}
/**
* Display a listing of the resource.
*/
public function index(string $kategori)
{
return view('main-page.admin.pelayanan.index', [
'data' => Pelayanan::where('kategori', $kategori)->paginate(10),
'informasi_pelayanan' => $this->informasi_pelayanan($kategori)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create(string $kategori)
{
return view('main-page.admin.pelayanan.create', [
'informasi_pelayanan' => $this->informasi_pelayanan($kategori)
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(PelayananStore $request, string $kategori)
{
$form_data = $request->except('_token');
$form_data['kategori'] = $kategori;
if ($request->hasFile('thumbnail')) {
$filename = uniqid() . '-' . $request->file('thumbnail')->getClientOriginalName();
$request->file('thumbnail')->storeAs('public/files/shares', $filename);
$form_data['thumbnail'] = 'files/shares/' . $filename;
}
if ($request->hasFile('gambar')) {
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
Pelayanan::create($form_data);
return redirect()->route('pelayanan-admin.index', ['kategori' => $kategori])->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $kategori, string $id)
{
return view('main-page.admin.pelayanan.show', [
'data' => Pelayanan::findOrFail($id),
'informasi_pelayanan' => $this->informasi_pelayanan($kategori)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $kategori, string $id)
{
return view('main-page.admin.pelayanan.edit', [
'data' => Pelayanan::findOrFail($id),
'informasi_pelayanan' => $this->informasi_pelayanan($kategori)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(PelayananStore $request, string $kategori, string $id)
{
$data = Pelayanan::findOrFail($id);
$form_data = $request->except('_token');
if ($request->hasFile('thumbnail')) {
// Hapus file lama
$oldFile = $data->thumbnail;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('thumbnail')->getClientOriginalName();
$request->file('thumbnail')->storeAs('public/files/shares', $filename);
$form_data['thumbnail'] = 'files/shares/' . $filename;
}
if ($request->hasFile('gambar')) {
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('pelayanan-koperasi.index', ['kategori' => $kategori])->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Pelayanan::findOrFail($id);
// Hapus file lama
$oldFile = $data->thumbnail;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('pelayanan.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\StorePengumuman;
use App\Models\Pengumuman;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class PengumumanController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.pengumuman.index', [
'data' => Pengumuman::orderBy('tgl', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.pengumuman.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(StorePengumuman $request)
{
$form_data = $request->except('_token', 'files');
// Simpan data
Pengumuman::create($form_data);
return redirect()->route('pengumuman-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.pengumuman.show', [
'data' => Pengumuman::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = Pengumuman::findOrFail($id);
$data->isi = str_replace("\r\n", "", $data->isi);
return view('main-page.admin.pengumuman.edit', compact('data'));
}
/**
* Update the specified resource in storage.
*/
public function update(StorePengumuman $request, string $id)
{
$form_data = $request->except('_token', 'files');
$data = Pengumuman::findOrFail($id);
if ($request->hasFile('dokumen')) {
// Hapus file lama
$oldFile = $data->dokumen;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('dokumen')->getClientOriginalName();
$request->file('dokumen')->storeAs('public/files/shares', $filename);
$form_data['dokumen'] = 'files/shares/' . $filename;
}
$data->update($form_data);
return redirect()->route('pengumuman-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Pengumuman::findOrFail($id);
// Hapus file lama
$oldFile = $data->dokumen;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$data->delete();
return redirect()->route('pengumuman-admin.index')->with('success', 'Data berhasil ditambahkan');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\ProfilPejabatStore;
use App\Models\ProfilPejabat;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class ProfilPejabatController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.profil-pejabat.index', [
'data' => ProfilPejabat::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.profil-pejabat.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(ProfilPejabatStore $request)
{
$form_data = $request->except('_token');
if ($request->hasFile('foto')) {
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
// Simpan data
ProfilPejabat::create($form_data);
return redirect()->route('profil-pejabat-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.profil-pejabat.show', [
'data' => ProfilPejabat::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.profil-pejabat.edit', [
'data' => ProfilPejabat::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(ProfilPejabatStore $request, string $id)
{
$data = ProfilPejabat::findOrFail($id);
$form_data = $request->except('_token');
if ($request->hasFile('foto')) {
// Hapus file lama
$oldFile = $data->foto;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('foto')->getClientOriginalName();
$request->file('foto')->storeAs('public/files/shares', $filename);
$form_data['foto'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('profil-pejabat-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = ProfilPejabat::findOrFail($id);
// Hapus file lama
$oldFile = $data->foto;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('profil-pejabat-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\StoreRegulasi;
use App\Models\Regulasi;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class RegulasiController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.regulasi.index', [
'data' => Regulasi::orderBy('tgl_publish', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.regulasi.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreRegulasi $request)
{
$form_data = $request->except('_token', 'files');
// Upload dokumen regulasi
if ($request->hasFile('dokumen')) {
$filename = uniqid() . '-' . $request->file('dokumen')->getClientOriginalName();
$request->file('dokumen')->storeAs('public/files/shares', $filename);
$form_data['dokumen'] = 'files/shares/' . $filename;
}
// Upload thumbnail data regulasi
if ($request->hasFile('thumbnail')) {
$filename = uniqid() . '-' . $request->file('thumbnail')->getClientOriginalName();
$request->file('thumbnail')->storeAs('public/files/shares', $filename);
$form_data['thumbnail'] = 'files/shares/' . $filename;
}
// Simpan data
Regulasi::create($form_data);
return redirect()->route('regulasi-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.regulasi.show', [
'data' => Regulasi::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.regulasi.edit', [
'data' => Regulasi::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(StoreRegulasi $request, string $id)
{
$form_data = $request->except('_token', 'files');
$data = Regulasi::findOrFail($id);
// Update dokumen regulasi
if ($request->hasFile('dokumen')) {
// Hapus file lama
$oldFile = $data->dokumen;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('dokumen')->getClientOriginalName();
$request->file('dokumen')->storeAs('public/files/shares', $filename);
$form_data['dokumen'] = 'files/shares/' . $filename;
}
// Update thumbnail data regulasi
if ($request->hasFile('thumbnail')) {
// Hapus file lama
$oldFile = $data->thumbnail;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('thumbnail')->getClientOriginalName();
$request->file('thumbnail')->storeAs('public/files/shares', $filename);
$form_data['thumbnail'] = 'files/shares/' . $filename;
}
$data->update($form_data);
return redirect()->route('regulasi-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Regulasi::findOrFail($id);
// Hapus dokumen regulasi
$oldFile = $data->dokumen;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus thumbnail data regulasi
$oldFile = $data->thumbnail;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$data->delete();
return redirect()->route('regulasi-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\SideFTAInformasiStore;
use App\Models\KategoriSideftaInformasi;
use App\Models\SideFTAInformasi;
use Illuminate\Http\Request;
class SideFTAController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.sidefta.informasi.index', [
'data' => SideFTAInformasi::paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.sidefta.informasi.create', [
'sidefta_informasi_kategori' => KategoriSideftaInformasi::all()
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(SideFTAInformasiStore $request)
{
$form_data = $request->except('_token');
if ($request->hasFile('dokumen')) {
$filename = uniqid() . '-' . $request->file('dokumen')->getClientOriginalName();
$request->file('dokumen')->storeAs('public/files/shares', $filename);
$form_data['dokumen'] = 'files/shares/' . $filename;
}
// Simpan data
SideFTAInformasi::create($form_data);
return redirect()->route('sidefta-informasi-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.sidefta.informasi.show', [
'data' => SideFTAInformasi::findOrFail($id)
]);
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\SliderWebStore;
use App\Models\SliderWeb;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class SliderController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.slider.index', [
'data' => SliderWeb::where('jenis', '1')->orderBy('urutan', 'asc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$data = SliderWeb::where('jenis', '1')->orderBy('urutan', 'desc')->first();
$urutan_terakhir = !is_null($data) ? intval($data->urutan) + 1 : 1;
return view('main-page.admin.slider.create', compact('urutan_terakhir'));
}
/**
* Store a newly created resource in storage.
*/
public function store(SliderWebStore $request)
{
$form_data = $request->except('_token');
$form_data['jenis'] = '1';
$existing_data = SliderWeb::where('jenis', '1')->orderBy('urutan', 'desc')->first();
$current_latest_order = !is_null($existing_data) ? intval($existing_data->urutan) + 1 : 1;
$new_order = $form_data['urutan'];
if (intval($new_order) < intval($current_latest_order)) {
// Jika 'urutan' diubah ke-atas, maka tukar 'urutan' pada data yang memiliki 'urutan' yang sama
$same_order = SliderWeb::where('jenis', '1')->where('urutan', $new_order)->first();
if (!is_null($same_order)) {
$same_order->update(['urutan' => $current_latest_order]);
}
$form_data['urutan'] = $new_order;
}
if ($request->hasFile('gambar')) {
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
SliderWeb::create($form_data);
return redirect()->route('slider.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.slider.show', [
'data' => SliderWeb::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$data = SliderWeb::findOrFail($id);
return view('main-page.admin.slider.edit', compact('data'));
}
/**
* Update the specified resource in storage.
*/
public function update(SliderWebStore $request, string $id)
{
$data = SliderWeb::findOrFail($id);
$form_data = $request->except('_token');
// Tukar 'urutan' pada data yang memiliki 'urutan' yang sama
$current_order = $data->urutan;
$new_order = $form_data['urutan'];
$same_order = SliderWeb::where('jenis', '1')->where('urutan', $new_order)->first();
if (!is_null($same_order)) {
$same_order->update(['urutan' => $current_order]);
}
$form_data['urutan'] = $new_order;
if ($request->hasFile('gambar')) {
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
$filename = uniqid() . '-' . $request->file('gambar')->getClientOriginalName();
$request->file('gambar')->storeAs('public/files/shares', $filename);
$form_data['gambar'] = 'files/shares/' . $filename;
}
// Simpan data
$data->update($form_data);
return redirect()->route('slider.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = SliderWeb::findOrFail($id);
// Hapus file lama
$oldFile = $data->gambar;
if (!is_null($oldFile) && Storage::disk('public')->exists($oldFile)) {
Storage::disk('public')->delete($oldFile);
}
// Hapus data
$data->delete();
return redirect()->route('slider.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\StoreVideo;
use App\Models\Video;
use Illuminate\Http\Request;
class VideoController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return view('main-page.admin.publikasi.video.index', [
'data' => Video::orderBy('created_at', 'desc')->paginate(10)
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
return view('main-page.admin.publikasi.video.create');
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreVideo $request)
{
// Membentuk link embed video
$link_video = explode('?si=', $request->link_video);
if (isset($link_video[0]) && isset($link_video[1])) {
$path_link_video = explode('/', $link_video[0]);
if (count($path_link_video) > 0 && isset($path_link_video[count($path_link_video)-1])) {
$video_id = $path_link_video[count($path_link_video)-1];
}
$link_embed_video = 'https://www.youtube.com/embed/' . $video_id;
} else {
$link_embed_video = null;
}
Video::create(array_merge($request->except('_token'), ['link_video' => $link_embed_video]));
return redirect()->route('publikasi-video-admin.index')->with('success', 'Data berhasil ditambahkan');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
return view('main-page.admin.publikasi.video.show', [
'data' => Video::findOrFail($id)
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
return view('main-page.admin.publikasi.video.edit', [
'data' => Video::findOrFail($id)
]);
}
/**
* Update the specified resource in storage.
*/
public function update(StoreVideo $request, string $id)
{
$data = Video::findOrFail($id);
// Membentuk link embed video
$link_video = explode('?si=', $request->link_video);
if (isset($link_video[0]) && isset($link_video[1])) {
$path_link_video = explode('/', $link_video[0]);
if (count($path_link_video) > 0 && isset($path_link_video[count($path_link_video)-1])) {
$video_id = $path_link_video[count($path_link_video)-1];
}
$link_embed_video = 'https://www.youtube.com/embed/' . $video_id;
} else {
$link_embed_video = null;
}
$data->update(array_merge($request->except('_token'), ['link_video' => $link_embed_video]));
return redirect()->route('publikasi-video-admin.index')->with('success', 'Data berhasil diubah');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
$data = Video::findOrFail($id);
$data->delete();
return redirect()->route('publikasi-video-admin.index')->with('success', 'Data berhasil dihapus');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Berita;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class BeritaController extends Controller
{
public function index()
{
$data = Berita::orderBy('tgl', 'desc')->paginate(10);
if ($data->isNotEmpty()) {
foreach ($data as $key => $value) {
$value->isi = strip_tags($value->isi);
}
}
return view('main-page.public.berita.index', compact('data'));
}
public function detail(string $id)
{
$data = Berita::findOrFail($id);
$berita_lainnya = Berita::where('id', '!=', $data->id)->inRandomOrder()->limit(6)->get();
if ($berita_lainnya->isNotEmpty()) {
foreach ($berita_lainnya as $key => $value) {
$value->isi = strip_tags($value->isi);
}
}
return view('main-page.public.berita.detail', compact('data', 'berita_lainnya'));
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
use AuthorizesRequests, ValidatesRequests;
}
<?php
namespace App\Http\Controllers;
use App\Models\KategoriSideftaInformasi;
use Illuminate\Http\Request;
class DataController extends Controller
{
public function index()
{
return view('main-page.public.data-publikasi.index', [
'sidefta_informasi_kategori' => KategoriSideftaInformasi::with('sidefta_informasi')->get()
]);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
class DownloadController extends Controller
{
public function download(Request $request)
{
if ($request->type == 'koperasi' || $request->type == 'regulasi') {
$file = $request->file;
if (Storage::disk('public')->exists($file)) {
return response()->download(storage_path('/app/public/' . $file));
}
}
return redirect()->back();
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class GaleriController extends Controller
{
public function index()
{
return view('main-page.public.galeri.index');
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Infografis;
use Illuminate\Http\Request;
class InfografisController extends Controller
{
public function index()
{
$data = Infografis::orderBy('tgl', 'desc')->paginate(10);
if ($data->isNotEmpty()) {
foreach ($data as $key => $value) {
$value->isi = strip_tags($value->isi);
}
}
return view('main-page.public.infografis.index', compact('data'));
}
public function get($id)
{
$data = Infografis::findOrFail($id);
$infografis_lainnya = Infografis::where('id', '!=', $data->id)->inRandomOrder()->limit(6)->get();
if ($infografis_lainnya->isNotEmpty()) {
foreach ($infografis_lainnya as $key => $value) {
$value->isi = strip_tags($value->isi);
}
}
return view('main-page.public.infografis.detail', compact('data', 'infografis_lainnya'));
}
}
<?php
namespace App\Http\Controllers;
use App\Models\Bimbingan;
use App\Models\KBLI;
use App\Models\Pelayanan;
use Illuminate\Http\Request;
class PelayananController extends Controller
{
public function perdagangan()
{
return view('main-page.public.pelayanan.perdagangan');
}
public function metrologi()
{
return view('main-page.public.pelayanan.metrologi');
}
public function pisp()
{
return view('main-page.public.pelayanan.pisp');
}
public function upkb2t()
{
return view('main-page.public.pelayanan.upkb2t');
}
public function perindustrian(Request $request)
{
return view('main-page.public.pelayanan.perindustrian');
}
public function kbli_search(Request $request)
{
$kbli = [];
if (!is_null($request->keyword)) {
$kbli = KBLI::select('nomor', 'nama')->where('nomor', 'like', '%' . $request->keyword . '%')->orWhere('nama', 'like', '%' . $request->keyword . '%')->limit(5)->get();
}
return response()->json([
'results' => $kbli
]);
}
public function kbli_get(Request $request)
{
$kbli = [];
if (!is_null($request->nomor)) {
$kbli = KBLI::select('nomor', 'nama', 'foto', 'file')->where('nomor', $request->nomor)->first();
$kbli->foto = !is_null($kbli->foto) ? asset('storage/' . $kbli->foto) : null;
$kbli->file = !is_null($kbli->file) ? asset('storage/' . $kbli->file) : null;
}
return response()->json([
'results' => $kbli
]);
}
public function perindustrian_jadwal_bimbingan()
{
return response()->json([
'data' => Bimbingan::all()
]);
}
public function koperasi()
{
return view('main-page.public.pelayanan.koperasi.index', [
'data' => Pelayanan::where('kategori', '1')->get()
]);
}
public function ukm()
{
return view('main-page.public.pelayanan.ukm', [
'data' => Pelayanan::where('kategori', '2')->get()
]);
}
public function pengawasan()
{
return view('main-page.public.pelayanan.pengawasan', [
'data' => Pelayanan::where('kategori', '3')->get()
]);
}
public function suku_dinas()
{
return view('main-page.public.pelayanan.suku-dinas', [
'data' => Pelayanan::where('kategori', '4')->get()
]);
}
public function pusdiklat()
{
return view('main-page.public.pelayanan.pusdiklat', [
'data' => Pelayanan::where('kategori', '5')->get()
]);
}
public function pusdatin()
{
return view('main-page.public.pelayanan.pusdatin', [
'data' => Pelayanan::where('kategori', '6')->get()
]);
}
public function index()
{
return view('main-page.public.pelayanan.index');
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Models\Event;
use App\Models\EventKategori;
use Illuminate\Http\Request;
class EventController extends Controller
{
public function index(Request $request)
{
$filter_kategori_event = $request->query('kategori');
$filter_tanggal_mulai_event = $request->query('tanggal_mulai');
$filter_tanggal_berakhir_event = $request->query('tanggal_berakhir');
$filter_urutan_event = $request->query('urutan');
$data = Event::where(function ($query) use ($filter_kategori_event, $filter_tanggal_mulai_event, $filter_tanggal_berakhir_event) {
if (!is_null($filter_kategori_event)) {
$query->where('event_kategori_id', $filter_kategori_event);
}
if (!is_null($filter_tanggal_mulai_event)) {
$query->where('tgl_mulai', '>=', $filter_tanggal_mulai_event);
}
if (!is_null($filter_tanggal_berakhir_event)) {
$query->where('tgl_berakhir', '<=', $filter_tanggal_berakhir_event);
}
})->orderBy('tgl_mulai', !is_null($filter_urutan_event) && $filter_urutan_event == '2' ? 'asc' : 'desc')->paginate(12);
$kategori_event = EventKategori::all();
return view('main-page.public.event.index', compact('filter_kategori_event', 'filter_tanggal_mulai_event', 'filter_tanggal_berakhir_event', 'filter_urutan_event', 'data', 'kategori_event'));
}
public function detail(string $id)
{
$data = Event::findOrFail($id);
$rekomendasi_event = Event::inRandomOrder()->where('event_kategori_id', $data->event_kategori_id)->limit(4)->get();
return view('main-page.public.event.detail', compact('data', 'rekomendasi_event'));
}
public function ppkukm_tv()
{
return view('main-page.public.ppkukm-tv.index');
}
public function ppkukm_tv_detail()
{
return view('main-page.public.ppkukm-tv.detail');
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Models\Berita;
use App\Models\Event;
use App\Models\Infografis;
use App\Models\Pengumuman;
use App\Models\RunningText;
use App\Models\SliderWeb;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class HomeController extends Controller
{
public function index()
{
$slider = SliderWeb::where('jenis', '1')->orderBy('urutan', 'asc')->get();
$pengumuman_terbaru = Pengumuman::orderBy('tgl', 'desc')->limit(3)->get();
$event_terbaru = Event::orderBy('created_at', 'desc')->limit('4')->get();
$berita_terbaru = Berita::orderBy('created_at', 'desc')->limit('4')->get();
$infografis_terbaru = Infografis::orderBy('created_at', 'desc')->limit(3)->get();
return view('welcome', compact('slider', 'pengumuman_terbaru', 'event_terbaru', 'berita_terbaru', 'infografis_terbaru'));
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Http\Requests\Public\StoreLaporanRAT;
use App\Mail\UploadLaporanRAT;
use App\Models\LaporanRAT;
use App\Models\Pelayanan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage;
class KoperasiController extends Controller
{
public function uploadLaporanRAT(StoreLaporanRAT $request)
{
// Upload dokumen reply email
$filename = '';
if ($request->hasFile('dokumen_rat')) {
$filename = uniqid() . '-' . $request->file('dokumen_rat')->getClientOriginalName();
$request->file('dokumen_rat')->storeAs('public/files/laporan-rat', $filename);
}
$request->request->add(['nomor_laporan' => date('YmdHis')]);
$request->request->add(['dokumen_rat' => $filename]);
LaporanRAT::create($request->except(['_token', 'g-recaptcha-response']));
$request->request->add(['dokumen' => public_path() . '/storage/files/laporan-rat/' . $filename]);
$request->request->add(['filename' => $filename]);
Mail::to($request->email_pengisi)->send(new UploadLaporanRAT($request));
// Hapus dokumen reply email setelah email terkirim
if (Storage::disk('public')->exists($request->dokumen)) {
Storage::disk('public')->delete($request->dokumen);
}
return redirect()->back()->with('success', 'Laporan RAT berhasil dikirim');
}
public function laporanRATGet(Request $request)
{
$nomor_laporan = $request->query->get('nomor_laporan');
$data = LaporanRAT::where('nomor_laporan', $nomor_laporan)->first();
return response()->json([
'status' => $data ? true : false,
'data' => $data
]);
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Models\Pengumuman;
use Illuminate\Http\Request;
class PengumumanController extends Controller
{
public function index(Request $request)
{
return view('main-page.public.pengumuman.index', [
'data' => Pengumuman::where('judul', 'like', '%'.$request->keyword.'%')->orderBy('tgl', 'desc')->paginate(10),
'keyword' => $request->keyword
]);
}
public function detail(string $id)
{
$data = Pengumuman::findOrFail($id);
$pengumuman_lainnya = Pengumuman::where('id', '!=', $data->id)->inRandomOrder()->limit(6)->get();
if ($pengumuman_lainnya->isNotEmpty()) {
foreach ($pengumuman_lainnya as $key => $value) {
$value->isi = strip_tags($value->isi);
}
}
return view('main-page.public.pengumuman.detail', compact('data', 'pengumuman_lainnya'));
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Models\Foto;
use App\Models\Video;
use Illuminate\Http\Request;
class PublikasiController extends Controller
{
public function foto()
{
return view('main-page.public.publikasi.foto', [
'data' => Foto::orderBy('created_at', 'desc')->paginate(10)
]);
}
public function foto_get(Request $request)
{
$data = Foto::findOrFail($request->id);
return response()->json(['status' => true, 'data' => $data]);
}
public function video()
{
return view('main-page.public.publikasi.video', [
'data' => Video::orderBy('created_at')->paginate(10)
]);
}
}
<?php
namespace App\Http\Controllers\Public;
use App\Http\Controllers\Controller;
use App\Models\Regulasi;
use Illuminate\Http\Request;
class RegulasiController extends Controller
{
public function index()
{
return view('main-page.public.regulasi.index', [
'data' => Regulasi::orderBy('tgl_publish', 'desc')->paginate(10)
]);
}
public function get(Request $request)
{
$data = Regulasi::findOrFail($request->id);
return response()->json(['status' => true, 'data' => $data]);
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class SinkronisasiController extends Controller
{
public function berita()
{
return view('welcomecopy');
}
public function berita_trx()
{
$source_query = DB::connection('mysql2')->table('berita')->where('menu_id', '11');
$source_data_amount = $source_query->count();
$_SESSION['data-order'] = 0;
$limit = 100;
$source_data = $source_query->limit($_SESSION['data-order'], $limit)->get();
dd($source_data);
}
}
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
/**
* The application's middleware aliases.
*
* Aliases may be used instead of class names to conveniently assign middleware to routes and groups.
*
* @var array<string, class-string|string>
*/
protected $middlewareAliases = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*/
protected function redirectTo(Request $request): ?string
{
return $request->expectsJson() ? null : route('login');
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array<int, string>
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array<int, string>
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next, string ...$guards): Response
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array<int, string>
*/
protected $except = [
'current_password',
'password',
'password_confirmation',
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array<int, string|null>
*/
public function hosts(): array
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array<int, string>|string|null
*/
protected $proxies;
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers =
Request::HEADER_X_FORWARDED_FOR |
Request::HEADER_X_FORWARDED_HOST |
Request::HEADER_X_FORWARDED_PORT |
Request::HEADER_X_FORWARDED_PROTO |
Request::HEADER_X_FORWARDED_AWS_ELB;
}
<?php
namespace App\Http\Middleware;
use Illuminate\Routing\Middleware\ValidateSignature as Middleware;
class ValidateSignature extends Middleware
{
/**
* The names of the query string parameters that should be ignored.
*
* @var array<int, string>
*/
protected $except = [
// 'fbclid',
// 'utm_campaign',
// 'utm_content',
// 'utm_medium',
// 'utm_source',
// 'utm_term',
];
}
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array<int, string>
*/
protected $except = [
//
];
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class BeritaStore extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'tgl' => 'required|date',
'gambar' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:2048',
'isi' => 'required|string'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Kolom judul wajib diisi.',
'judul.string' => 'Kolom judul harus berupa teks.',
'judul.max' => 'Kolom judul tidak boleh lebih dari :max karakter.',
'tgl.required' => 'Kolom tanggal wajib diisi.',
'tgl.date' => 'Kolom tanggal harus berupa tanggal yang valid.',
'gambar.file' => 'Kolom gambar harus berupa file.',
'gambar.mimes' => 'Kolom gambar harus berupa file dengan tipe: :values.',
'gambar.max' => 'Kolom gambar tidak boleh lebih dari 2 Mb.',
'isi.required' => 'Kolom isi wajib diisi.',
'isi.string' => 'Kolom isi harus berupa teks.'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class EventStore extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'event_kategori_id' => 'required|string|max:255',
'tgl_mulai' => 'required|date',
'tgl_berakhir' => 'required|date',
'lokasi' => 'required|string|max:255',
'gambar' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:2048',
'tags' => 'required|string|max:255',
'isi' => 'required|string'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Kolom judul wajib diisi.',
'judul.string' => 'Kolom judul harus berupa teks.',
'judul.max' => 'Kolom judul tidak boleh lebih dari :max karakter.',
'event_kategori_id.required' => 'Kolom event_kategori_id wajib diisi.',
'event_kategori_id.string' => 'Kolom event_kategori_id harus berupa teks.',
'event_kategori_id.max' => 'Kolom event_kategori_id tidak boleh lebih dari :max karakter.',
'tgl_mulai.required' => 'Kolom tgl_mulai wajib diisi.',
'tgl_mulai.date' => 'Kolom tgl_mulai harus berupa tanggal yang valid.',
'tgl_berakhir.required' => 'Kolom tgl_berakhir wajib diisi.',
'tgl_berakhir.date' => 'Kolom tgl_berakhir harus berupa tanggal yang valid.',
'lokasi.required' => 'Kolom lokasi wajib diisi.',
'lokasi.string' => 'Kolom lokasi harus berupa teks.',
'lokasi.max' => 'Kolom lokasi tidak boleh lebih dari :max karakter.',
'gambar.file' => 'Kolom gambar harus berupa file.',
'gambar.mimes' => 'Kolom gambar harus berupa file dengan tipe: :values.',
'gambar.max' => 'Kolom gambar tidak boleh lebih dari 2 Mb.',
'tags.required' => 'Kolom tags wajib diisi.',
'tags.string' => 'Kolom tags harus berupa teks.',
'tags.max' => 'Kolom tags tidak boleh lebih dari :max karakter.',
'isi.required' => 'Kolom isi wajib diisi.',
'isi.string' => 'Kolom isi harus berupa teks.'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class InfografisStore extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'tgl' => 'required|date',
'gambar' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:2048',
'isi' => 'required|string',
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Kolom judul wajib diisi.',
'judul.string' => 'Judul harus berupa teks.',
'judul.max' => 'Judul tidak boleh lebih dari :max karakter.',
'tgl.required' => 'Kolom tanggal wajib diisi',
'tgl.date' => 'Tanggal harus berupa format yang valid',
'gambar.file' => 'Gambar harus berupa file.',
'gambar.mimes' => 'Gambar harus berupa file dengan tipe: :values.',
'gambar.max' => 'Gambar tidak boleh lebih dari 2 Mb.',
'isi.required' => 'Kolom isi wajib diisi.',
'isi.string' => 'Isi harus berupa teks.'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class PelayananStore extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'nama' => 'required|string|max:255',
'thumbnail' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:2048',
'gambar' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:5120'
];
}
// custom validation message
public function messages()
{
return [
'nama.required' => 'Kolom nama wajib diisi.',
'nama.string' => 'Kolom nama harus berupa teks.',
'nama.max' => 'Kolom nama tidak boleh lebih dari :max karakter.',
'thumbnail.file' => 'Kolom thumbnail harus berupa file.',
'thumbnail.mimes' => 'Kolom thumbnail harus berupa file dengan tipe: :values.',
'thumbnail.max' => 'Kolom thumbnail tidak boleh lebih dari 2 Mb.',
'gambar.file' => 'Kolom gambar harus berupa file.',
'gambar.mimes' => 'Kolom gambar harus berupa file dengan tipe: :values.',
'gambar.max' => 'Kolom gambar tidak boleh lebih dari 5 Mb.',
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class SliderWebStore extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'subjudul' => 'required|string|max:255',
'gambar' => 'nullable|file|mimes:png,jpg,jpeg,gif|max:2048',
'urutan' => 'required|integer',
'ditampilkan' => 'required|string|in:1,2'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Judul wajib diisi',
'judul.string' => 'Judul harus berupa huruf',
'judul.max' => 'Judul maksimal 255 karakter',
'subjudul.required' => 'Subjudul wajib diisi',
'subjudul.string' => 'Subjudul harus berupa huruf',
'subjudul.max' => 'Subjudul maksimal 255 karakter',
'gambar.file' => 'Gambar harus berupa file',
'gambar.mimes' => 'Gambar harus berupa file dengan format PNG, JPG, JPEG, atau GIF',
'gambar.max' => 'Gambar maksimal 2 Mb',
'urutan.required' => 'Urutan wajib diisi',
'urutan.integer' => 'Urutan harus berupa angka',
'urutan.max' => 'Urutan maksimal 3 karakter',
'ditampilkan.required' => 'Ditampilkan wajib diisi',
'ditampilkan.string' => 'Ditampilkan harus berupa huruf',
'ditampilkan.in' => 'Ditampilkan harus berupa 1 (Ya) atau 2 (Tidak)'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class StoreFoto extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'deskripsi' => 'required|string',
'foto' => 'nullable|file|mimes:png,jpg,jpeg|max:2048'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Judul wajib diisi',
'judul.string' => 'Judul harus berupa huruf',
'judul.max' => 'Judul maksimal 255 karakter',
'deskripsi.required' => 'Kolom deskripsi wajib diisi',
'deskripsi.string' => 'Kolom deskripsi harus berupa huruf',
'foto.file' => 'Foto harus berupa file',
'foto.mimes' => 'Foto harus berupa file dengan format PNG, JPG, JPEG',
'foto.max' => 'Foto maksimal 2 Mb'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class StorePengumuman extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'tgl' => 'required|date',
'isi' => 'required|string',
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Judul wajib diisi',
'judul.string' => 'Judul harus berupa huruf',
'judul.max' => 'Judul maksimal 255 karakter',
'tgl.required' => 'Tanggal wajib diisi',
'tgl.integer' => 'Tanggal harus memliki format yang valid',
'isi.required' => 'Kolom Isi wajib diisi',
'isi.string' => 'Kolom Isi harus berupa huruf'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class StoreRegulasi extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'tgl_publish' => 'required|date',
'deskripsi' => 'required|string',
'dokumen' => 'nullable|file|mimes:pdf,doc,docx,png,jpg,jpeg|max:10240',
'thumbnail' => 'nullable|file|mimes:png,jpg,jpeg|max:2048'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Judul wajib diisi',
'judul.string' => 'Judul harus berupa huruf',
'judul.max' => 'Judul maksimal 255 karakter',
'tgl_publish.required' => 'Tanggal wajib diisi',
'tgl_publish.date' => 'Tanggal harus memliki format yang valid',
'deskripsi.required' => 'Kolom deskripsi wajib diisi',
'deskripsi.string' => 'Kolom deskripsi harus berupa huruf',
'dokumen.file' => 'Dokumen harus berupa file',
'dokumen.mimes' => 'Dokumen harus berupa file dengan format PDF, DOC, DOCX, PNG, JPG, JPEG',
'dokumen.max' => 'Dokumen maksimal 10 Mb',
'thumbnail.file' => 'Thumbnail harus berupa file',
'thumbnail.mimes' => 'Thumbnail harus berupa file dengan format PNG, JPG, JPEG',
'thumbnail.max' => 'Thumbnail maksimal 2 Mb'
];
}
}
<?php
namespace App\Http\Requests\Admin;
use Illuminate\Foundation\Http\FormRequest;
class StoreVideo extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'judul' => 'required|string|max:255',
'link_video' => 'required|url'
];
}
// custom validation message
public function messages()
{
return [
'judul.required' => 'Judul wajib diisi',
'judul.string' => 'Judul harus berupa huruf',
'judul.max' => 'Judul maksimal 255 karakter',
'link_video.required' => 'Link Video wajib diisi',
'link_video.url' => 'Link Video harus berupa link video YouTube'
];
}
}
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Attachment;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class UploadLaporanRAT extends Mailable
{
use Queueable, SerializesModels;
public $data;
/**
* Create a new message instance.
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Upload Laporan RAT',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'main-page.public.koperasi.upload-laporan-rat-email',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
isset($this->data['dokumen']) ? Attachment::fromPath($this->data['dokumen'])
->as($this->data['filename'])
->withMime('application/pdf') : null,
];
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Berita extends Model
{
use HasFactory;
protected $table = 'berita';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Event extends Model
{
use HasFactory;
protected $table = 'event';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
public function kategori()
{
return $this->belongsTo(EventKategori::class, 'event_kategori_id', 'id');
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class EventKategori extends Model
{
use HasFactory;
protected $table = 'event_kategori';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Foto extends Model
{
use HasFactory;
protected $table = 'foto';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Infografis extends Model
{
use HasFactory;
protected $table = 'infografis';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Pelayanan extends Model
{
use HasFactory;
protected $table = 'pelayanan';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Pengumuman extends Model
{
use HasFactory;
protected $table = 'pengumuman';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Regulasi extends Model
{
use HasFactory;
protected $table = 'regulasi';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SliderWeb extends Model
{
use HasFactory;
protected $table = 'slider_ppid';
protected $keyType = 'string';
protected $guarded = [];
// generate prmary on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens;
use HasFactory;
use HasProfilePhoto;
use Notifiable;
use TwoFactorAuthenticatable;
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array<int, string>
*/
protected $hidden = [
'password',
'remember_token',
'two_factor_recovery_codes',
'two_factor_secret',
];
/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
/**
* The accessors to append to the model's array form.
*
* @var array<int, string>
*/
protected $appends = [
'profile_photo_url',
];
}
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Video extends Model
{
use HasFactory;
protected $table = 'video';
protected $keyType = 'string';
protected $guarded = [];
// generate primary key on store
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->{$model->getKeyName()} = date('YmdHis');
});
}
}
<?php
namespace App\Providers;
use App\Models\LinkTerkait;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
// Using view composer to set following variables globally
// use bootstrap 5 pagination
\Illuminate\Pagination\Paginator::useBootstrapFive();
}
}
<?php
namespace App\Providers;
// use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The model to policy mappings for the application.
*
* @var array<class-string, class-string>
*/
protected $policies = [
//
];
/**
* Register any authentication / authorization services.
*/
public function boot(): void
{
//
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Broadcast::routes();
require base_path('routes/channels.php');
}
}
<?php
namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;
class EventServiceProvider extends ServiceProvider
{
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
/**
* Register any events for your application.
*/
public function boot(): void
{
//
}
/**
* Determine if events and listeners should be automatically discovered.
*/
public function shouldDiscoverEvents(): bool
{
return false;
}
}
<?php
namespace App\Providers;
use App\Actions\Fortify\CreateNewUser;
use App\Actions\Fortify\ResetUserPassword;
use App\Actions\Fortify\UpdateUserPassword;
use App\Actions\Fortify\UpdateUserProfileInformation;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
use Laravel\Fortify\Fortify;
class FortifyServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
RateLimiter::for('login', function (Request $request) {
$throttleKey = Str::transliterate(Str::lower($request->input(Fortify::username())).'|'.$request->ip());
return Limit::perMinute(5)->by($throttleKey);
});
RateLimiter::for('two-factor', function (Request $request) {
return Limit::perMinute(5)->by($request->session()->get('login.id'));
});
}
}
<?php
namespace App\Providers;
use App\Actions\Jetstream\DeleteUser;
use Illuminate\Support\ServiceProvider;
use Laravel\Jetstream\Jetstream;
class JetstreamServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
$this->configurePermissions();
Jetstream::deleteUsersUsing(DeleteUser::class);
}
/**
* Configure the permissions that are available within the application.
*/
protected function configurePermissions(): void
{
Jetstream::defaultApiTokenPermissions(['read']);
Jetstream::permissions([
'create',
'read',
'update',
'delete',
]);
}
}
<?php
namespace App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* The path to your application's "home" route.
*
* Typically, users are redirected here after authentication.
*
* @var string
*/
public const HOME = '/admin/dashboard';
/**
* Define your route model bindings, pattern filters, and other route configuration.
*/
public function boot(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
});
}
}
<?php
namespace App\Rules;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Support\Facades\Http;
class Recaptcha implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
$response = Http::get("https://www.google.com/recaptcha/api/siteverify", [
'secret' => config('app.gsecret-key'),
'response' => $value
]);
if (!($response->json()["success"] ?? false)) {
$fail('Captcha wajib diisi!');
}
}
}
<?php
namespace App\View\Components;
use Illuminate\View\Component;
use Illuminate\View\View;
class AppLayout extends Component
{
/**
* Get the view / contents that represents the component.
*/
public function render(): View
{
return view('layouts.app');
}
}
<?php
namespace App\View\Components;
use Illuminate\View\Component;
use Illuminate\View\View;
class GuestLayout extends Component
{
/**
* Get the view / contents that represents the component.
*/
public function render(): View
{
return view('layouts.guest');
}
}
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any of our classes manually. It's great to relax.
|
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/
$kernel->terminate($input, $status);
exit($status);
<?php
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
App\Http\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Console\Kernel::class,
App\Console\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);
/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/
return $app;
{
"name": "laravel/laravel",
"type": "project",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"require": {
"php": "^8.1",
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.8",
"laravel/jetstream": "^3.2",
"laravel/sanctum": "^3.2",
"laravel/tinker": "^2.8",
"livewire/livewire": "^2.11",
"spatie/laravel-html": "^3.2",
"yajra/laravel-oci8": "^10.6"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
"laravel/pint": "^1.0",
"laravel/sail": "^1.18",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^7.0",
"phpunit/phpunit": "^10.1",
"spatie/laravel-ignition": "^2.0"
},
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"app/Helpers/AppHelper.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi"
],
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force"
],
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
]
},
"extra": {
"laravel": {
"dont-discover": []
}
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true,
"allow-plugins": {
"pestphp/pest-plugin": true,
"php-http/discovery": true
}
},
"minimum-stability": "stable",
"prefer-stable": true
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
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