pertama tama kita buat migrations sama models nya
php artisan make:model ActivityLog -m
Migration
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateActivityLogTable extends Migration
{
public function up()
{
Schema::connection(config('activitylog.database_connection'))->create(config('activitylog.table_name'), function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('log_name')->nullable();
$table->text('description');
$table->nullableMorphs('subject', 'subject');
$table->nullableMorphs('causer', 'causer');
$table->json('properties')->nullable();
$table->timestamps();
$table->index('log_name');
});
}
public function down()
{
Schema::connection(config('activitylog.database_connection'))->dropIfExists(config('activitylog.table_name'));
}
}
Models
<?phpLalu kita buat Controller nya LogActivityController
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class ActivityLog extends Model
{
use HasFactory;
protected $table = 'activity_log';
public function user()
{
return $this->belongsTo(User::class, 'causer_id');
}
}
php artisan make:controller LogActivityController
<?phpKita buat Route
namespace App\Http\Controllers;
use App\Models\ActivityLog;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables;
use Illuminate\Support\Carbon;
class LogActivityController extends Controller
{
public function index(Request $request)
{
if (\Auth::user()->isAbleTo('manage-log-activity')) {
if ($request->ajax()) {
$log = ActivityLog::with('user')->select();
return DataTables::of($log)
->editColumn('created_at', function ($log) {
return Carbon::parse($log->created_at)->diffForHumans();
})
->make(true);
}
return view('log-pengguna.index');
} else {
return redirect()->back()->with('error', __('Permission denied.'));
}
}
}
Route::prefix('log-activity')->group(function () {
Route::controller(LogActivityController::class)->group(function () {
Route::get('/', 'index')->name('log-activity.index');
});
});
Lalu kita buat view nya nama Fordernya log-pengguna dan file nya bernama index.blade.php
@extends('layouts.app')kita buat permisision
@section('page-title')
{{__('Log Pengguna')}}
@endsection
@section('content')
<div class="content-header sty-one">
<h1 class="text-black">Management Activity Log</h1>
<ol class="breadcrumb">
<li><a href="#">Module</a></li>
<li class="sub-bread"><i class="fa fa-angle-right"></i> Log Activity</li>
</ol>
</div>
<!-- Main activity log -->
<div class="content">
<div class="info-box">
<div class="teble-responsive">
<table id="log" class="table table-bordered table-striped">
<thead class="bg-primary text-white">
<tr>
<th style="width: 5%; color: #fff">No</th>
<th style="color: #fff">Nama</th>
<th style="color: #fff">Aktivitas</th>
<th style="color: #fff">Created</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
@endsection
@section('script')
<script type="text/javascript">
$(document).ready(function(){
let i = 0;
$('#log').DataTable({
processing: true,
serverSide: true,
ajax: '{{ route('log-activity.index')}}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'user.name', name: 'user.name' },
{ data: 'description', name: 'description' },
{ data: 'created_at', name: 'created_at' },
],
order: [[ 0, 'desc' ]],
"scrollX": true
});
})
</script>
@endsection
// LogActivity
$moduleLogActivity = Module::create([
'name' => 'Management LogActivity'
]);
$permissionLogActivity = [
[
'name' => 'manage-log-activity',
'display_name' => 'Manage LogActivity',
'description' => 'Bisa Memanage LogActivity'
],
];
foreach ($permissionLogActivity as $key) {
Permission::create([
'name' => $key['name'],
'display_name' => $key['display_name'],
'description' => $key['description'],
'module_id' => $moduleLogActivity->id
]);
}
'manage-log-activity'
@permission('manage-log-activity')
<li class="{{ request()->is('log-activity*') ? 'active' : '' }}">
<a href="{{ route('log-activity.index') }}"> <i class="fa fa-sitemap"></i> Activity Log</a>
</li>
@endpermission
Sedudah gitu kita lakun :php artisan migrate:refresh --seed dan php artisan optimize dan hasil nya seperti ini.
ketika kalian menambah kan lis di yang lain akan tampil di sini.
Comments