diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index fc26961..65ea77e 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -51,15 +51,25 @@ public function storeApp(Request $request) 'name' => 'required|string|max:255', 'url' => 'required|url|max:255', 'icon_svg' => 'nullable|string', + 'logo' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp|max:2048', 'color' => 'nullable|string|max:20', 'desc' => 'nullable|string', 'tag' => 'nullable|string|max:255', ]); + $logoPath = null; + if ($request->hasFile('logo')) { + $file = $request->file('logo'); + $filename = time() . '_' . uniqid() . '.' . $file->getClientOriginalExtension(); + $file->move(public_path('uploads/logos'), $filename); + $logoPath = 'uploads/logos/' . $filename; + } + App::create([ 'name' => $request->name, 'url' => $request->url, 'icon_svg' => $request->icon_svg, + 'logo' => $logoPath, 'color' => $request->color ?? '#4f46e5', 'desc' => $request->desc, 'tag' => $request->tag ?? 'General', @@ -74,6 +84,9 @@ public function storeApp(Request $request) public function destroyApp($id) { $app = App::findOrFail($id); + if ($app->logo && file_exists(public_path($app->logo))) { + @unlink(public_path($app->logo)); + } $app->delete(); return redirect()->route('admin.dashboard')->with('success', 'Service app deleted successfully.'); diff --git a/app/Models/App.php b/app/Models/App.php index 2b85d8e..6c71fbe 100644 --- a/app/Models/App.php +++ b/app/Models/App.php @@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Attributes\Fillable; -#[Fillable(['name', 'url', 'icon_svg', 'color', 'desc', 'tag'])] +#[Fillable(['name', 'url', 'icon_svg', 'logo', 'color', 'desc', 'tag'])] class App extends Model { use HasFactory; diff --git a/database/migrations/2026_07_10_124031_add_logo_to_apps_table.php b/database/migrations/2026_07_10_124031_add_logo_to_apps_table.php new file mode 100644 index 0000000..055d3da --- /dev/null +++ b/database/migrations/2026_07_10_124031_add_logo_to_apps_table.php @@ -0,0 +1,28 @@ +string('logo')->nullable()->after('icon_svg'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('apps', function (Blueprint $table) { + $table->dropColumn('logo'); + }); + } +}; diff --git a/public/Screenshot_8.png b/public/Screenshot_8.png new file mode 100644 index 0000000..bfef390 Binary files /dev/null and b/public/Screenshot_8.png differ diff --git a/public/images/default_logo.png b/public/images/default_logo.png new file mode 100644 index 0000000..3983e2b Binary files /dev/null and b/public/images/default_logo.png differ diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index f09f86c..dc9087a 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -3,7 +3,7 @@ - Admin Panel - SingleLogin Portal + Control Panel @@ -482,10 +482,10 @@