242 lines
7.7 KiB
PHP
242 lines
7.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Siswa;
|
|
use App\Models\Programs;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class ProgramController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
// public function resizeGambar($requestFile, $tempatSimpan, $simpan, $index = 0)
|
|
// {
|
|
// $file = $requestFile;
|
|
//
|
|
// $filename = time() . '_' . $index . '.' . $file->getClientOriginalExtension();
|
|
//
|
|
// $resizedImage = Image::make($file);
|
|
// $resizedImage->orientate();
|
|
// $resizedImage->resize(500, 500, function ($constraint) {
|
|
// $constraint->aspectRatio();
|
|
// $constraint->upsize();
|
|
// });
|
|
//
|
|
//
|
|
// $imageEncoded = (string) $resizedImage->encode();
|
|
//
|
|
// $path = $tempatSimpan . $filename;
|
|
// Storage::put($path, $imageEncoded);
|
|
//
|
|
// $gambar = $simpan . $filename;
|
|
// return $gambar;
|
|
// }
|
|
|
|
public function index()
|
|
{
|
|
$data = Programs::all();
|
|
return view('admin.pages.program', compact('data'));
|
|
}
|
|
|
|
public function data($id){
|
|
|
|
$data = Programs::findOrFail($id);
|
|
|
|
return response()->json([
|
|
'id' => $data->id,
|
|
'level' => $data->level,
|
|
'level_number' => $data->level_number,
|
|
'kelas' => $data->kelas,
|
|
'goal' => $data->goal ?? '',
|
|
'penjelasan' => $data->penjelasan ?? '',
|
|
'capaian' => $data->capaian ?? '',
|
|
'penjelasan_tambahan' => $data->penjelasan_tambahan ?? '',
|
|
'gambar_load' => $data->gambar_load ?? '',
|
|
'gambar' => $data->gambar ?? '',
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*/
|
|
public function create()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'level' => 'required',
|
|
'level_number' => 'nullable|integer|in:1,2,3,4',
|
|
'kelas' => 'required',
|
|
'goal' => 'required',
|
|
'penjelasan' => 'required',
|
|
'capaian' => 'required',
|
|
'gambar' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
|
|
], [
|
|
'level.required' => 'Level wajib diisi!',
|
|
'level_number.integer' => 'Level Number harus berupa angka!',
|
|
'level_number.in' => 'Level Number tidak valid!',
|
|
'kelas.required' => 'Kelas wajib diisi!',
|
|
'goal.required' => 'Goal wajib diisi!',
|
|
'penjelasan.required' => 'Penjelasan wajib diisi!',
|
|
'capaian.required' => 'Capaian wajib diisi!',
|
|
'gambar.required' => 'Gambar wajib diisi!',
|
|
'gambar.image' => 'Gambar harus berupa gambar!',
|
|
'gambar.mimes' => 'Format gambar yang diperbolehkan adalah jpeg, png, jpg, gif, svg',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return redirect()->back()->withErrors($validator)->withInput();
|
|
}
|
|
|
|
$validated = $validator->validated();
|
|
|
|
if ($request->hasFile('gambar')) {
|
|
$file = $request->file('gambar');
|
|
$hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension();
|
|
$file->storeAs('program', $hashedName, 'public');
|
|
$validated['gambar'] = 'program/' . $hashedName;
|
|
}
|
|
|
|
// lazy load jika nanti dibutuhkan
|
|
// if ($request->hasFile('gambar_load')) {
|
|
// $file = $request->file('gambar_load');
|
|
//
|
|
// $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension();
|
|
//
|
|
// $file->storeAs('program', $hashedName, 'public');
|
|
//
|
|
// $validated['gambar_load'] = 'program/' . $hashedName;
|
|
|
|
$validated['gambar_load'] = '';
|
|
|
|
Programs::create($validated);
|
|
|
|
return redirect('/admin/program')->with('success', 'Data Program berhasil disimpan');
|
|
}
|
|
|
|
/**
|
|
* Display the specified resource.
|
|
*/
|
|
public function show(string $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Show the form for editing the specified resource.
|
|
*/
|
|
public function edit(string $id)
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Update the specified resource in storage.
|
|
*/
|
|
public function update(Request $request, string $id)
|
|
{
|
|
$data = Programs::find($id);
|
|
$validator = Validator::make($request->all(), [
|
|
'level' => 'required',
|
|
'level_number' => 'nullable|integer|in:1,2,3,4',
|
|
'kelas' => 'required',
|
|
'goal' => 'required',
|
|
'penjelasan' => 'required',
|
|
'capaian' => 'required',
|
|
], [
|
|
'level.required' => 'Level wajib diisi!',
|
|
'level_number.integer' => 'Level Number harus berupa angka!',
|
|
'level_number.in' => 'Level Number tidak valid!',
|
|
'kelas.required' => 'Kelas wajib diisi!',
|
|
'goal.required' => 'Goal wajib diisi!',
|
|
'penjelasan.required' => 'Penjelasan wajib diisi!',
|
|
'capaian.required' => 'Capaian wajib diisi!',
|
|
]);
|
|
|
|
$validated = $validator->validated();
|
|
|
|
if ($request->hasFile('gambar')) {
|
|
if ($data->gambar) {
|
|
$imagePath = storage_path('app/public/' . $data->gambar);
|
|
if (file_exists($imagePath)) {
|
|
unlink($imagePath);
|
|
}
|
|
}
|
|
|
|
$file = $request->file('gambar');
|
|
|
|
$hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension();
|
|
|
|
$file->storeAs('program', $hashedName, 'public');
|
|
|
|
$validated['gambar'] = 'program/' . $hashedName;
|
|
}
|
|
|
|
// if ($request->hasFile('gambar_load')) {
|
|
// if ($data->gambar_load) {
|
|
// $imagePath = storage_path('app/public/' . $data->gambar_load);
|
|
// if (file_exists($imagePath)) {
|
|
// unlink($imagePath);
|
|
// }
|
|
// }
|
|
//
|
|
// $file = $request->file('gambar_load');
|
|
//
|
|
// $hashedName = md5(time() . $file->getClientOriginalName()) . '.' . $file->getClientOriginalExtension();
|
|
//
|
|
// $file->storeAs('program', $hashedName, 'public');
|
|
//
|
|
// $validated['gambar_load'] = 'program/' . $hashedName;
|
|
// }
|
|
// if ($request->file('gambar')) {
|
|
// $validatedDetail['gambar_load'] = $this->resizeGambar($request->file('gambar'), 'public/program/', 'program/', '0');
|
|
// if ($data->gambar_load != null || $data->gambar_load != "") {
|
|
// $filePath = 'storage/' . $data->gambar_load;
|
|
// if (file_exists($filePath)) {
|
|
// unlink($filePath);
|
|
// }
|
|
// }
|
|
// }
|
|
$validated['gambar_load'] = ''; // kosongi dulu
|
|
|
|
$data->update($validated);
|
|
|
|
return redirect('/admin/program')->with('success', 'Data Program berhasil diedit');
|
|
}
|
|
|
|
/**
|
|
* Remove the specified resource from storage.
|
|
*/
|
|
public function destroy(string $id)
|
|
{
|
|
$data = Programs::findOrFail($id);
|
|
|
|
if ($data->gambar) {
|
|
$imagePath = storage_path('app/public/' . $data->gambar);
|
|
if (file_exists($imagePath)) {
|
|
unlink($imagePath);
|
|
}
|
|
}
|
|
if ($data->gambar_load != null || $data->gambar_load != '') {
|
|
$imagePath = storage_path('app/public/' . $data->gambar_load);
|
|
if (file_exists($imagePath)) {
|
|
unlink($imagePath);
|
|
}
|
|
}
|
|
|
|
$data->delete();
|
|
return redirect('/admin/program')->with('success', 'Data Program berhasil dihapus');
|
|
}
|
|
}
|