diff --git a/app/Http/Controllers/FeedbackController.php b/app/Http/Controllers/FeedbackController.php index 80a517d..3dfbe89 100644 --- a/app/Http/Controllers/FeedbackController.php +++ b/app/Http/Controllers/FeedbackController.php @@ -3,40 +3,75 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; -use App\Models\Feedback; use Illuminate\Support\Facades\DB; class FeedbackController extends Controller { - // public function feedback(Request $request) - // { - - // $request->validate([ - // 'feedback_type' => 'required', - // 'subject' => 'required|string|max:255', - // 'feedback_text' => 'required|string', - // ]); + + public function index(Request $request) + { + $studentLogId = session('student_log_id') ?? session('student_id'); + + if (!$studentLogId) { + return redirect('/')->with('error', 'Please login first!'); + } + + $feedbacks = DB::table('feedback') + ->where('student_id', $studentLogId) + ->orderBy('created_at', 'desc') + ->get(); + + return view('Feedback&Complain', compact('feedbacks')); + } + + + public function store(Request $request) + { + $studentLogId = session('student_log_id') ?? session('student_id'); + + if (!$studentLogId) { + return redirect('/')->with('error', 'Please login first to submit!'); + } - // $studentLogId = session('student_portal_log_id'); + $isComplaint = $request->has('is_complaint') && $request->is_complaint == "1"; + + if ($isComplaint) { + + $request->validate([ + 'complaint_category' => 'required', + 'complaint_title' => 'required|string|max:255', + 'complaint_details' => 'required|string', + ]); + + $type = 'Complaint - ' . $request->complaint_category; + $subject = $request->complaint_title; + $text = $request->complaint_details; + } else { + + $request->validate([ + 'feedback_type' => 'required', + 'subject' => 'required|string|max:255', + 'feedback_text' => 'required|string', + ]); + + $type = 'Feedback - ' . $request->feedback_type; + $subject = $request->subject; + $text = $request->feedback_text; + } - // if (!$studentLogId) { - // return redirect('/')->with('error', 'Please login first to submit feedback!'); - // } + DB::table('feedback')->insert([ + 'student_id' => $studentLogId, + 'feedback_type' => $type, + 'subject' => $subject, + 'feedback_text' => $text, + 'status' => 'Pending', + 'created_at' => now(), + 'updated_at' => now(), + ]); - - // DB::table('feedbacks')->insert([ - // 'student_id' => $studentLogId, - // 'feedback_type' => $request->feedback_type, - // 'subject' => $request->subject, - // 'feedback_text' => $request->feedback_text, - // 'status' => 'Pending', - // 'created_at' => now(), - // 'updated_at' => now(), - // ]); - - - // return redirect()->back()->with('success', 'Feedback submitted successfully!'); - // } + return redirect()->back()->with('success', ($isComplaint ? 'Complaint' : 'Feedback') . ' submitted successfully!'); + } + } \ No newline at end of file diff --git a/app/Http/Controllers/StudentPortalController.php b/app/Http/Controllers/StudentPortalController.php index c58d1e6..34efbe4 100644 --- a/app/Http/Controllers/StudentPortalController.php +++ b/app/Http/Controllers/StudentPortalController.php @@ -4,156 +4,90 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; -use App\Models\StudentPortalLog ; use Illuminate\Support\Facades\Hash; - - class StudentPortalController extends Controller { -public function studentlogin(Request $request) -{ - $request->validate([ - 'username' => 'required', - 'password' => 'required', - 'pin' => 'required|numeric', - ]); + + public function studentlogin(Request $request) + { + + $request->validate([ + 'username' => 'required|string', + 'password' => 'required|string', + 'pin' => 'required|numeric', + ]); - $student = DB::table('student_portal_logs') - ->where('email', $request->username) + + $student = DB::table('student_portal_logs') + ->where('email', $request->username) + ->orWhere('studentid', $request->username) + ->first(); + + + if ($student && Hash::check($request->password, $student->password) && $student->pin == $request->pin) { + + if ($student->status !== 'active' && $student->status !== '' && !is_null($student->status)) { + return redirect()->back()->with('error', 'Your account is inactive!'); + } + + + $request->session()->put('student_id', $student->studentid); + $request->session()->put('student_log_id', $student->id ?? null); + + $name = trim(($student->first_name ?? '') . ' ' . ($student->last_name ?? '')); + $request->session()->put('student_name', $name ?: ($student->email ?? $student->studentid)); + + return redirect()->route('student.portal')->with('success', 'Logged in successfully!'); + } + + return redirect()->back()->with('error', 'Invalid Email/Username, Password, or PIN!'); + } + + public function showProfile(Request $request) + { + + $log_id = $request->session()->get('student_log_id'); + $student_code = $request->session()->get('student_id'); + + if (!$log_id && !$student_code) { + return redirect('/')->with('error', 'Please login first!'); + } + + + $student = DB::table('student_details') + ->where(function ($query) use ($log_id, $student_code) { + if ($log_id) { + $query->where('student_portal_log_id', $log_id); + } + if ($student_code) { + + if ($log_id) { + $query->orWhere('student_id', $student_code); + } else { + $query->where('student_id', $student_code); + } + } + }) ->first(); - if ($student && Hash::check($request->password, $student->password) && $student->pin == $request->pin) { - if ($student->status !== 'active' && $student->status !== '') { - return redirect('/')->with('error', 'Your account is inactive!'); + + if (!$student) { + return redirect()->route('student.portal')->with('error', 'Student details not found in database!'); + } + + + return view('StudentProfile', compact('student')); } - $request->session()->put('student_id', $student->studentid); - return redirect()->route('student.portal')->with('success', 'Logged in successfully!'); - } - return redirect('/')->with('error', 'Invalid Email, Password, or PIN!'); -} + public function studentlogout(Request $request) + { + $request->session()->forget(['student_id', 'student_log_id', 'student_name']); + $request->session()->invalidate(); + $request->session()->regenerateToken(); -public function showProfile(Request $request) -{ - - $log_id = $request->session()->get('student_log_id'); - $student_code = $request->session()->get('student_id'); + return response()->json(['success' => true]); + } - if (!$log_id && !$student_code) { - return redirect('/')->with('error', 'Please login first!'); - } - - - $student = DB::table('student_details') - ->where(function ($query) use ($log_id, $student_code) { - if ($log_id) { - $query->where('student_portal_log_id', $log_id); - } - if ($student_code) { - $query->orWhere('student_id', $student_code); - } - }) - ->first(); - - - if (!$student) { - return redirect()->back()->with('error', 'Student details not found in database!'); - } - - return view('StudentProfile', compact('student')); -} - - - -// public function showProfile(Request $request) -// { - -// $log_id = $request->session()->get('student_log_id'); -// $student_code = $request->session()->get('student_id'); - -// if (!$log_id && !$student_code) { -// return redirect('/')->with('error', 'Please login first!'); -// } - - -// $student = DB::table('student_details') -// ->where('student_portal_log_id', $log_id) -// ->orWhere('student_id', $student_code) -// ->first(); - - -// if (!$student) { -// return redirect()->back()->with('error', 'Student details not found in database!'); -// } - -// return view('StudentProfile', compact('student')); -// } - - -// public function showProfile(Request $request) -// { - -// $log_id = $request->session()->get('student_log_id'); -// $student_code = $request->session()->get('student_id'); - -// if (!$log_id && !$student_code) { -// return redirect('/')->with('error', 'Please login first!'); -// } - - -// $student = DB::table('student_details') -// ->where('student_portal_log_id', $log_id) -// ->orWhere('student_id', $student_code) -// ->first(); - - -// if (!$student) { -// return redirect()->back()->with('error', 'Student details not found in database!'); -// } - -// return view('StudentProfile', compact('student')); -// } - - - -// public function showProfile(Request $request) -// { - -// $log_id = $request->session()->get('student_id'); - -// if (!$log_id) { -// return redirect('/')->with('error', 'Please login first!'); -// } - - -// $student = DB::table('student_details') -// ->where('student_id', $log_id) -// ->orWhere('student_portal_log_id', $log_id) -// ->first(); - - -// if (!$student) { -// $student = (object)[ -// 'image' => '', -// 'full_name' => 'Data Not Found (Check DB)', -// 'student_id' => $log_id, -// 'nic_passport' => 'N/A', -// 'date_of_birth' => '2000-01-01', -// 'gender' => 'N/A', -// 'email' => 'N/A', -// 'phone' => 'N/A', -// 'qualification' => 'N/A', -// 'institute' => 'N/A', -// 'year_completed' => 'N/A', -// 'course_name' => 'N/A', -// 'duration' => 'N/A', -// 'current_semester' => 'N/A', -// 'trainer_name' => 'N/A' -// ]; -// } - -// return view('StudentProfile', compact('student')); -// } -} +} \ No newline at end of file diff --git a/app/Http/Controllers/studentportalnavController.php b/app/Http/Controllers/studentportalnavController.php index 2b855fd..3fd33de 100644 --- a/app/Http/Controllers/studentportalnavController.php +++ b/app/Http/Controllers/studentportalnavController.php @@ -11,11 +11,7 @@ class studentportalnavController extends Controller { $request->session()->forget(['student_log_id', 'student_id']); - - Auth::logout(); - - $request->session()->invalidate(); $request->session()->regenerateToken(); diff --git a/resources/views/Feedback&Complain.blade.php b/resources/views/Feedback&Complain.blade.php index 7e3dc02..b1d32ac 100644 --- a/resources/views/Feedback&Complain.blade.php +++ b/resources/views/Feedback&Complain.blade.php @@ -6,21 +6,19 @@ - -
Share your suggestions, feedback, or complaints with the Automobile Engineering Academy management team.