feat: add admin controllers
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Admin;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$admins = Admin::query()
|
||||
->latest()
|
||||
->paginate(10);
|
||||
|
||||
return view('admin.admins.index', compact('admins'));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\AirportStoreRequest;
|
||||
use App\Models\Airport;
|
||||
|
||||
class AirportController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$airports = Airport::latest()->paginate(15);
|
||||
|
||||
return view('admin.airports.index', compact('airports'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.airports.create');
|
||||
}
|
||||
|
||||
public function store(AirportStoreRequest $request)
|
||||
{
|
||||
Airport::create($request->validated());
|
||||
|
||||
return redirect()
|
||||
->route('admin.airports.index')
|
||||
->with('success', 'فرودگاه با موفقیت ثبت شد.');
|
||||
}
|
||||
|
||||
public function edit(Airport $airport)
|
||||
{
|
||||
return view('admin.airports.edit', compact('airport'));
|
||||
}
|
||||
|
||||
public function update(AirportStoreRequest $request, Airport $airport)
|
||||
{
|
||||
$airport->update($request->validated());
|
||||
|
||||
return redirect()
|
||||
->route('admin.airports.index')
|
||||
->with('success', 'فرودگاه با موفقیت بروزرسانی شد.');
|
||||
}
|
||||
|
||||
public function destroy(Airport $airport)
|
||||
{
|
||||
$airport->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.airports.index')
|
||||
->with('success', 'فرودگاه با موفقیت حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function login()
|
||||
{
|
||||
return view('admin.auth.login');
|
||||
}
|
||||
|
||||
public function loginPost(Request $request)
|
||||
{
|
||||
$credentials = $request->validate([
|
||||
'username' => ['required', 'string'],
|
||||
'password' => ['required', 'string'],
|
||||
]);
|
||||
|
||||
if (Auth::guard('admin')->attempt($credentials, $request->boolean('remember'))) {
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->route('admin.dashboard.index');
|
||||
}
|
||||
|
||||
return back()
|
||||
->withErrors([
|
||||
'username' => 'نام کاربری یا رمز عبور اشتباه است.',
|
||||
])
|
||||
->withInput($request->only('username'));
|
||||
}
|
||||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
Auth::guard('admin')->logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('admin.auth.login.index');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\UpdateCommentRequest;
|
||||
use App\Models\Comment;
|
||||
|
||||
class CommentController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$comments = Comment::with(['user', 'commentable'])
|
||||
->latest()
|
||||
->paginate(15);
|
||||
|
||||
return view('admin.comments.index', compact('comments'));
|
||||
}
|
||||
|
||||
public function show(Comment $comment)
|
||||
{
|
||||
return view('admin.comments.show', compact('comment'));
|
||||
}
|
||||
|
||||
public function edit(Comment $comment)
|
||||
{
|
||||
return view('admin.comments.edit', compact('comment'));
|
||||
}
|
||||
|
||||
public function update(UpdateCommentRequest $request, Comment $comment)
|
||||
{
|
||||
$comment->update($request->validated());
|
||||
|
||||
return redirect()
|
||||
->route('admin.comments.index')
|
||||
->with('success', 'نظر با موفقیت بهروزرسانی شد.');
|
||||
}
|
||||
|
||||
public function destroy(Comment $comment)
|
||||
{
|
||||
$comment->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.comments.index')
|
||||
->with('success', 'نظر با موفقیت حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Airport;
|
||||
use App\Models\Comment;
|
||||
use App\Models\Favorite;
|
||||
use App\Models\Flight;
|
||||
use App\Models\Payment;
|
||||
use App\Models\Tour;
|
||||
use App\Models\User;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$usersCount = User::count();
|
||||
|
||||
$toursCount = Tour::count();
|
||||
|
||||
$flightsCount = Flight::count();
|
||||
|
||||
$airportsCount = Airport::count();
|
||||
|
||||
$commentsCount = Comment::count();
|
||||
|
||||
$favoritesCount = Favorite::count();
|
||||
|
||||
$paymentsCount = Payment::count();
|
||||
|
||||
return view('admin.dashboard', compact(
|
||||
'usersCount',
|
||||
'toursCount',
|
||||
'flightsCount',
|
||||
'airportsCount',
|
||||
'commentsCount',
|
||||
'favoritesCount',
|
||||
'paymentsCount'
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\FavoriteUpdateRequest;
|
||||
use App\Models\Favorite;
|
||||
|
||||
class FavoriteController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$favorites = Favorite::with(['user', 'favoritable'])
|
||||
->latest()
|
||||
->paginate(15);
|
||||
|
||||
return view('admin.favorites.index', compact('favorites'));
|
||||
}
|
||||
|
||||
public function show(Favorite $favorite)
|
||||
{
|
||||
return view('admin.favorites.show', compact('favorite'));
|
||||
}
|
||||
|
||||
public function update(FavoriteUpdateRequest $request, Favorite $favorite)
|
||||
{
|
||||
$favorite->update($request->safe()->only(['user_id']));
|
||||
|
||||
return redirect()
|
||||
->route('admin.favorites.index')
|
||||
->with('success', 'علاقهمندی با موفقیت بهروزرسانی شد.');
|
||||
}
|
||||
|
||||
public function destroy(Favorite $favorite)
|
||||
{
|
||||
$favorite->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.favorites.index')
|
||||
->with('success', 'علاقهمندی با موفقیت حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FlightController extends Controller
|
||||
{
|
||||
/**
|
||||
* نمایش لیست پروازها
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return 'Flights index';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* نمایش فرم ایجاد پرواز
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return 'Flights create';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ذخیره پرواز جدید
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* نمایش جزئیات یک پرواز
|
||||
*/
|
||||
public function show($flight)
|
||||
{
|
||||
return 'Flights show';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* نمایش فرم ویرایش پرواز
|
||||
*/
|
||||
public function edit($flight)
|
||||
{
|
||||
return 'Flights edit';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* بروزرسانی پرواز
|
||||
*/
|
||||
public function update(Request $request, $flight)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* حذف پرواز
|
||||
*/
|
||||
public function destroy($flight)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
//
|
||||
//namespace App\Http\Controllers\Admin;
|
||||
//
|
||||
//use App\Http\Controllers\Controller;
|
||||
//use Illuminate\Http\Request;
|
||||
//
|
||||
//class FlightController extends Controller
|
||||
//{
|
||||
// public function index()
|
||||
// {
|
||||
// return 'Flights index';
|
||||
// }
|
||||
//
|
||||
// public function create()
|
||||
// {
|
||||
// return 'Flights create';
|
||||
// }
|
||||
//
|
||||
// public function store()
|
||||
// {
|
||||
// //
|
||||
// }
|
||||
//
|
||||
// public function show($flight)
|
||||
// {
|
||||
// return 'Flights show';
|
||||
// }
|
||||
//
|
||||
// public function edit($flight)
|
||||
// {
|
||||
// return 'Flights edit';
|
||||
// }
|
||||
//
|
||||
// public function update($flight)
|
||||
// {
|
||||
// //
|
||||
// }
|
||||
//
|
||||
// public function destroy($flight)
|
||||
// {
|
||||
// //
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\UpdatePaymentRequest;
|
||||
use App\Models\Payment;
|
||||
|
||||
class PaymentController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$payments = Payment::with(['user'])
|
||||
->latest()
|
||||
->paginate(15);
|
||||
|
||||
return view('admin.payments.index', compact('payments'));
|
||||
}
|
||||
|
||||
public function show(Payment $payment)
|
||||
{
|
||||
return view('admin.payments.show', compact('payment'));
|
||||
}
|
||||
|
||||
public function edit(Payment $payment)
|
||||
{
|
||||
return view('admin.payments.edit', compact('payment'));
|
||||
}
|
||||
|
||||
public function update(UpdatePaymentRequest $request, Payment $payment)
|
||||
{
|
||||
$payment->update($request->safe()->only(['status']));
|
||||
|
||||
return redirect()
|
||||
->route('admin.payments.index')
|
||||
->with('success', 'وضعیت پرداخت با موفقیت بهروزرسانی شد.');
|
||||
}
|
||||
|
||||
public function destroy(Payment $payment)
|
||||
{
|
||||
$payment->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.payments.index')
|
||||
->with('success', 'پرداخت با موفقیت حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\SettingUpdateRequest;
|
||||
use App\Models\Setting;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class SettingController extends Controller
|
||||
{
|
||||
|
||||
public function index(): View
|
||||
{
|
||||
$settings = Setting::orderBy('id')->get();
|
||||
|
||||
return view('admin.settings.index', compact('settings'));
|
||||
}
|
||||
|
||||
|
||||
public function update(SettingUpdateRequest $request): RedirectResponse
|
||||
{
|
||||
$data = $request->validated();
|
||||
|
||||
// چون جدول key-value است، هر ردیف را جداگانه بهروزرسانی میکنیم
|
||||
foreach ($data as $code => $value) {
|
||||
Setting::where('code', $code)->update(['value' => $value]);
|
||||
}
|
||||
|
||||
return back()
|
||||
->with('success', 'تنظیمات با موفقیت ذخیره شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\TourStoreRequest;
|
||||
use App\Models\Tour;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TourController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$tour = Tour::latest()->paginate(10);
|
||||
return view('admin.tours.index', compact($tour));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.tours.create');
|
||||
}
|
||||
|
||||
public function store(TourStoreRequest $request)
|
||||
{
|
||||
|
||||
Tour::create($request->validated());
|
||||
return view('admin.tours.index')
|
||||
->with('success', 'تور با موفقیت ایجاد شد.');
|
||||
}
|
||||
public function show(Tour $tour)
|
||||
{
|
||||
return view('admin.tours.show', compact('tour'));
|
||||
}
|
||||
public function edit(Tour $tour)
|
||||
{
|
||||
return view('admin.tours.edit', compact('tour'));
|
||||
}
|
||||
public function update(TourStoreRequest $request, Tour $tour)
|
||||
{
|
||||
$tour->update($request->validated());
|
||||
|
||||
return redirect()->route('admin.tours.index')
|
||||
->with('success', 'تور با موفقیت بهروزرسانی شد.');
|
||||
}
|
||||
public function destroy(Tour $tour)
|
||||
{
|
||||
$tour->delete();
|
||||
|
||||
return redirect()->route('admin.tours.index')
|
||||
->with('success', 'تور با موفقیت حذف شد.');
|
||||
}
|
||||
|
||||
public function removeImage(Tour $tour, $image)
|
||||
{
|
||||
// منطق حذف تصویر — بسته به جدول تصاویر
|
||||
return back()->with('success', 'تصویر حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TravelTypeController extends Controller
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\UserStoreRequest;
|
||||
use App\Models\User;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$users = User::latest()->paginate(15);
|
||||
|
||||
return view('admin.users.index', compact('users'));
|
||||
}
|
||||
|
||||
public function show(User $user)
|
||||
{
|
||||
return view('admin.users.show', compact('user'));
|
||||
}
|
||||
|
||||
public function edit(User $user)
|
||||
{
|
||||
return view('admin.users.edit', compact('user'));
|
||||
}
|
||||
|
||||
public function update(UserStoreRequest $request, User $user)
|
||||
{
|
||||
$user->update($request->validated());
|
||||
|
||||
return redirect()
|
||||
->route('admin.users.index')
|
||||
->with('success', 'کاربر با موفقیت بروزرسانی شد.');
|
||||
}
|
||||
|
||||
public function destroy(User $user)
|
||||
{
|
||||
$user->delete();
|
||||
|
||||
return redirect()
|
||||
->route('admin.users.index')
|
||||
->with('success', 'کاربر با موفقیت حذف شد.');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user