Skip to content

Commit 2b73319

Browse files
committed
Added HasLogsActivity traits
1 parent 9646318 commit 2b73319

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

src/Models/Menu.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66
use BalajiDharma\LaravelMenu\Exceptions\MenuAlreadyExists;
77
use BalajiDharma\LaravelMenu\Exceptions\MenuNotExists;
88
use BalajiDharma\LaravelMenu\Traits\LaravelCategories;
9+
use BalajiDharma\LaravelMenu\Traits\HasLogsActivity;
910
use Illuminate\Database\Eloquent\Model;
1011
use Illuminate\Database\Eloquent\Relations\HasMany;
1112

1213
class Menu extends Model
1314
{
14-
use LaravelCategories;
15+
use LaravelCategories, HasLogsActivity;
1516

1617
/**
1718
* The attributes that aren't mass assignable.

src/Models/MenuItem.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
use BalajiDharma\LaravelMenu\Traits\LaravelCategories;
66
use BalajiDharma\LaravelMenu\Traits\MenuTree;
77
use BalajiDharma\LaravelMenu\Traits\SpatiePermission;
8+
use BalajiDharma\LaravelMenu\Traits\HasLogsActivity;
89
use Illuminate\Database\Eloquent\Model;
910
use Illuminate\Database\Eloquent\Relations\BelongsTo;
1011

1112
class MenuItem extends Model
1213
{
13-
use LaravelCategories, MenuTree, SpatiePermission;
14+
use LaravelCategories, MenuTree, SpatiePermission, HasLogsActivity;
1415

1516
/**
1617
* The attributes that aren't mass assignable.

src/Traits/HasLogsActivity.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace BalajiDharma\LaravelMenu\Traits;
4+
5+
if (class_exists(\Spatie\Activitylog\ActivitylogServiceProvider::class)) {
6+
trait HasLogsActivity
7+
{
8+
use \Spatie\Activitylog\Traits\LogsActivity;
9+
10+
public $hasLogsActivity = true;
11+
12+
public function getActivitylogOptions(): \Spatie\Activitylog\LogOptions
13+
{
14+
return \Spatie\Activitylog\LogOptions::defaults()
15+
->logAll()
16+
->logExcept(['created_at', 'updated_at'])
17+
->logOnlyDirty()
18+
->dontSubmitEmptyLogs()
19+
->setDescriptionForEvent(fn (string $eventName) => "{$this->getActivitylogModelName()} has been {$eventName}");
20+
}
21+
22+
public function getActivitylogModelName(): string
23+
{
24+
return class_basename($this);
25+
}
26+
}
27+
} else {
28+
trait HasLogsActivity
29+
{
30+
public $hasLogsActivity = false;
31+
}
32+
}

0 commit comments

Comments
 (0)