feat:add final changes

This commit is contained in:
2026-08-22 15:15:01 +03:30
parent c1d93079cf
commit 79c8b71843
5 changed files with 27 additions and 53 deletions
@@ -151,24 +151,24 @@ class AdminController extends Controller
'admin_id' => $admin->id,
],
[
// مدیران
'admin_view' => $request->boolean('admin_view'),
'admin_create' => $request->boolean('admin_create'),
'admin_edit' => $request->boolean('admin_edit'),
'admin_delete' => $request->boolean('admin_delete'),
// کاربران
'user_view' => $request->boolean('user_view'),
'user_edit' => $request->boolean('user_edit'),
'user_delete' => $request->boolean('user_delete'),
// تورها
'tour_view' => $request->boolean('tour_view'),
'tour_create' => $request->boolean('tour_create'),
'tour_edit' => $request->boolean('tour_edit'),
'tour_delete' => $request->boolean('tour_delete'),
// پروازها
'flight_view' => $request->boolean('flight_view'),
'flight_create' => $request->boolean('flight_create'),
'flight_edit' => $request->boolean('flight_edit'),
@@ -119,7 +119,7 @@ class FlightController extends Controller
'airports'
));
}
public function edit(Flight $flight)
{
@@ -164,7 +164,6 @@ class FlightController extends Controller
try {
// 1. ذخیره عکس
$image = $request->file('image');
$imageName = time()
@@ -179,7 +178,6 @@ class FlightController extends Controller
'public'
);
// 2. ایجاد رکورد فایل
$file = File::create([
'name' => $imageName,
'size' => $image->getSize(),
@@ -188,7 +186,6 @@ class FlightController extends Controller
'extension' => $image->extension(),
]);
// 3. ایجاد پرواز با file_id
$flight = Flight::create([
'file_id' => $file->id,
'arrival_aiport_id' => $request->arrival_aiport_id,
@@ -204,6 +201,9 @@ class FlightController extends Controller
'status' => $request->status,
]);
// ثبت لاگ ایجاد پرواز
logActivity($flight, 'created');
DB::commit();
} catch (Exception $exception) {
@@ -232,7 +232,6 @@ class FlightController extends Controller
$oldFile = $flight->file;
// اطلاعات پرواز
$flight->update([
'arrival_aiport_id' => $request->arrival_aiport_id,
'departure_airport_id' => $request->departure_airport_id,
@@ -246,16 +245,16 @@ class FlightController extends Controller
'status' => $request->status,
]);
// ثبت لاگ ویرایش پرواز (باید بلافاصله بعد از update صدا زده شود)
logActivity($flight, 'updated');
// اگر عکس جدید انتخاب شده
if ($request->hasFile('image')) {
$image = $request->file('image');
// ذخیره عکس جدید
$path = $image->store('flights', 'public');
// ایجاد رکورد فایل جدید
$newFile = File::create([
'name' => pathinfo(
$image->hashName(),
@@ -267,15 +266,13 @@ class FlightController extends Controller
'path' => $path,
]);
// اتصال پرواز به فایل جدید
$flight->update([
'file_id' => $newFile->id,
]);
// ثبت لاگ تغییر عکس (به‌صورت جدا، چون update دومیه)
logActivity($flight, 'updated');
// حذف فقط فایل فیزیکی قبلی
// رکورد files قبلی را حذف نمی‌کنیم
// چون FK روی flights.file_id وجود دارد.
if ($oldFile) {
if (Storage::disk('public')->exists($oldFile->path)) {
@@ -324,15 +321,5 @@ class FlightController extends Controller
->with('success', 'پرواز با موفقیت حذف شد.');
}
public function logs(Flight $flight)
{
$logs = ActivityLog::query()
->where('model_type', Flight::class)
->where('model_id', $flight->id)
->with('admin')
->orderByDesc('created_at')
->paginate(20);
return view('admin.flights.logs', compact('flight', 'logs'));
}
}
@@ -40,7 +40,6 @@ class TourController extends Controller
})
// فیلتر وضعیت
->when($request->filled('status'), function (Builder $query) use ($request) {
$query->where(
@@ -69,7 +68,6 @@ class TourController extends Controller
try {
// ذخیره تصویر
$image = $request->file('image');
$path = $image->store('tours', 'public');
@@ -85,8 +83,6 @@ class TourController extends Controller
'path' => $path,
]);
// ایجاد تور
$tour = Tour::create([
'title' => $request->title,
'summary' => $request->input('summary') ?? '',
@@ -102,8 +98,6 @@ class TourController extends Controller
'updated_at' => now(),
]);
// ایجاد تاریخ تور
TourDate::create([
'tour_id' => $tour->id,
'start_date' => $request->start_date,
@@ -170,11 +164,9 @@ class TourController extends Controller
try {
// فایل قبلی
$fileId = $tour->file_id;
// اگر عکس جدید انتخاب شده باشد
if ($request->hasFile('image')) {
$image = $request->file('image');
@@ -195,8 +187,6 @@ class TourController extends Controller
$fileId = $file->id;
}
// ویرایش اطلاعات تور
$tour->update([
'title' => $request->title,
'summary' => $request->input('summary') ?? '',
@@ -209,11 +199,8 @@ class TourController extends Controller
'status' => $request->status,
]);
// تاریخ تور
$tourDate = $tour->tourDates()->first();
if ($tourDate) {
$tourDate->update([
@@ -226,7 +213,6 @@ class TourController extends Controller
} else {
// اگر تور تاریخ نداشت، یک تاریخ جدید ایجاد شود
$tour->tourDates()->create([
'start_date' => $request->start_date,
'end_date' => $request->end_date,
@@ -277,15 +263,5 @@ class TourController extends Controller
->with('success', 'تور با موفقیت حذف شد.');
}
public function logs(Tour $tour)
{
$logs = ActivityLog::query()
->where('model_type', Tour::class)
->where('model_id', $tour->id)
->with('admin')
->orderByDesc('created_at')
->paginate(20);
return view('admin.tours.logs', compact('tour', 'logs'));
}
}
@@ -33,7 +33,6 @@
@csrf
{{-- اطلاعات مدیر --}}
<div class="card custom-card">
<div class="card-header">
@@ -46,7 +45,6 @@
<div class="row gy-3">
{{-- نام --}}
<div class="col-xl-6 col-lg-6">
<label class="form-label">نام</label>
@@ -66,7 +64,7 @@
</div>
{{-- نام خانوادگی --}}
<div class="col-xl-6 col-lg-6">
<label class="form-label">نام خانوادگی</label>
@@ -115,6 +115,19 @@
</a>
</li>
<!-- End::slide -->
<li class="slide ">
<a href="{{route('admin.activity-logs.index')}}"
class="side-menu__item {{ activeAccountSidebar('admin.activity-logs.index') }}">
<svg xmlns="http://www.w3.org/2000/svg" class="side-menu__icon" width="1em"
height="1em" viewBox="0 0 24 24">
<path fill="none" stroke="currentColor" stroke-linecap="round"
stroke-linejoin="round" stroke-width="1.5"
d="M13 2h-2C7.229 2 5.343 2 4.172 3.172S3 6.229 3 10v4c0 3.771 0 5.657 1.172 6.828S7.229 22 11 22h2c3.771 0 5.657 0 6.828-1.172S21 17.771 21 14v-4c0-3.771 0-5.657-1.172-6.828S16.771 2 13 2m8 10H3m12-5H9m6 10H9"
color="currentColor"></path>
</svg>
<span class="side-menu__label">ثبت تغییرات</span>
</a>
</li>
</ul>
<div class="slide-right d-none" id="slide-right">