fix : complete Activity log in admin side

This commit is contained in:
2026-08-20 14:51:46 -07:00
parent 6ecb9b2704
commit 88503595d7
14 changed files with 316 additions and 223 deletions
@@ -0,0 +1,23 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\ActivityLog;
use Illuminate\Http\Request;
class ActivityLogController extends Controller
{
public function index(Request $request)
{
$logs = ActivityLog::query()
->with('causer')
->when($request->filled('log_name'), function ($query) use ($request) {
$query->where('log_name', $request->input('log_name'));
})
->latest('created_at')
->paginate(20);
return view('admin.activity-logs.index', compact('logs'));
}
}
@@ -169,7 +169,7 @@ class FlightController extends Controller
$fileId = $uploadedFile->id;
}
Flight::create([
$flight = Flight::create([
'title' => $request->input('title'),
'file_id' => $fileId,
'airline_id' => $request->input('airline_id'),
@@ -183,8 +183,12 @@ class FlightController extends Controller
'views' => 0,
'description' => $request->input('description'),
'status' => $request->input('status'),
'created_by' => auth('admin')->id(),
'updated_by' => auth('admin')->id(),
]);
logActivity('flights', $flight->id, 'created');
DB::commit();
} catch (\Exception $exception) {
@@ -227,6 +231,12 @@ class FlightController extends Controller
public function update(Request $request, Flight $flight)
{
$before = $flight->only([
'title', 'airline_id', 'flight_type', 'departure_time',
'departure_airport_id', 'arrival_airport_id', 'price',
'summary', 'capacity', 'description', 'status',
]);
$request->validate([
'title' => [
'required',
@@ -327,6 +337,12 @@ class FlightController extends Controller
'capacity' => $request->input('capacity'),
'description' => $request->input('description'),
'status' => $request->input('status'),
'updated_by' => auth('admin')->id(),
]);
logActivity('flights', $flight->id, 'updated', [
'before' => $before,
'after' => $flight->only(array_keys($before)),
]);
DB::commit();
@@ -357,6 +373,7 @@ class FlightController extends Controller
]);
}
logActivity('flights', $flight->id, 'deleted');
$flight->delete();
return redirect()->route('admin.flights.index')->withErrors([
+27 -28
View File
@@ -107,28 +107,24 @@ class TourController extends Controller
$fileId = $uploadedFile->id;
}
Tour::create([
$tour = Tour::create([
'title' => $request->input('title'),
'summary' => $request->input('summary'),
'description' => $request->input('description'),
'origin' => $request->input('origin'),
'destination' => $request->input('destination'),
'file_id' => $fileId,
'duration' => $request->input('duration'),
'departure_time' => $request->input('departure_time'),
'price' => $request->input('price'),
'status' => $request->input('status'),
'created_by' => auth('admin')->id(),
'updated_by' => auth('admin')->id(),
]);
logActivity('tours', $tour->id, 'created');
DB::commit();
} catch (\Exception $exception) {
@@ -160,9 +156,16 @@ class TourController extends Controller
}
public function update(tourUpdateRequest $request, Tour $tour) {
public function update(tourUpdateRequest $request, Tour $tour)
{
try {
$before = $tour->only([
'title', 'summary', 'description', 'origin',
'destination', 'file_id', 'duration', 'price',
'departure_time', 'status',
]);
DB::beginTransaction();
$fileId = $tour->file_id;
@@ -193,26 +196,21 @@ class TourController extends Controller
$tour->update([
'title' => $request->input('title'),
'summary' => $request->input('summary'),
'description' => $request->input('description'),
'origin' => $request->input('origin'),
'destination' => $request->input('destination'),
'file_id' => $fileId,
'duration' => $request->input('duration'),
'views' => 0,
'departure_time' => $request->input('departure_time'),
'price' => $request->input('price'),
'status' => $request->input('status'),
'updated_by' => auth('admin')->id(),
]);
logActivity('tours', $tour->id, 'updated', [
'before' => $before,
'after' => $tour->only(array_keys($before)),
]);
DB::commit();
@@ -237,15 +235,16 @@ class TourController extends Controller
]);
}
public function destroy(Tour $tour)
{
if ($tour->bookings()->exists()) {
return back()->withErrors(['error' => 'این پرواز دارای رزرو است و قابل حذف نیست.']);
}
logActivity('flights', $tour->id, 'deleted');
$tour->delete();
return redirect()
->route('admin.tours.index')
->withErrors([
'success' => 'تور با موفقیت حذف شد'
]);
return redirect()->route('admin.flights.index')->withErrors(['success'=> 'پرواز با موفقیت حذف شد']);
}
}