feat: better automatic descriptions

This commit is contained in:
Nicholas Ciechanowski 2023-10-16 18:22:18 +11:00
parent aace075321
commit 2adff37550
7 changed files with 49 additions and 11 deletions

View File

@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\LogOptions; use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Activitylog\Traits\LogsActivity;
/** /**
@ -30,6 +31,20 @@ class Quote extends Model
->log("Requested quote: $this->quote"); ->log("Requested quote: $this->quote");
} }
public function tapActivity(Activity $activity, string $eventName)
{
switch ($eventName) {
case 'created':
$activity->description = "Quote created: {$this->quote}";
return;
case 'deleted':
$activity->description = "Quote deleted: {$this->quote}";
return;
default;
return;
}
}
public function getActivityLogOptions(): LogOptions public function getActivityLogOptions(): LogOptions
{ {
return LogOptions::defaults() return LogOptions::defaults()

View File

@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\Facades\LogBatch; use Spatie\Activitylog\Facades\LogBatch;
use Spatie\Activitylog\LogOptions; use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Activitylog\Traits\LogsActivity;
/** /**
@ -37,6 +38,20 @@ class RequestedQuote extends Model
$this->delete(); $this->delete();
} }
public function tapActivity(Activity $activity, string $eventName)
{
switch ($eventName) {
case 'created':
$activity->description = "Quote created: {$this->quote}";
return;
case 'deleted':
$activity->description = "Quote deleted: {$this->quote}";
return;
default;
return;
}
}
public function getActivityLogOptions(): LogOptions public function getActivityLogOptions(): LogOptions
{ {
return LogOptions::defaults() return LogOptions::defaults()

View File

@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Spatie\Activitylog\LogOptions; use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Activitylog\Traits\LogsActivity;
/** /**
@ -67,6 +68,20 @@ class User extends Authenticatable
return "$this->firstname $this->lastname"; return "$this->firstname $this->lastname";
} }
public function tapActivity(Activity $activity, string $eventName)
{
switch ($eventName) {
case 'created':
$activity->description = "User created: {$this->full_name}";
return;
case 'deleted':
$activity->description = "User deleted: {$this->full_name}";
return;
default;
return;
}
}
public function getActivityLogOptions(): LogOptions public function getActivityLogOptions(): LogOptions
{ {
return LogOptions::defaults() return LogOptions::defaults()

View File

@ -71,14 +71,7 @@ new #[Layout('layouts.app')] class extends Component
{{ \Illuminate\Support\Str::headline($log->event) }} {{ \Illuminate\Support\Str::headline($log->event) }}
</td> </td>
<td class="relative py-4 pr-3 text-sm sm:pl-6 border-t text-nexi-black dark:text-gray-200"> <td class="relative py-4 pr-3 text-sm sm:pl-6 border-t text-nexi-black dark:text-gray-200">
@switch($log->subject_type)
@case(Quote::class)
@case(RequestedQuote::class)
{{ $log?->subject?->quote }}
@break
@default
{{ $log->description }} {{ $log->description }}
@endswitch
</td> </td>
<td class="relative py-4 pr-3 text-sm sm:pl-6 border-t text-nexi-black dark:text-gray-200"> <td class="relative py-4 pr-3 text-sm sm:pl-6 border-t text-nexi-black dark:text-gray-200">
{{ $log->getExtraProperty('ip') }} {{ $log->getExtraProperty('ip') }}

View File

@ -44,7 +44,7 @@ new #[Layout('layouts.guest')] class extends Component
activity() activity()
->performedOn(auth()->user()) ->performedOn(auth()->user())
->event('access') ->event('access')
->log('login'); ->log('User logged in');
$this->redirect( $this->redirect(
session('url.intended', RouteServiceProvider::HOME), session('url.intended', RouteServiceProvider::HOME),

View File

@ -63,7 +63,7 @@ new #[Layout('layouts.guest')] class extends Component
activity() activity()
->event('updated') ->event('updated')
->log('password reset'); ->log('Password reset');
session()->flash('status', __($status)); session()->flash('status', __($status));

View File

@ -35,7 +35,7 @@ new class extends Component
activity() activity()
->event('updated') ->event('updated')
->log('password updated'); ->log('Password updated');
$this->reset('current_password', 'password', 'password_confirmation'); $this->reset('current_password', 'password', 'password_confirmation');