diff --git a/app/Http/Controllers/AdminDashboardController.php b/app/Http/Controllers/AdminDashboardController.php index b2c3c10..f66fa86 100644 --- a/app/Http/Controllers/AdminDashboardController.php +++ b/app/Http/Controllers/AdminDashboardController.php @@ -113,32 +113,34 @@ class AdminDashboardController extends Controller // Send User to Portal Log public function sendToPortalLog($userId) { - try { - $user = User::findOrFail($userId); + try + { + $user = User::findOrFail($userId); - // User දැනටමත් Portal Log එකේ සිටීදැයි පරීක්ෂා කිරීම - $exists = StudentPortalLog::where('user_id', $user->id)->exists(); - if ($exists) { - return redirect()->back()->with('error', 'This user is already in Portal Logs!'); - } + + $exists = StudentPortalLog::where('user_id', $user->id)->exists(); + if ($exists) { + return redirect()->back()->with('error', 'This user is already in Portal Logs!'); + } - // Student Portal Log එකට පමණක් Data Insert කිරීම - StudentPortalLog::create([ - 'user_id' => $user->id, - 'first_name' => $user->first_name ?? '', - 'last_name' => $user->last_name ?? '', - 'email' => $user->email, - 'phone' => $user->phone ?? null, - 'pin' => null, - ]); + + StudentPortalLog::create([ + 'user_id' => $user->id, + 'first_name' => $user->first_name ?? '', + 'last_name' => $user->last_name ?? '', + 'email' => $user->email, + 'phone' => $user->phone ?? null, + 'pin' => null, + ]); - return redirect()->back()->with('success', 'User successfully added to Portal Logs!'); - - } catch (Exception $e) { - \Log::error('Send to Portal Log Error: ' . $e->getMessage()); + return redirect()->back()->with('success', 'User successfully added to Portal Logs!'); + + } + catch (Exception $e) { + \Log::error('Send to Portal Log Error: ' . $e->getMessage()); - return redirect()->back()->with('error', 'Failed to add user to Portal Log: ' . $e->getMessage()); - } + return redirect()->back()->with('error', 'Failed to add user to Portal Log: ' . $e->getMessage()); + } } // Update or Delete User Portal PIN @@ -166,7 +168,7 @@ class AdminDashboardController extends Controller } // ========================================================================= - // STUDENT PORTAL LOG DELETION ONLY (Main User Account එක ඉතිරි වේ) + // STUDENT PORTAL LOG DELETION ONLY // ========================================================================= @@ -175,7 +177,7 @@ public function destroyPortalLog($id) { try { $portalLog = StudentPortalLog::findOrFail($id); - $portalLog->delete(); // student_portal_logs Table එකෙන් පමණක් Delete වේ + $portalLog->delete(); return redirect()->back()->with('success', 'Student Portal access record deleted successfully!'); } catch (Exception $e) { diff --git a/app/Http/Controllers/AdminResultsController.php b/app/Http/Controllers/AdminResultsController.php index 7177c90..59cb19e 100644 --- a/app/Http/Controllers/AdminResultsController.php +++ b/app/Http/Controllers/AdminResultsController.php @@ -9,54 +9,54 @@ use Maatwebsite\Excel\Facades\Excel; class AdminResultsController extends Controller { + public function index(Request $request) - { - $query = Result::query(); + { + $query = Result::query(); - // 1. Student Log ID, Module Code, හෝ Module Name මගින් Search කිරීම - if ($request->filled('search')) { - $search = $request->search; - $query->where(function ($q) use ($search) { - $q->where('student_log_id', 'like', "%{$search}%") - ->orWhere('module_code', 'like', "%{$search}%") - ->orWhere('module_name', 'like', "%{$search}%"); - }); - } + + if ($request->filled('search')) { + $search = $request->search; + $query->where(function ($q) use ($search) { + $q->where('student_log_id', 'like', "%{$search}%") + ->orWhere('module_code', 'like', "%{$search}%") + ->orWhere('module_name', 'like', "%{$search}%"); + }); + } - // 2. Academic Year මගින් Filter කිරීම - if ($request->filled('academic_year')) { - $query->where('academic_year', 'like', "%{$request->academic_year}%"); - } + + if ($request->filled('academic_year')) { + $query->where('academic_year', 'like', "%{$request->academic_year}%"); + } - // 3. Pass/Fail Status මගින් Filter කිරීම - if ($request->filled('status')) { - $query->where('status', $request->status); - } + + if ($request->filled('status')) { + $query->where('status', $request->status); + } - // Filter වූ Data Pagination (පිටුවකට 15 බැගින්) සමග ලබා ගැනීම - // (Pagination අවශ්‍ය නැතිනම් ->paginate(15) වෙනුවට ->get() භාවිතා කරන්න) - $results = $query->orderBy('id', 'desc')->paginate(15)->withQueryString(); + + $results = $query->orderBy('id', 'desc')->paginate(15)->withQueryString(); - return view('admin.adminresults', compact('results')); - } + return view('admin.adminresults', compact('results')); + } public function store(Request $request) - { - $validated = $request->validate([ - 'student_log_id' => 'required|string|max:255', - 'module_code' => 'required|string|max:255', - 'module_name' => 'required|string|max:255', - 'academic_year' => 'required|string|max:255', - 'semester' => 'required|string|max:255', - 'marks' => 'required|numeric|min:0|max:100', - 'grade' => 'required|string|max:10', - 'status' => 'required|in:Pass,Fail', - ]); + { + $validated = $request->validate([ + 'student_log_id' => 'required|string|max:255', + 'module_code' => 'required|string|max:255', + 'module_name' => 'required|string|max:255', + 'academic_year' => 'required|string|max:255', + 'semester' => 'required|string|max:255', + 'marks' => 'required|numeric|min:0|max:100', + 'grade' => 'required|string|max:10', + 'status' => 'required|in:Pass,Fail', + ]); - Result::create($validated); + Result::create($validated); - return redirect()->route('admin.results')->with('success', 'Exam result added successfully.'); - } + return redirect()->route('admin.results')->with('success', 'Exam result added successfully.'); + } public function update(Request $request, $id) { @@ -91,10 +91,10 @@ class AdminResultsController extends Controller 'excel_file' => 'required|mimes:xlsx,xls,csv|max:2048' ]); - // Excel file එක Import කිරීම + Excel::import(new ResultsImport, $request->file('excel_file')); - // Upload වූ පසු කෙලින්ම Admin Results Table එකට Redirect කිරීම + return redirect()->route('admin.results')->with('success', 'Excel file imported successfully!'); } } \ No newline at end of file diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 15f4b08..15e9162 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -62,7 +62,7 @@ class AuthController extends Controller 'password' => Hash::make($request->password), ]); - // Email එක යැවීම + try { Mail::to($user->email)->send(new WelcomeMail($user)); } catch (\Exception $e) { diff --git a/app/Http/Controllers/adminmycoursesController.php b/app/Http/Controllers/adminmycoursesController.php index 4ef0694..adf39f0 100644 --- a/app/Http/Controllers/adminmycoursesController.php +++ b/app/Http/Controllers/adminmycoursesController.php @@ -69,47 +69,50 @@ class adminmycoursesController extends Controller } public function update(Request $request, $id) - { - $request->validate([ - 'title' => 'required|string|max:255', - 'course_code' => 'required|string|max:50', - 'image' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:2048', - 'duration' => 'required|string', - 'level' => 'required|string', - 'status' => 'required|string', - ]); +{ + $request->validate([ + 'title' => 'required|string|max:255', + 'course_code' => 'required|string|max:50', + 'image' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:2048', + 'duration' => 'required|string', + 'level' => 'required|string', + 'status' => 'required|string', + ]); - $course = DB::table('courses')->where('id', $id)->first(); + $course = DB::table('courses')->where('id', $id)->first(); - if (!$course) { - return redirect()->back()->with('error', 'Course not found!'); - } - - $imagePath = $course->image; - if ($request->hasFile('image')) { - if ($course->image && Storage::disk('public')->exists($course->image)) { - Storage::disk('public')->delete($course->image); - } - $imagePath = $request->file('image')->store('courses', 'public'); - } - - DB::table('courses')->where('id', $id)->update([ - 'title' => $request->title, - 'course_code' => $request->course_code, - 'image' => $imagePath, - 'duration' => $request->duration, - 'level' => $request->level, - 'author' => $request->author, - 'desc' => $request->desc, - 'badge' => $request->badge, - 'trending' => $request->has('trending') ? 1 : 0, - 'status' => $request->status, - 'updated_at' => now(), - ]); - - return redirect()->back()->with('success', 'Course updated successfully!'); + if (!$course) { + return redirect()->back()->with('error', 'Course not found!'); } + $imagePath = $course->image; + if ($request->hasFile('image')) { + if ($course->image && Storage::disk('public')->exists($course->image)) { + Storage::disk('public')->delete($course->image); + } + $imagePath = $request->file('image')->store('courses', 'public'); + } + + DB::table('courses')->where('id', $id)->update([ + 'title' => $request->title, + 'course_code' => $request->course_code, + 'image' => $imagePath, + 'duration' => $request->duration, + 'level' => $request->level, + + 'author' => $request->author ?? $course->author ?? 'Admin', + + 'desc' => $request->desc ?? $request->description ?? $course->desc, + 'badge' => $request->badge ?? $course->badge, + 'trending' => $request->has('trending') ? 1 : 0, + 'status' => $request->status, + 'updated_at' => now(), + ]); + + return redirect()->back()->with('success', 'Course updated successfully!'); +} + + public function destroy($id) { $course = DB::table('courses')->where('id', $id)->first(); diff --git a/resources/views/admin/adminmycourses.blade.php b/resources/views/admin/adminmycourses.blade.php index 1a6e1a9..07faf60 100644 --- a/resources/views/admin/adminmycourses.blade.php +++ b/resources/views/admin/adminmycourses.blade.php @@ -5,7 +5,7 @@ Course Management - Admin Portal - + @@ -17,9 +17,9 @@ --theme-red: #822424; --theme-red-hover: #df2c3e; --theme-yellow: #FFEA85; - --theme-bg: #F6F6F6; --sidebar-width: 260px; --text-dark: #333333; + --theme-bg: #F6F6F6; } * { @@ -197,16 +197,16 @@ @@ -232,6 +232,7 @@

Course Management

+ @@ -292,36 +293,104 @@ @endif - - - - - - - -
- @csrf - @method('DELETE') - -
+ + + + + +
+ @csrf + @method('DELETE') + +
+
+ + + - - - - - - - @@ -563,71 +556,60 @@
- +