From 77d30e54cfd38ee112017639f71208b85ca895aa Mon Sep 17 00:00:00 2001 From: Ulill <148078505+ulilfarhah6@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:34:21 +0700 Subject: [PATCH] push finish --- app/Http/Controllers/AdminController.php | 70 +++++ app/Http/Controllers/AlgoritmaController.php | 4 +- app/Http/Controllers/AlternatifController.php | 138 +++++---- app/Http/Controllers/Auth/LoginController.php | 15 +- ...ontroller => ForgotPasswordController.php} | 0 app/Http/Controllers/HomeController.php | 7 +- app/Http/Controllers/KriteriaController.php | 4 +- .../Controllers/LamaranUserController.php | 56 ++++ app/Http/Controllers/PenilaianController.php | 1 + .../Controllers/RegisterUserController.php | 19 +- app/Models/LamaranUser.php | 33 ++ app/Notifications/AkunDikonfirmasi.php | 34 +++ app/Notifications/PelamarBaruNotification.php | 30 ++ ...6_17_230730_create_lamaran_users_table.php | 30 ++ lang/en/auth.php | 1 + public/assets/images/1750900057.jpg | Bin 0 -> 4738 bytes .../admin/alternatif/alternatif-pdf.blade.php | 2 +- .../views/admin/alternatif/index.blade.php | 21 +- resources/views/admin/crips/edit.blade.php | 4 +- resources/views/admin/home.blade.php | 90 +++++- .../views/admin/kriteria/index.blade.php | 4 +- resources/views/admin/kriteria/show.blade.php | 8 +- .../views/admin/penilaian/index.blade.php | 2 +- .../views/admin/perhitungan/index.blade.php | 17 +- .../perhitungan/perhitungan-pdf.blade.php | 22 +- resources/views/admin/user/user-pdf.blade.php | 8 +- resources/views/auth/login.blade.php | 21 +- resources/views/auth/register.blade.php | 282 ++++++++++-------- .../views/layouts/_partials/sidebar.blade.php | 130 ++++---- .../layouts/_partials/sidebar2.blade.php | 2 +- .../views/layouts/_partials/topbar.blade.php | 45 +-- resources/views/layouts/app.blade.php | 1 + .../views/user/alternatif/index.blade.php | 35 ++- resources/views/welcome.blade.php | 13 +- routes/web.php | 21 +- 35 files changed, 820 insertions(+), 350 deletions(-) create mode 100644 app/Http/Controllers/AdminController.php rename app/Http/Controllers/{ForgotPasswordController => ForgotPasswordController.php} (100%) create mode 100644 app/Http/Controllers/LamaranUserController.php create mode 100644 app/Models/LamaranUser.php create mode 100644 app/Notifications/AkunDikonfirmasi.php create mode 100644 app/Notifications/PelamarBaruNotification.php create mode 100644 database/migrations/2025_06_17_230730_create_lamaran_users_table.php create mode 100644 public/assets/images/1750900057.jpg diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php new file mode 100644 index 0000000..e191601 --- /dev/null +++ b/app/Http/Controllers/AdminController.php @@ -0,0 +1,70 @@ +middleware('auth'); + } + + // Tampilkan daftar lamaran yang belum dikonfirmasi + public function daftarLamaran() + { + $lamarans = LamaranUser::latest()->get(); + return view('admin.home.blade', compact('lamarans')); + } + + // Admin menerima lamaran dan memindahkan ke tabel alternatif + public function terimaLamaran($id) + { + $lamaran = LamaranUser::findOrFail($id); + + Alternatif::create([ + 'nama_alternatif' => $lamaran->name, + 'usia' => $lamaran->usia, + 'pendidikan' => $lamaran->pendidikan, + 'ipk' => $lamaran->ipk, + 'jurusan' => $lamaran->jurusan, + 'lama_studi' => $lamaran->lama_studi, + 'pengalaman' => $lamaran->pengalaman, + 'serkom' => $lamaran->serkom, + 'cv' => $lamaran->cv, + 'dokumen_pendukung' => $lamaran->dokumen_pendukung, + ]); + + // Hapus dari tabel lamaran_users + $lamaran->delete(); + + return redirect()->back()->with('msg', 'Lamaran berhasil diterima dan dipindahkan ke data pelamar.'); + } + + // ✅ Admin menolak lamaran dan menghapus datanya + public function tolakLamaran($id) + { + $lamaran = LamaranUser::findOrFail($id); + + // Hapus file yang diupload + if (Storage::disk('public')->exists($lamaran->cv)) { + Storage::disk('public')->delete($lamaran->cv); + } + + if ($lamaran->dokumen_pendukung) { + foreach (json_decode($lamaran->dokumen_pendukung, true) as $file) { + if (Storage::disk('public')->exists($file)) { + Storage::disk('public')->delete($file); + } + } + } + + $lamaran->delete(); + + return redirect()->back()->with('msg', 'Lamaran ditolak dan data telah dihapus.'); + } +} diff --git a/app/Http/Controllers/AlgoritmaController.php b/app/Http/Controllers/AlgoritmaController.php index ef564c0..e153eec 100644 --- a/app/Http/Controllers/AlgoritmaController.php +++ b/app/Http/Controllers/AlgoritmaController.php @@ -58,7 +58,7 @@ public function index() foreach ($normalisasi as $key => $value) { $rank = []; foreach ($kriteria as $value_1) { - $rank[] = $value[$value_1->id] * ($value_1->bobot / 100); + $rank[] = $value[$value_1->id] * ($value_1->bobot); } $ranking[] = [ 'name' => $key, @@ -123,7 +123,7 @@ public function downloadPDF() foreach ($normalisasi as $key => $value) { $rank = []; foreach ($kriteria as $value_1) { - $rank[] = $value[$value_1->id] * ($value_1->bobot / 100); + $rank[] = $value[$value_1->id] * ($value_1->bobot); } $ranking[] = [ 'name' => $key, diff --git a/app/Http/Controllers/AlternatifController.php b/app/Http/Controllers/AlternatifController.php index 57ffc38..dc1fd14 100644 --- a/app/Http/Controllers/AlternatifController.php +++ b/app/Http/Controllers/AlternatifController.php @@ -7,10 +7,12 @@ use App\Models\Penilaian; use Barryvdh\DomPDF\Facade\Pdf; use Carbon\Carbon; -use App\Models\User; +use App\Models\LamaranUser; use App\Models\Crips; +use Illuminate\Support\Facades\Storage; use Exception; + class AlternatifController extends Controller { public function __construct() @@ -30,53 +32,42 @@ public function index(){ } - public function store(Request $request){ - $validated = $request->validate([ - 'nama_alternatif' => 'required|string|max:255', - 'usia' => 'required|numeric', - 'pendidikan' => 'required', - 'ipk' => 'required|numeric', - 'jurusan' => 'required', - 'lama_studi' => 'required|integer|min:0|max:10', - 'pengalaman' => 'required|integer|min:0|max:10', - 'serkom' => 'required', - 'cv' => 'required|file|mimes:pdf,doc,docx|max:2048', - 'dokumen_pendukung.*' => 'nullable|file|mimes:pdf,doc,docx,jpg,jpeg,png|max:2048', + public function terimaLamaran($id) + { + $lamaran = LamaranUser::findOrFail($id); + + $alternatif = Alternatif::create([ + 'nama_alternatif' => $lamaran->name, + 'usia' => $lamaran->usia, + 'pendidikan' => $lamaran->pendidikan, + 'ipk' => $lamaran->ipk, + 'jurusan' => $lamaran->jurusan, + 'lama_studi' => $lamaran->lama_studi, + 'pengalaman' => $lamaran->pengalaman, + 'serkom' => $lamaran->serkom, + 'cv' => $lamaran->cv, + 'dokumen_pendukung' => $lamaran->dokumen_pendukung, ]); - // Upload CV - if ($request->hasFile('cv')) { - $validated['cv'] = $request->file('cv')->store('cv', 'public'); - } + // Hapus dari tabel lamaran_users + $kriteria = \App\Models\Kriteria::all(); // pastikan sudah ada model Kriteria - // Upload dokumen pendukung (opsional) - $dokumenPendukungPaths = []; - if ($request->hasFile('dokumen_pendukung')) { - foreach ($request->file('dokumen_pendukung') as $file) { - $dokumenPendukungPaths[] = $file->store('dokumen_pendukung', 'public'); - } - } + foreach ($kriteria as $k) { + $crips_id = $this->mapToCrips($alternatif, $k->id); + if ($crips_id) { + Penilaian::create([ + 'alternatif_id' => $alternatif->id, + 'kriteria_id' => $k->id, + 'crips_id' => $crips_id + ]); + } + } + + $lamaran->delete(); - $validated['dokumen_pendukung'] = json_encode($dokumenPendukungPaths); - - $alternatif = Alternatif::create($validated); - - for ($kriteria_id = 1; $kriteria_id <= 7; $kriteria_id++) { - $crips_id = $this->mapToCrips($alternatif, $kriteria_id); - if ($crips_id) { - Penilaian::create([ - 'alternatif_id' => $alternatif->id, - 'kriteria_id' => $kriteria_id, - 'crips_id' => $crips_id, - 'created_at' => now(), - 'updated_at' => now(), - ]); - } - } - return redirect()->route('alternatif.index')->with('msg', 'Data pelamar berhasil ditambahkan!'); - - } - private function mapToCrips($alternatif, $kriteria_id) + return redirect()->back()->with('msg', 'Lamaran berhasil diterima dan dipindahkan ke data pelamar.'); + } + private function mapToCrips($alternatif, $kriteria_id) { $crips = Crips::where('kriteria_id', $kriteria_id)->get(); $crips_id = null; @@ -107,6 +98,7 @@ private function mapToCrips($alternatif, $kriteria_id) elseif ($crip->nama_crips == '3.0-3.49' && $ipk >= 3.0 && $ipk < 3.5) $crips_id = $crip->id; elseif ($crip->nama_crips == '2.75-2.99' && $ipk >= 2.75 && $ipk < 3.0) $crips_id= $crip->id; elseif ($crip->nama_crips == '2.5-2.74' && $ipk >= 2.5 && $ipk < 2.75) $crips_id = $crip->id; + elseif ($crip->nama_crips == '2.0-2.49' && $ipk >= 2.0 && $ipk < 2.49) $crips_id = $crip->id; } break; @@ -182,21 +174,36 @@ public function update(Request $request, $id) } - public function destroy($id){ +public function destroy($id) +{ + \DB::beginTransaction(); + try { + $alternatif = Alternatif::findOrFail($id); - try { - - $alternatif = Alternatif::findOrFail($id); - $alternatif->delete(); - Penilaian::where('alternatif_id', $id)->delete(); - - return back()->with('msg', 'Data pelamar berhasil dihapus!'); - } catch (Exception $e) { - \Log::emergency("File:" . $e->getFile(). "Line:" . $e->getLine(). "Message:" . $e->getMessage()); - die("Gagal"); + // Hapus file CV + if ($alternatif->cv) { + \Storage::disk('public')->delete($alternatif->cv); } + // Hapus dokumen pendukung + if ($alternatif->dokumen_pendukung) { + $docs = json_decode($alternatif->dokumen_pendukung, true); + foreach ($docs as $doc) { + \Storage::disk('public')->delete($doc); + } + } + + $alternatif->delete(); + Penilaian::where('alternatif_id', $id)->delete(); + + \DB::commit(); + return response()->json(['message' => 'Data pelamar berhasil dihapus!'], 200); + } catch (\Exception $e) { + \DB::rollBack(); + \Log::emergency("File:" . $e->getFile() . " Line:" . $e->getLine() . " Message:" . $e->getMessage()); + return response()->json(['error' => 'Gagal menghapus data'], 500); } +} public function downloadPDF() { setlocale(LC_ALL, 'IND'); @@ -207,4 +214,25 @@ public function downloadPDF() { $pdf->setPaper('A3', 'potrait'); return $pdf->stream('alternatif.pdf'); } + public function tolakLamaran($id) + { + $lamaran = LamaranUser::findOrFail($id); + + // Hapus file yang diupload + if (Storage::disk('public')->exists($lamaran->cv)) { + Storage::disk('public')->delete($lamaran->cv); + } + + if ($lamaran->dokumen_pendukung) { + foreach (json_decode($lamaran->dokumen_pendukung, true) as $file) { + if (Storage::disk('public')->exists($file)) { + Storage::disk('public')->delete($file); + } + } + } + + $lamaran->delete(); + + return redirect()->back()->with('msg', 'Lamaran ditolak dan data telah dihapus.'); + } } diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 35290f9..883b8fe 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -3,21 +3,17 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; -use Illuminate\Support\Facades\Auth; use Illuminate\Foundation\Auth\AuthenticatesUsers; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; +use Illuminate\Validation\ValidationException; class LoginController extends Controller { use AuthenticatesUsers; - // Hapus atau komentar $redirectTo karena akan pakai function - - // protected $redirectTo = RouteServiceProvider::HOME; - /** * Arahkan user setelah login sesuai role - * - * @return string */ protected function redirectTo() { @@ -30,6 +26,11 @@ protected function redirectTo() } } + /** + * Jika login gagal karena belum dikonfirmasi + */ + + public function logout() { Auth::logout(); diff --git a/app/Http/Controllers/ForgotPasswordController b/app/Http/Controllers/ForgotPasswordController.php similarity index 100% rename from app/Http/Controllers/ForgotPasswordController rename to app/Http/Controllers/ForgotPasswordController.php diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 7c2a2db..7438649 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -2,9 +2,12 @@ namespace App\Http\Controllers; +use App\Models\LamaranUser; use Illuminate\Http\Request; use App\Models\Alternatif; use App\Models\Kriteria; +use App\Models\User; +use App\Models\PendaftaranUser; class HomeController extends Controller { @@ -37,7 +40,8 @@ public function adminHome() // Untuk admin, hitung jumlah data $alternatifs = Alternatif::count(); $kriteria = Kriteria::count(); - return view('admin.home', compact('alternatifs', 'kriteria')); + $lamarans = LamaranUser::latest()->get(); + return view('admin.home', compact('alternatifs', 'kriteria', 'lamarans')); } public function userHome() { @@ -47,5 +51,6 @@ public function userHome() $kriteria = Kriteria::count(); return view('user.home',compact('alternatifs', 'kriteria')); } + } diff --git a/app/Http/Controllers/KriteriaController.php b/app/Http/Controllers/KriteriaController.php index 19a93bb..565b7f0 100644 --- a/app/Http/Controllers/KriteriaController.php +++ b/app/Http/Controllers/KriteriaController.php @@ -29,7 +29,7 @@ public function store(Request $request){ 'nama_kriteria' => 'required|string', 'attribut' => 'required|string', - 'bobot' => 'required|numeric' + 'bobot' => 'required|numeric', ]); @@ -64,7 +64,7 @@ public function update(Request $request, $id) 'nama_kriteria' => 'required|string', 'attribut' => 'required|string', - 'bobot' => 'required|numeric' + 'bobot' => 'required|numeric', ]); diff --git a/app/Http/Controllers/LamaranUserController.php b/app/Http/Controllers/LamaranUserController.php new file mode 100644 index 0000000..a5aaec7 --- /dev/null +++ b/app/Http/Controllers/LamaranUserController.php @@ -0,0 +1,56 @@ +validate([ + 'name' => 'required|string|max:255', + 'usia' => 'required|integer|min:17|max:60', + 'pendidikan' => 'required|string', + 'ipk' => 'required|numeric|min:0|max:4', + 'jurusan' => 'required|string', + 'lama_studi' => 'required|integer|min:0|max:10', + 'pengalaman' => 'required|integer|min:0|max:50', + 'serkom' => 'required|boolean', + 'cv' => 'required|file|mimes:pdf,doc,docx|max:2048', + 'dokumen_pendukung.*' => 'nullable|file|mimes:pdf,doc,docx,jpg,png|max:2048', + ]); + + // Upload CV + $cvPath = $request->file('cv')->store('dokumen/cv', 'public'); + + // Upload dokumen pendukung (bisa lebih dari satu file) + $dokumenPaths = []; + if ($request->hasFile('dokumen_pendukung')) { + foreach ($request->file('dokumen_pendukung') as $file) { + $dokumenPaths[] = $file->store('dokumen/pendukung', 'public'); + } + } + + $lamaran = LamaranUser::create([ + 'name' => $request->name, + 'usia' => $request->usia, + 'pendidikan' => $request->pendidikan, + 'ipk' => $request->ipk, + 'jurusan' => $request->jurusan, + 'lama_studi' => $request->lama_studi, + 'pengalaman' => $request->pengalaman, + 'serkom' => $request->serkom, + 'cv' => $cvPath, + 'dokumen_pendukung' => json_encode($dokumenPaths), + ]); + $adminUsers = User::where('role', 'admin')->get(); // Pastikan 'role' sesuai + Notification::send($adminUsers, new PelamarBaruNotification([ + 'message' => "Pelamar baru: {$lamaran->name}" + ])); + return redirect()->back()->with('msg', 'Lamaran Anda berhasil diajukan. Silakan tunggu konfirmasi dari admin.'); + } +} diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 6ac0f7a..31cca16 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -108,6 +108,7 @@ private function getCripsId($kriteria_id, $nilai) elseif ($crip->nama_crips == '3.0-3.49' && $nilai >= 3.0 && $nilai < 3.5) $crips_id = $crip->id; elseif ($crip->nama_crips == '2.75-2.99' && $nilai >= 2.75 && $nilai < 3.0) $crips_id = $crip->id; elseif ($crip->nama_crips == '2.5-2.74' && $nilai >= 2.5 && $nilai < 2.75) $crips_id = $crip->id; + elseif ($crip->nama_crips == '2.0-2.49' && $nilai >= 2.0 && $nilai < 2.49) $crips_id = $crip->id; } break; diff --git a/app/Http/Controllers/RegisterUserController.php b/app/Http/Controllers/RegisterUserController.php index a784e30..1db6819 100644 --- a/app/Http/Controllers/RegisterUserController.php +++ b/app/Http/Controllers/RegisterUserController.php @@ -5,8 +5,6 @@ use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; - - class RegisterUserController extends Controller { public function showRegistrationForm() @@ -20,30 +18,25 @@ public function register(Request $request) $request->validate([ 'name' => 'required|string|max:191', 'email' => 'required|email|unique:users', - 'password' => 'required|confirmed|min:6', + 'password' => 'required|confirmed|min:8', 'alamat' => 'required|string|max:255', 'telepon' => 'required|string|max:20', 'keterangan' => 'nullable|string|max:255', 'g-recaptcha-response' => 'required|captcha', ]); - - // Buat pengguna - $user = User::create([ + User::create([ 'name' => $request->name, 'email' => $request->email, - 'password' => Hash::make($request->password), + 'password' => Hash::make($request->password), // hash password wajib 'alamat' => $request->alamat, 'telepon' => $request->telepon, 'keterangan' => $request->keterangan, - 'role' => 'user', + 'role' => 'user', // default role jika perlu ]); - - - // Login pengguna secara otomatis (opsional) //auth()->login($user); - // Arahkan ke halaman verifikasi - return redirect()->route('home')->with('success', 'Akun berhasil didaftarkan, silakan verifikasi email Anda!'); + // Arahkan ke halaman dengan pesan sukses + return redirect()->route('login')->with('success', 'Akun berhasi didaftarkan, silahkan anda dapat login.'); } } \ No newline at end of file diff --git a/app/Models/LamaranUser.php b/app/Models/LamaranUser.php new file mode 100644 index 0000000..20fdea2 --- /dev/null +++ b/app/Models/LamaranUser.php @@ -0,0 +1,33 @@ +belongsTo(User::class); + } +} + diff --git a/app/Notifications/AkunDikonfirmasi.php b/app/Notifications/AkunDikonfirmasi.php new file mode 100644 index 0000000..c8d9e69 --- /dev/null +++ b/app/Notifications/AkunDikonfirmasi.php @@ -0,0 +1,34 @@ +subject('Akun Anda Telah Dikonfirmasi') + ->greeting('Halo, ' . $notifiable->name) + ->line('Akun Anda telah dikonfirmasi oleh admin.') + ->line('Sekarang Anda dapat login ke sistem.') + ->action('Login Sekarang', url('/login')) + ->line('Terima kasih telah mendaftar!'); + } + + public function toArray($notifiable) + { + return []; + } +} diff --git a/app/Notifications/PelamarBaruNotification.php b/app/Notifications/PelamarBaruNotification.php new file mode 100644 index 0000000..4c4a6cc --- /dev/null +++ b/app/Notifications/PelamarBaruNotification.php @@ -0,0 +1,30 @@ +data = $data; + } + + public function via($notifiable) + { + return ['database']; + } + + public function toArray($notifiable) + { + return [ + 'message' => $this->data['message'] + ]; + } +} diff --git a/database/migrations/2025_06_17_230730_create_lamaran_users_table.php b/database/migrations/2025_06_17_230730_create_lamaran_users_table.php new file mode 100644 index 0000000..5ce4003 --- /dev/null +++ b/database/migrations/2025_06_17_230730_create_lamaran_users_table.php @@ -0,0 +1,30 @@ +id(); // primary key + $table->string('name'); + $table->integer('usia'); + $table->string('pendidikan'); + $table->decimal('ipk', 3, 2); + $table->string('jurusan'); + $table->integer('lama_studi'); + $table->integer('pengalaman'); + $table->boolean('serkom'); // 0 atau 1 + $table->string('cv')->nullable(); + $table->longText('dokumen_pendukung')->nullable(); + $table->timestamps(); + }); + } + + public function down() + { + Schema::dropIfExists('lamaran_users'); + } +}; diff --git a/lang/en/auth.php b/lang/en/auth.php index 6598e2c..6ebf64c 100644 --- a/lang/en/auth.php +++ b/lang/en/auth.php @@ -16,5 +16,6 @@ 'failed' => 'These credentials do not match our records.', 'password' => 'The provided password is incorrect.', 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + 'not_approved' => 'Akun Anda sedang menunggu persetujuan admin. Silakan tunggu hingga akun Anda dikonfirmasi.', ]; diff --git a/public/assets/images/1750900057.jpg b/public/assets/images/1750900057.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6103dfa731b6fcba092fc1b4b27a629ecd9827e6 GIT binary patch literal 4738 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 literal 0 HcmV?d00001 diff --git a/resources/views/admin/alternatif/alternatif-pdf.blade.php b/resources/views/admin/alternatif/alternatif-pdf.blade.php index bbd4726..35516a2 100644 --- a/resources/views/admin/alternatif/alternatif-pdf.blade.php +++ b/resources/views/admin/alternatif/alternatif-pdf.blade.php @@ -35,7 +35,7 @@
- +
PT.Intecon Bangun Persada
diff --git a/resources/views/admin/alternatif/index.blade.php b/resources/views/admin/alternatif/index.blade.php index a4eef36..66f48b4 100644 --- a/resources/views/admin/alternatif/index.blade.php +++ b/resources/views/admin/alternatif/index.blade.php @@ -19,7 +19,7 @@
-
+
Download Laporan @@ -84,10 +84,21 @@ class="fas fa-download fa-sm text-white-50">Download Laporan diff --git a/resources/views/admin/crips/edit.blade.php b/resources/views/admin/crips/edit.blade.php index e00d6cb..03d838c 100644 --- a/resources/views/admin/crips/edit.blade.php +++ b/resources/views/admin/crips/edit.blade.php @@ -43,7 +43,7 @@
- + @error('bobot') @@ -54,7 +54,7 @@
- Kembali + Kembali diff --git a/resources/views/admin/home.blade.php b/resources/views/admin/home.blade.php index a9a98d5..d30e156 100644 --- a/resources/views/admin/home.blade.php +++ b/resources/views/admin/home.blade.php @@ -11,7 +11,7 @@
-

