Add bokshorn-it/filament-activity-timeline package for enhanced audit logging functionality. Update README to reflect new key package and improve localization for audit-related terms. Remove deprecated ActivityLogResource and related pages, integrating activity timeline features into existing resources. Update models to implement ProvidesActivityTitle for better activity tracking.

This commit is contained in:
Mekan1206
2026-08-02 22:37:59 +05:00
parent 0237c2b9ef
commit 3504e39646
46 changed files with 472 additions and 314 deletions

View File

@@ -6,12 +6,13 @@ namespace App\Models;
use App\Enums\BonusType;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Bonus extends Model
class Bonus extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models\Concerns;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
@@ -18,4 +19,29 @@ trait LogsHrActivity
->logOnlyDirty()
->dontSubmitEmptyLogs();
}
public function activityTitle(): ?string
{
foreach (['full_name', 'name', 'title', 'gift_name', 'employee_number'] as $attribute) {
$value = $this->getAttribute($attribute);
if (filled($value)) {
return (string) $value;
}
}
if ($this->getAttribute('employee_id')) {
$employeeName = $this->relationLoaded('employee')
? $this->employee?->full_name
: $this->employee()->value('full_name');
if (filled($employeeName)) {
return (string) $employeeName;
}
}
$key = $this->getKey();
return $key !== null ? '#'.$key : null;
}
}

View File

@@ -5,13 +5,14 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
class Department extends Model
class Department extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -6,12 +6,13 @@ namespace App\Models;
use App\Enums\DisciplinarySeverity;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class DisciplinaryReport extends Model
class DisciplinaryReport extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -7,13 +7,14 @@ namespace App\Models;
use App\Enums\EmploymentStatus;
use App\Enums\Gender;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
class Employee extends Model
class Employee extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -6,12 +6,13 @@ namespace App\Models;
use App\Enums\DocumentType;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class EmployeeDocument extends Model
class EmployeeDocument extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -5,12 +5,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Explanation extends Model
class Explanation extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -5,12 +5,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Gift extends Model
class Gift extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -5,12 +5,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
class Position extends Model
class Position extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -5,13 +5,14 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
class Shift extends Model
class Shift extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -5,12 +5,13 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class SickLeave extends Model
class SickLeave extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -6,12 +6,13 @@ namespace App\Models;
use App\Enums\ApprovalStatus;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class UnpaidLeave extends Model
class UnpaidLeave extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;

View File

@@ -7,12 +7,13 @@ namespace App\Models;
use App\Enums\ApprovalStatus;
use App\Enums\VacationType;
use App\Models\Concerns\LogsHrActivity;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class Vacation extends Model
class Vacation extends Model implements ProvidesActivityTitle
{
use HasFactory;
use LogsHrActivity;