push finish
This commit is contained in:
parent
5dc02c6b64
commit
77d30e54cf
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\LamaranUser;
|
||||
use App\Models\Alternatif;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->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.');
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$validated['dokumen_pendukung'] = json_encode($dokumenPendukungPaths);
|
||||
$lamaran->delete();
|
||||
|
||||
$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.');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
||||
]);
|
||||
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\LamaranUser;
|
||||
use App\Notifications\PelamarBaruNotification;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
use App\Models\User;
|
||||
class LamaranUserController extends Controller
|
||||
{
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->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.');
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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.');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class LamaranUser extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $table = 'lamaran_users';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'usia',
|
||||
'pendidikan',
|
||||
'ipk',
|
||||
'jurusan',
|
||||
'lama_studi',
|
||||
'pengalaman',
|
||||
'serkom',
|
||||
'cv',
|
||||
'dokumen_pendukung',
|
||||
'status',
|
||||
];
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
namespace App\Notifications;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
|
||||
class AkunDikonfirmasi extends Notification
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
public function via($notifiable)
|
||||
{
|
||||
return ['mail'];
|
||||
}
|
||||
|
||||
public function toMail($notifiable)
|
||||
{
|
||||
return (new MailMessage)
|
||||
->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 [];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
namespace App\Notifications;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
class PelamarBaruNotification extends Notification
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
public $data;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
public function via($notifiable)
|
||||
{
|
||||
return ['database'];
|
||||
}
|
||||
|
||||
public function toArray($notifiable)
|
||||
{
|
||||
return [
|
||||
'message' => $this->data['message']
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::create('lamaran_users', function (Blueprint $table) {
|
||||
$table->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');
|
||||
}
|
||||
};
|
|
@ -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.',
|
||||
|
||||
];
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
|
@ -35,7 +35,7 @@
|
|||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-right: 240px; padding-left: 20px"><img src="{{ asset('assets/images/logo no bg.png') }}" width="90" height="90" ></td>
|
||||
<td style="padding-right: 240px; padding-left: 20px"></td>
|
||||
<td>
|
||||
<center>
|
||||
<font size="4">PT.Intecon Bangun Persada</font><br>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
<div class="collapse show" id="listkriteria">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive" style="max-height: 500px; overflow-y: auto;">
|
||||
<a href="{{ URL::to('download-alternatif-pdf') }}" target="_blank" class="d-none d-sm-inline-block btn btn-sm btn-success shadow-sm float-left"><i
|
||||
class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a>
|
||||
<table class="table table-striped table-hover" id="DataTable" data-paging="false">
|
||||
|
@ -84,10 +84,21 @@ class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a>
|
|||
<script src="{{ asset('vendor/datatables/dataTables.bootstrap4.min.js') }}"></script>
|
||||
<script src="{{ asset('js/sweetalert.js')}}"></script>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$('#DataTable').DataTable();
|
||||
|
||||
$('.hapus').on('click', function(){
|
||||
$(document).ready(function(){
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||
}
|
||||
});
|
||||
$('#DataTable').DataTable({
|
||||
paging: false
|
||||
});
|
||||
|
||||
$('.hapus').on('click', function(event){
|
||||
event.preventDefault();
|
||||
const url = $(this).attr('href');
|
||||
|
||||
swal({
|
||||
title: "Apa anda yakin?",
|
||||
text: "Sekali anda menghapus data, data tidak dapat dikembalikan lagi!",
|
||||
|
@ -115,8 +126,6 @@ class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a>
|
|||
swal("Data Aman!");
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="bobot">Bobot Crips</label>
|
||||
<label for="bobot">Nilai Crips</label>
|
||||
<input type="text" class="form-control @error ('bobot') is-invalid @enderror" name="bobot" value="{{ $crips->bobot }}">
|
||||
|
||||
@error('bobot')
|
||||
|
@ -54,7 +54,7 @@
|
|||
|
||||
</div>
|
||||
<button class="btn btn-primary">Simpan</button>
|
||||
<a href="{{ route('kriteria.index') }}" class="btn btn-success">Kembali</a>
|
||||
<a href="{{ route( 'kriteria.index') }}" class="btn btn-success">Kembali</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
<!-- Page Heading -->
|
||||
<div class="d-sm-flex align-items-center justify-content-between mb-4">
|
||||
<h1 class="h3 mb-0 text-gray-800">Selamat Datang! </h1>
|
||||
<h1 class="h3 mb-0 text-dark">Selamat Datang! </h1>
|
||||
</div>
|
||||
|
||||
<!-- Content Row -->
|
||||
|
@ -49,7 +49,7 @@
|
|||
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ $kriteria }}</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="fas fa-code fa-2x text-gray-300"></i>
|
||||
<i class="fas fa-list-ol fa-2x text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -58,7 +58,91 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
|
||||
<!-- tabel lamaran pengguna -->
|
||||
<div class="row mt-4">
|
||||
<div class="col-md-12">
|
||||
<div class="card shadow">
|
||||
<div class="card-header bg-info text-white font-weight-bold">
|
||||
<i class="fas fa-clipboard-list"></i> Daftar Lamaran Masuk
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if($lamarans->count() > 0)
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>Nama</th>
|
||||
<th>Usia</th>
|
||||
<th>Pendidikan</th>
|
||||
<th>IPK</th>
|
||||
<th>Jurusan</th>
|
||||
<th>Lama Studi</th>
|
||||
<th>Pengalaman</th>
|
||||
<th>Serkom</th>
|
||||
<th>CV</th>
|
||||
<th>Dokumen</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($lamarans as $lamaran)
|
||||
<tr>
|
||||
<td>{{ $lamaran->name }}</td>
|
||||
<td>{{ $lamaran->usia }} tahun</td>
|
||||
<td>{{ $lamaran->pendidikan }}</td>
|
||||
<td>{{ $lamaran->ipk }}</td>
|
||||
<td>{{ $lamaran->jurusan }}</td>
|
||||
<td>{{ $lamaran->lama_studi }} tahun</td>
|
||||
<td>{{ $lamaran->pengalaman }} tahun</td>
|
||||
<td>
|
||||
@if($lamaran->serkom == 1)
|
||||
<span class="badge badge-success">Ada</span>
|
||||
@else
|
||||
<span class="badge badge-danger">Tidak</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ asset('storage/' . $lamaran->cv) }}" target="_blank" class="btn btn-sm btn-info">Lihat CV</a>
|
||||
</td>
|
||||
<td>
|
||||
@if($lamaran->dokumen_pendukung)
|
||||
@foreach(json_decode($lamaran->dokumen_pendukung, true) as $file)
|
||||
<a href="{{ asset('storage/' . $file) }}" target="_blank" class="btn btn-sm btn-secondary mb-1">Dokumen</a><br>
|
||||
@endforeach
|
||||
@else
|
||||
<span class="text-muted">Tidak Ada</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="d-flex">
|
||||
<form action="{{ route('admin.lamaran.terima', $lamaran->id) }}" method="POST" class="mr-2">
|
||||
@csrf
|
||||
<button type="submit" class="btn btn-sm btn-success">
|
||||
<i class="fas fa-check"></i> Terima
|
||||
</button>
|
||||
</form>
|
||||
<form action="{{ route('admin.lamaran.tolak', $lamaran->id) }}" method="POST">
|
||||
@csrf
|
||||
<button type="submit" class="btn btn-sm btn-danger" onclick="return confirm('Yakin ingin menolak lamaran ini?')">
|
||||
<i class="fas fa-times"></i> Tolak
|
||||
</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
<div class="alert alert-info mb-0">
|
||||
<i class="fas fa-info-circle"></i> Belum ada lamaran yang masuk.
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--
|
||||
//** Earnings (Monthly) Card Example */
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<a href="{{ route('penilaian.index') }}">
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
<label for="bobot">Bobot Kriteria</label>
|
||||
<input type="text" class="form-control @error ('bobot') is-invalid @enderror" name="bobot">
|
||||
<input type="number" name="bobot" step="0.1" class="form-control @error ('bobot') is-invalid @enderror" name="bobot">
|
||||
|
||||
@error('bobot')
|
||||
<div class="invalid-feedback" role="alert">
|
||||
|
@ -90,7 +90,7 @@
|
|||
<div class="table-responsive">
|
||||
<a href="{{ URL::to('download-kriteria-pdf') }}" target="_blank" class="d-none d-sm-inline-block btn btn-sm btn-success shadow-sm float-left"><i class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a>
|
||||
|
||||
<table class="table table-striped table-hover" id="DataTable" data-paging="false">
|
||||
<table class="table table-striped table-hover text-dark" id="DataTable" data-paging="false">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="bobot">Bobot</label>
|
||||
<label for="bobot">Nilai</label>
|
||||
<input type="text" class="form-control @error ('bobot') is-invalid @enderror" name="bobot" value="{{ old('bobot') }}">
|
||||
|
||||
@error('bobot')
|
||||
|
@ -76,12 +76,12 @@
|
|||
{{-- <a href="{{ URL::to('download-crips-pdf') }}" target="_blank" class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm float-right"><i
|
||||
class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a> --}}
|
||||
<br><br>
|
||||
<table class="table table-striped table-hover" id="DataTable" data-paging="false">
|
||||
<table class="table table-striped table-hover text-dark" id="DataTable" data-paging="false">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama Sub Kriteria</th>
|
||||
<th>Bobot</th>
|
||||
<th>Sub Kriteria</th>
|
||||
<th>Nilai</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -38,7 +38,7 @@ class="fas fa-download fa-sm text-white-50"></i>Download Laporan</a>
|
|||
{{ session('empty') }}
|
||||
</div>
|
||||
@endif
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive" style="max-height: 500px; overflow-y: auto;">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<form action="{{ route('penilaian.store')}}" method="post">
|
||||
|
|
|
@ -3,6 +3,14 @@
|
|||
@section('topbar', 'Data Perhitungan')
|
||||
@section('content')
|
||||
|
||||
<style>
|
||||
.scrollable-content {
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
padding-right: 10px;
|
||||
}
|
||||
</style>
|
||||
<div class="scrollable-content">
|
||||
<div class="card shadow mb-4">
|
||||
<a href="#listkriteria" class="d-block card-header py-3" data-toggle="collapse"
|
||||
role="button" aria-expanded="true" aria-controls="collapseCardExample">
|
||||
|
@ -10,7 +18,7 @@
|
|||
</a>
|
||||
<div class="collapse show" id="listkriteria">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive" style="max-height: 500px; overflow-y: auto;">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -51,7 +59,7 @@
|
|||
</a>
|
||||
<div class="collapse show" id="normalisasi">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive" style="max-height: 500px; overflow-y: auto;">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -84,7 +92,7 @@
|
|||
</a>
|
||||
<div class="collapse show" id="rank">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<div class="table-responsive"style="max-height: 500px; overflow-y: auto;">
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -119,5 +127,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
|
@ -6,7 +6,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Document</title>
|
||||
<title>Hasil Perhitungan</title>
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
|
||||
<style type="text/css">
|
||||
.garis1{
|
||||
|
@ -16,10 +16,10 @@
|
|||
|
||||
}
|
||||
|
||||
#camat{
|
||||
#hrd{
|
||||
text-align:center;
|
||||
}
|
||||
#nama-camat{
|
||||
#nama-hrd{
|
||||
margin-top:100px;
|
||||
text-align:center;
|
||||
}
|
||||
|
@ -40,10 +40,10 @@
|
|||
<td style="padding-right: 240px; padding-left: 20px"><img src="https://4.bp.blogspot.com/-TBASjipimVM/WM-xhIQc5yI/AAAAAAAAD5o/NeSO8wMRISQMLeTCfKBFmewY4vQt1y-NQCEw/s1600/Logo%2BJakarta%2BHitam.png" width="90" height="90" ></td>
|
||||
<td>
|
||||
<center>
|
||||
<font size="4">RUKUN TETANGGA 004</font><br>
|
||||
<font size="4">RUKUN WARGA 001</font><br>
|
||||
<font size="2">KELURAHAN KRAMAT JATI KECAMATAN KRAMAT JATI</font><br>
|
||||
<font size="2">KOTA ADMINISTRASI JAKARTA TIMUR</font><br>
|
||||
<font size="4">PT.Intecon Bangun Persada</font><br>
|
||||
<font size="2">Alamat: Jl. Cadika No. 4A, Sempusari, Kaliwates, Jember, Jawa Timur, Indonesia</font><br>
|
||||
<font size="2">Email: <a href="mailto:inteconbangunpersada@gmail.com">inteconbangunpersada@gmail.com</a></font><br>
|
||||
<font size="2">Phone: +62 331 423445</font><br>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -51,7 +51,7 @@
|
|||
|
||||
<hr class="garis1"/>
|
||||
<div style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<center><strong><u>LIST PENERIMA BANTUAN</u></strong></center>
|
||||
<center><strong><u>LIST PELAMAR YANG LOLOS</u></strong></center>
|
||||
</div>
|
||||
|
||||
<div class="collapse show" id="rank">
|
||||
|
@ -94,9 +94,9 @@
|
|||
<div id="ttd" class="row">
|
||||
<div class="col-md-4"></div>
|
||||
<div class="col-md-4">
|
||||
<p id="camat">Jakarta, {{ $tanggal }}</p>
|
||||
<p id="camat"><strong>KETUA RT 004 / RW 001</strong></p>
|
||||
<div id="nama-camat"><strong><u>AGUSTINA</u></strong><br />
|
||||
<p id="hrd">Jember, {{ $tanggal }}</p>
|
||||
<p id="hrd"><strong>HRD & staff admin</strong></p>
|
||||
<div id="nama-hrd"><strong><u>Yudi Sulistiawan</u></strong><br />
|
||||
NIP. 3175044408730004</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Document</title>
|
||||
<title>Data pengguna</title>
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
|
||||
<style type="text/css">
|
||||
.garis1{
|
||||
|
@ -35,10 +35,10 @@
|
|||
<div>
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-right: 240px; padding-left: 20px"><img src="{{ asset('assets/images/logo no bg.png') }}" width="90" height="90" ></td>
|
||||
<td style="padding-right: 240px; padding-left: 20px"></td>
|
||||
<td>
|
||||
<center>
|
||||
<font size="4">PT.Intecon Bangun Persada</font><br>
|
||||
<font size="4"><strong>PT.Intecon Bangun Persada</strong></font><br>
|
||||
<font size="2">Alamat: Jl. Cadika No. 4A, Sempusari, Kaliwates, Jember, Jawa Timur, Indonesia</font><br>
|
||||
<font size="2">Email: <a href="mailto:inteconbangunpersada@gmail.com">inteconbangunpersada@gmail.com</a></font><br>
|
||||
<font size="2">Phone: +62 331 423445</font><br>
|
||||
|
@ -90,7 +90,7 @@
|
|||
<div class="col-md-4">
|
||||
<p id="hrd">Jember, {{ $tanggal }}</p>
|
||||
<p id="hrd"><strong>HRD & stadd admin</strong></p>
|
||||
<div id="nama-camat"><strong><u>Yudi Sulistiawan</u></strong><br />
|
||||
<div id="nama-hrd"><strong><u>Yudi Sulistiawan</u></strong><br />
|
||||
NIP. 3175044408730004</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -85,6 +85,11 @@
|
|||
<div class="text-center">
|
||||
<h1 class="h4 text-white mb-4">Login!</h1>
|
||||
</div>
|
||||
@if(session('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ session('success') }}
|
||||
</div>
|
||||
@endif
|
||||
<form class="user" method="post" action="{{ route('login')}}">
|
||||
<div class="form-group">
|
||||
@csrf
|
||||
|
@ -121,19 +126,31 @@
|
|||
{{-- <div class="text-center">
|
||||
<a class="small" href="{{ route('register')}}">Buat Akun Baru!</a>
|
||||
</div> --}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mt-4 border-left-primary shadow py-2 px-3">
|
||||
<div class="card-body bg-light text-dark">
|
||||
<h5 class="card-title text-primary font-weight-bold">Akun Admin (Demo)</h5>
|
||||
<p><strong>Email:</strong> admin@admin.com</p>
|
||||
<p><strong>Password:</strong> admin12345</p>
|
||||
<p class="text-muted" style="font-size: 14px;">Gunakan email dan password ini untuk masuk sebagai admin.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Bootstrap core JavaScript-->
|
||||
<script src="{{ asset ('vendor/jquery/jquery.min.js')}}"></script>
|
||||
<script src="{{ asset ('vendor/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
|
||||
|
|
|
@ -1,139 +1,175 @@
|
|||
@extends('layouts.guest')
|
||||
@extends('layouts.guest')
|
||||
|
||||
@section('css')
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-7">
|
||||
<div class="card shadow">
|
||||
<div class="card-header d-flex align-items-center " style="background-color:rgb(11, 128, 200)">
|
||||
<img src="{{ asset('assets/images/logo.png') }}"
|
||||
alt="Logo" width="50" height="50" style="object-fit: contain; margin-right: 15px;">
|
||||
<span class="fw-bold" style="font-size: 1.45rem; font-family: 'Poppins', sans-serif; color: white;">
|
||||
Daftar Akun
|
||||
</span>
|
||||
</div>
|
||||
@section('css')
|
||||
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
background: linear-gradient(to right, #0b80c8, #1cc88a);
|
||||
}
|
||||
|
||||
#content-wrapper,
|
||||
#content,
|
||||
.container-fluid {
|
||||
background:linear-gradient(to right, #0b80c8, #9ed7fa);
|
||||
}
|
||||
|
||||
.card {
|
||||
border-radius: 15px;
|
||||
box-shadow: 0 4px 25px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.card-header {
|
||||
background-color: #0b80c8;
|
||||
color: white;
|
||||
border-top-left-radius: 15px;
|
||||
border-top-right-radius: 15px;
|
||||
padding: 10px 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.card-header img {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
object-fit: contain;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.card-header span {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
|
||||
.btn-primary {
|
||||
background-color: #0b80c8;
|
||||
border-color: #0b80c8;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #06629b;
|
||||
border-color: #06629b;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: #0b80c8;
|
||||
box-shadow: 0 0 0 0.2rem rgba(11, 128, 200, 0.25);
|
||||
}
|
||||
|
||||
.form-label {
|
||||
font-weight: 500;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8 col-lg-7">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<img src="{{ asset('assets/images/logo.png') }}" alt="Logo">
|
||||
<span class="fw-bold fs-4">Daftar Akun</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{ route('register.user.submit') }}" method="POST">
|
||||
@csrf
|
||||
|
||||
{{-- Name --}}
|
||||
<div class="mb-3">
|
||||
<label for="name" class="form-label">Nama Lengkap</label>
|
||||
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror"
|
||||
name="name" value="{{ old('name') }}" required>
|
||||
@error('name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- Email --}}
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror"
|
||||
name="email" value="{{ old('email') }}" required>
|
||||
@error('email')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- Password --}}
|
||||
<div class="mb-3">
|
||||
<label for="password" class="form-label">Kata Sandi</label>
|
||||
<input id="password" type="password"
|
||||
class="form-control @error('password') is-invalid @enderror" name="password"
|
||||
placeholder="Minimal 8 karakter" required>
|
||||
@error('password')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- Confirm Password --}}
|
||||
<div class="mb-3">
|
||||
<label for="password-confirm" class="form-label">Konfirmasi Kata Sandi</label>
|
||||
<input id="password-confirm" type="password" class="form-control"
|
||||
name="password_confirmation" placeholder="Ulangi kata sandi" required>
|
||||
</div>
|
||||
|
||||
{{-- Alamat --}}
|
||||
<div class="mb-3">
|
||||
<label for="alamat" class="form-label">Alamat</label>
|
||||
<input id="alamat" type="text"
|
||||
class="form-control @error('alamat') is-invalid @enderror" name="alamat"
|
||||
value="{{ old('alamat') }}" placeholder="Alamat lengkap">
|
||||
@error('alamat')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- Telepon --}}
|
||||
<div class="mb-3">
|
||||
<label for="telepon" class="form-label">Telepon</label>
|
||||
<input id="telepon" type="text"
|
||||
class="form-control @error('telepon') is-invalid @enderror" name="telepon"
|
||||
value="{{ old('telepon') }}" >
|
||||
@error('telepon')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
{{-- Keterangan --}}
|
||||
<div class="mb-4">
|
||||
<label for="keterangan" class="form-label">Keterangan</label>
|
||||
<input id="keterangan" type="text"
|
||||
class="form-control @error('keterangan') is-invalid @enderror" name="keterangan"
|
||||
value="{{ old('keterangan') }}" placeholder="Isi dengan 'pelamar'">
|
||||
@error('keterangan')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-3">
|
||||
{!! NoCaptcha::display() !!}
|
||||
@error('g-recaptcha-response')
|
||||
<div class="text-danger">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<form action="{{ route('register.user.submit') }}" method="post">
|
||||
@csrf
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="name" class="col-md-4 col-form-label text-md-end">{{ __('Name') }}</label>
|
||||
<div class="col-md-6">
|
||||
<input id="name" type="text"
|
||||
class="form-control @error('name') is-invalid @enderror" name="name"
|
||||
value="{{ old('name') }}" required autocomplete="name" autofocus>
|
||||
@error('name')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
{{-- Submit --}}
|
||||
<div class="text-end">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fas fa-user-plus me-1"></i> Daftar
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="email"
|
||||
class="col-md-4 col-form-label text-md-end">{{ __('Email Address') }}</label>
|
||||
<div class="col-md-6">
|
||||
<input id="email" type="email"
|
||||
class="form-control @error('email') is-invalid @enderror" name="email"
|
||||
value="{{ old('email') }}" required autocomplete="email">
|
||||
@error('email')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="password"
|
||||
class="col-md-4 col-form-label text-md-end">{{ __('Password') }}</label>
|
||||
<div class="col-md-6">
|
||||
<input id="password" type="password"
|
||||
class="form-control @error('password') is-invalid @enderror" name="password"
|
||||
required autocomplete="new-password">
|
||||
@error('password')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="password-confirm"
|
||||
class="col-md-4 col-form-label text-md-end">{{ __('Confirm Password') }}</label>
|
||||
<div class="col-md-6">
|
||||
<input id="password-confirm" type="password" class="form-control"
|
||||
name="password_confirmation" required autocomplete="new-password">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="alamat" class="col-md-4 col-form-label text-md-end">Alamat</label>
|
||||
<div class="col-md-6">
|
||||
<input type="text"
|
||||
class="form-control @error('alamat') is-invalid @enderror" name="alamat"
|
||||
value="{{ old('alamat') }}">
|
||||
@error('alamat')
|
||||
<div class="invalid-feedback" role="alert">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="telepon" class="col-md-4 col-form-label text-md-end">Telepon</label>
|
||||
<div class="col-md-6">
|
||||
<input type="number"
|
||||
class="form-control @error('telepon') is-invalid @enderror" name="telepon"
|
||||
value="{{ old('telepon') }}">
|
||||
@error('telepon')
|
||||
<div class="invalid-feedback" role="alert">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="keterangan" class="col-md-4 col-form-label text-md-end">Keterangan</label>
|
||||
<div class="col-md-6">
|
||||
<input type="text"
|
||||
class="form-control @error('keterangan') is-invalid @enderror" name="keterangan"
|
||||
value="{{ old('keterangan') }}">
|
||||
@error('keterangan')
|
||||
<div class="invalid-feedback" role="alert">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<div class="g-recaptcha" data-sitekey="{{ env('NOCAPTCHA_SITEKEY') }}"></div>
|
||||
@error('g-recaptcha-response')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>{{ $message }}</strong>
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-0">
|
||||
<div class="col-md-6 offset-md-4">
|
||||
<button type="submit" class="btn btn-primary float-right">
|
||||
Tambah Data
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{!! NoCaptcha::renderJs() !!}
|
||||
@endsection
|
||||
|
|
|
@ -1,86 +1,86 @@
|
|||
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
||||
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
||||
|
||||
<!-- Sidebar - Brand -->
|
||||
<!-- Sidebar - Brand -->
|
||||
<a class="sidebar-brand d-flex align-items-center justify-content-center" href="{{ route('home') }}">
|
||||
<div class="sidebar-brand-icon">
|
||||
<img src="{{ asset('assets/images/logo.png') }}" class="rounded-circle" style="height: 45px; with: auto;">
|
||||
</div>
|
||||
<div class="sidebar-brand-text mx-3" style="margin-left: 8px;">SIPKAR</div>
|
||||
<div class="sidebar-brand-icon">
|
||||
<img src="{{ asset('assets/images/logo.png') }}" class="rounded-circle" style="height: 45px; with: auto;">
|
||||
</div>
|
||||
<div class="sidebar-brand-text mx-3" style="margin-left: 8px;">SIPKAR</div>
|
||||
</a>
|
||||
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider my-0">
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider my-0">
|
||||
|
||||
<!-- Nav Item - Dashboard -->
|
||||
<li class="nav-item {{ request()->routeIs('home') ? 'active' : '' }}">
|
||||
<a class="nav-link" href="{{ route('home') }}">
|
||||
<i class="fas fa-fw fa-tachometer-alt"></i>
|
||||
<span>Dashboard</span></a>
|
||||
</li>
|
||||
<!-- Nav Item - Dashboard -->
|
||||
<li class="nav-item {{ request()->routeIs('home') ? 'active' : '' }}">
|
||||
<a class="nav-link" href="{{ route('home') }}">
|
||||
<i class="fas fa-fw fa-tachometer-alt"></i>
|
||||
<span>Dashboard</span></a>
|
||||
</li>
|
||||
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
|
||||
<!-- Heading -->
|
||||
<div class="sidebar-heading">
|
||||
DATA PERHITUNGAN
|
||||
</div>
|
||||
<!-- Heading -->
|
||||
<div class="sidebar-heading">
|
||||
DATA PERHITUNGAN
|
||||
</div>
|
||||
|
||||
<!-- Nav Item - Tables -->
|
||||
<li class="nav-item {{ request()->Is('kriteria*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('kriteria.index') }}">
|
||||
<i class="fas fa-fw fa-code"></i>
|
||||
<span>Data Kriteria</span></a>
|
||||
</li>
|
||||
<!-- Nav Item - Tables -->
|
||||
<li class="nav-item {{ request()->Is('kriteria*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('kriteria.index') }}">
|
||||
<i class="fas fa-fw fa-list-ol"></i>
|
||||
<span>Data Kriteria</span></a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item {{ request()->Is('alternatif*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('alternatif.index') }}">
|
||||
<i class="fas fa-fw fa-users"></i>
|
||||
<span>Data Pelamar</span></a>
|
||||
</li>
|
||||
<li class="nav-item {{ request()->Is('alternatif*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('alternatif.index') }}">
|
||||
<i class="fas fa-fw fa-users"></i>
|
||||
<span>Data Pelamar</span></a>
|
||||
</li>
|
||||
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
|
||||
<!-- Heading -->
|
||||
<div class="sidebar-heading">
|
||||
METODE SAW
|
||||
</div>
|
||||
<!-- Heading -->
|
||||
<div class="sidebar-heading">
|
||||
METODE SAW
|
||||
</div>
|
||||
|
||||
<li class="nav-item {{ request()->Is('penilaian*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('penilaian.index') }}">
|
||||
<i class="fas fa-fw fa-bell"></i>
|
||||
<span>Penilaian</span></a>
|
||||
</li>
|
||||
<li class="nav-item {{ request()->Is('penilaian*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('penilaian.index') }}">
|
||||
<i class="fas fa-fw fa-chart-line"></i>
|
||||
<span>Penilaian</span></a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item {{ request()->Is('perhitungan*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('perhitungan.index') }}">
|
||||
<i class="fas fa-fw fa-book"></i>
|
||||
<span>Perhitungan</span></a>
|
||||
</li>
|
||||
<li class="nav-item {{ request()->Is('perhitungan*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('perhitungan.index') }}">
|
||||
<i class="fas fa-fw fa-calculator"></i>
|
||||
<span>Perhitungan</span></a>
|
||||
</li>
|
||||
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider my-0">
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider my-0">
|
||||
|
||||
<li class="nav-item {{ request()->Is('user*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('user.index')}}">
|
||||
<i class="fas fa-fw fa-user-circle"></i>
|
||||
<span>Data Pengguna</span></a>
|
||||
</li>
|
||||
<li class="nav-item {{ request()->Is('user*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('user.index')}}">
|
||||
<i class="fas fa-fw fa-user-circle"></i>
|
||||
<span>Data Pengguna</span></a>
|
||||
</li>
|
||||
|
||||
<!-- <li class="nav-item {{ request()->Is('laporan*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('laporan')}}">
|
||||
<i class="fas fa-fw fa-file-alt"></i>
|
||||
<span>Laporan</span></a>
|
||||
</li> -->
|
||||
<!-- <li class="nav-item {{ request()->Is('laporan*') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('laporan')}}">
|
||||
<i class="fas fa-fw fa-file-alt"></i>
|
||||
<span>Laporan</span></a>
|
||||
</li> -->
|
||||
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
<!-- Divider -->
|
||||
<hr class="sidebar-divider d-none d-md-block">
|
||||
|
||||
<!-- Sidebar Toggler (Sidebar) -->
|
||||
<div class="text-center d-none d-md-inline">
|
||||
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
||||
</div>
|
||||
<!-- Sidebar Toggler (Sidebar) -->
|
||||
<div class="text-center d-none d-md-inline">
|
||||
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
||||
</div>
|
||||
|
||||
|
||||
</ul>
|
|
@ -33,7 +33,7 @@
|
|||
<span>Data Kriteria</span></a>
|
||||
</li>-->
|
||||
|
||||
<li class="nav-item {{ request()->Is('alternatif*') ? 'active':'' }}">
|
||||
<li class="nav-item {{ request()->Is('ajukan-lamaran') ? 'active':'' }}">
|
||||
<a class="nav-link" href="{{ route('alternatif.index') }}">
|
||||
<i class="fas fa-fw fa-users"></i>
|
||||
<span>Ajukan Lamaran</span></a>
|
||||
|
|
|
@ -13,42 +13,49 @@
|
|||
|
||||
<!-- Topbar Navbar -->
|
||||
<ul class="navbar-nav ml-auto">
|
||||
@auth
|
||||
<li class="nav-item dropdown no-arrow mx-1">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<!-- Notifikasi Pelamar Baru -->
|
||||
@php
|
||||
$notifikasi = Auth::user()->unreadNotifications->where('type', 'App\Notifications\PelamarBaruNotification');
|
||||
@endphp
|
||||
<li class="nav-item dropdown no-arrow mx-1">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-bell fa-fw"></i>
|
||||
<!-- Counter - Alerts -->
|
||||
<span class="badge badge-danger badge-counter">
|
||||
{{ auth()->user()->unreadNotifications->count() }}
|
||||
</span>
|
||||
<!-- Counter -->
|
||||
@if($notifikasi->count() > 0)
|
||||
<span class="badge badge-danger badge-counter">{{ $notifikasi->count() }}</span>
|
||||
@endif
|
||||
</a>
|
||||
<!-- Dropdown - Notifications -->
|
||||
<!-- Dropdown - Alerts -->
|
||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||
aria-labelledby="alertsDropdown">
|
||||
<h6 class="dropdown-header">
|
||||
Notifikasi
|
||||
Notifikasi Pelamar Baru
|
||||
</h6>
|
||||
@forelse(auth()->user()->unreadNotifications as $notification)
|
||||
<a class="dropdown-item d-flex align-items-center" href="{{ route('alternatif.index') }}">
|
||||
@forelse ($notifikasi as $notif)
|
||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||
<div class="mr-3">
|
||||
<div class="icon-circle bg-primary">
|
||||
<i class="fas fa-user text-white"></i>
|
||||
<i class="fas fa-user-plus text-white"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="small text-gray-500">{{ $notification->created_at->diffForHumans() }}</div>
|
||||
<span class="font-weight-bold">{{ $notification->data['message'] }}</span>
|
||||
<div class="small text-gray-500">{{ $notif->created_at->diffForHumans() }}</div>
|
||||
<span class="font-weight-bold">{{ $notif->data['message'] }}</span>
|
||||
</div>
|
||||
</a>
|
||||
@empty
|
||||
<div class="dropdown-item text-center small text-gray-500">Tidak ada notifikasi baru</div>
|
||||
<a class="dropdown-item text-center small text-gray-500" href="#">Tidak ada notifikasi baru</a>
|
||||
@endforelse
|
||||
<a class="dropdown-item text-center small text-gray-500" href="#">Tampilkan Semua Notifikasi</a>
|
||||
|
||||
@if($notifikasi->count() > 0)
|
||||
<div class="dropdown-divider"></div>
|
||||
<a href="{{ route('notifikasi.baca') }}" class="dropdown-item text-center small text-primary">
|
||||
Tandai semua telah dibaca
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</li>
|
||||
@else
|
||||
@endauth
|
||||
|
||||
<div class="topbar-divider d-none d-sm-block"></div>
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
@include('layouts/_partials/head')
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
@stop
|
||||
@section('content')
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="container-fluid" style="max-height: 520px; overflow-y: auto;">
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">Form Pengajuan Lamaran</h6>
|
||||
|
@ -32,7 +32,7 @@
|
|||
</div>
|
||||
@endif
|
||||
|
||||
<form action="{{ route('alternatif.store') }}" method="post" enctype="multipart/form-data">
|
||||
<form action="{{ route('lamaran.store') }}" method="post" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
<!-- Data Pribadi -->
|
||||
|
@ -41,10 +41,10 @@
|
|||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label for="nama_alternatif">Nama Lengkap <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control @error('nama_alternatif') is-invalid @enderror"
|
||||
name="nama_alternatif" value="{{ old('nama_alternatif') }}">
|
||||
@error('nama_alternatif')
|
||||
<label for="name">Nama Lengkap <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control @error('name') is-invalid @enderror"
|
||||
name="name" value="{{ old('name') }}">
|
||||
@error('name')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
@ -89,15 +89,20 @@ class="form-control @error('ipk') is-invalid @enderror"
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="jurusan">Jurusan <span class="text-danger">*</span></label>
|
||||
<input type="text" name="jurusan"
|
||||
class="form-control @error('jurusan') is-invalid @enderror"
|
||||
value="{{ old('jurusan') }}">
|
||||
@error('jurusan')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<label for="jurusan">Jurusan <span class="text-danger">*</span></label>
|
||||
<select name="jurusan" class="form-control @error('jurusan') is-invalid @enderror">
|
||||
<option value="">-- Pilih Jurusan --</option>
|
||||
<option value="Teknik Sipil" {{ old('jurusan') == 'Teknik Sipil' ? 'selected' : '' }}>Teknik Sipil</option>
|
||||
<option value="Arsitektur" {{ old('jurusan') == 'Arsitektur' ? 'selected' : '' }}>Arsitektur</option>
|
||||
<option value="Teknologi Rekayasa Konstruksi Bangunan Gedung" {{ old('jurusan') == 'Teknologi Rekayasa Konstruksi Bangunan Gedung' ? 'selected' : '' }}>TRKBG</option>
|
||||
<option value="Akuntansi" {{ old('jurusan') == 'Akuntansi' ? 'selected' : '' }}>Akuntansi</option>
|
||||
<option value="Lainnya" {{ old('jurusan') == 'Lainnya' ? 'selected' : '' }}>Lainnya</option>
|
||||
<!-- Tambahkan opsi lain sesuai kebutuhan -->
|
||||
</select>
|
||||
@error('jurusan')
|
||||
<div class="invalid-feedback">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="lama_studi">Lama Studi (tahun) <span class="text-danger">*</span></label>
|
||||
<input type="number" name="lama_studi" min="0" max="10" step="1"
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
<!-- Bootstrap CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
|
@ -179,7 +181,7 @@
|
|||
|
||||
<div class="col-md-4">
|
||||
<div class="service-card">
|
||||
<i class="fas fa-eye"></i>
|
||||
<i class="fas fa-puzzle-piece"></i>
|
||||
<h4>Visi</h4>
|
||||
<p>Sebagai perusahaan Kontraktor Umum yang paling inovatif dan kompeten dalam memberikan pelayanan dan solusi atas keinginan
|
||||
dan permasalahan</p>
|
||||
|
@ -199,8 +201,8 @@
|
|||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="service-card">
|
||||
<i class="fas fa-bullseye"></i>
|
||||
<h4>Misi</h4>
|
||||
|
||||
<i class="fas fa-tools"></i> <h4>Misi</h4>
|
||||
<p>Untuk menjadi penyedia jasa konstruksi yang unggul dengan konsisten meningkatkan kualitas produk kami, untuk menyediakan
|
||||
tingkat tertinggi profesionalisme bagi klien melalui inovasi</p>
|
||||
</div>
|
||||
|
@ -218,13 +220,12 @@
|
|||
<!-- Footer -->
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>© {{ date('Y') }} Intecon Bangun Persada.</p>
|
||||
<p>© {{ date('Y') }} Intecon Bangun Persada.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<!-- Font Awesome for icons -->
|
||||
<script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use App\Http\Controllers\AlternatifController;
|
||||
use GuzzleHttp\Middleware;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
@ -7,7 +8,8 @@
|
|||
use App\Http\Controllers\RegisterUserController;
|
||||
use App\Http\Controllers\ProfileController;
|
||||
use App\Http\Controllers\Auth\ForgotPasswordController;
|
||||
|
||||
use App\Http\Controllers\AdminController;
|
||||
use App\Http\Controllers\LamaranUserController;
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|
@ -44,6 +46,14 @@
|
|||
->name('admin.home')
|
||||
->middleware('admin');
|
||||
|
||||
Route::get('/admin/lamaran', [AdminController::class, 'daftarLamaran'])->name('admin.lamaran');
|
||||
Route::post('/admin/lamaran/terima/{id}', [AlternatifController::class, 'terimaLamaran'])->name('admin.lamaran.terima');
|
||||
Route::post('/admin/lamaran/tolak/{id}', [AlternatifController::class, 'tolakLamaran'])->name('admin.lamaran.tolak');
|
||||
|
||||
Route::post('/ajukan-lamaran', [LamaranUserController::class, 'store'])->name('lamaran.store');
|
||||
|
||||
|
||||
|
||||
Route::get('/user/home', [App\Http\Controllers\HomeController::class, 'userHome'])
|
||||
->name('user.home')
|
||||
->middleware('user');
|
||||
|
@ -54,6 +64,15 @@
|
|||
Route::put('/profile/update-photo', [ProfileController::class, 'updatePhoto'])->name('profile.updatePhoto');
|
||||
Route::put('/profile/change-password', [ProfileController::class, 'updatePassword'])->name('profile.updatePassword') ->middleware('auth');
|
||||
|
||||
Route::get('/notifikasi/baca', function () {
|
||||
foreach (auth()->user()->unreadNotifications as $notification) {
|
||||
$notification->markAsRead();
|
||||
}
|
||||
return back()->with('success', 'Semua notifikasi telah ditandai sebagai dibaca.');
|
||||
})->name('notifikasi.baca');
|
||||
|
||||
|
||||
|
||||
Route::resource('kriteria', 'App\Http\Controllers\KriteriaController')->except(['create']);
|
||||
Route::resource('alternatif', 'App\Http\Controllers\AlternatifController')->except(['create']);
|
||||
Route::resource('crips', 'App\Http\Controllers\CripsController')->except(['index','create','show']);
|
||||
|
|
Loading…
Reference in New Issue