Selamat Datang!

+

Selamat Datang!

@@ -49,7 +49,7 @@
{{ $kriteria }}
- +
@@ -58,7 +58,91 @@ - +
+
+
+
+ Daftar Lamaran Masuk +
+
+ @if($lamarans->count() > 0) +
+ + + + + + + + + + + + + + + + + @foreach($lamarans as $lamaran) + + + + + + + + + + + + + + @endforeach + +
NamaUsiaPendidikanIPKJurusanLama StudiPengalamanSerkomCVDokumenAksi
{{ $lamaran->name }}{{ $lamaran->usia }} tahun{{ $lamaran->pendidikan }}{{ $lamaran->ipk }}{{ $lamaran->jurusan }}{{ $lamaran->lama_studi }} tahun{{ $lamaran->pengalaman }} tahun + @if($lamaran->serkom == 1) + Ada + @else + Tidak + @endif + + Lihat CV + + @if($lamaran->dokumen_pendukung) + @foreach(json_decode($lamaran->dokumen_pendukung, true) as $file) + Dokumen
+ @endforeach + @else + Tidak Ada + @endif +
+
+ @csrf + +
+
+ @csrf + +
+
+ @else +
+ Belum ada lamaran yang masuk. +
+ @endif +
+
+
+
+ + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - + - - + + - -
- -
+ +
+ +
\ No newline at end of file diff --git a/resources/views/layouts/_partials/sidebar2.blade.php b/resources/views/layouts/_partials/sidebar2.blade.php index 16a5694..7462cb7 100644 --- a/resources/views/layouts/_partials/sidebar2.blade.php +++ b/resources/views/layouts/_partials/sidebar2.blade.php @@ -33,7 +33,7 @@ Data Kriteria --> -