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\SoftDeletes;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity;
/**
@ -30,6 +31,20 @@ class Quote extends Model
->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
{
return LogOptions::defaults()

View File

@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\Facades\LogBatch;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity;
/**
@ -37,6 +38,20 @@ class RequestedQuote extends Model
$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
{
return LogOptions::defaults()

View File

@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Models\Activity;
use Spatie\Activitylog\Traits\LogsActivity;
/**
@ -67,6 +68,20 @@ class User extends Authenticatable
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
{
return LogOptions::defaults()

View File

@ -71,14 +71,7 @@ new #[Layout('layouts.app')] class extends Component
{{ \Illuminate\Support\Str::headline($log->event) }}
</td>
<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 }}
@endswitch
</td>
<td class="relative py-4 pr-3 text-sm sm:pl-6 border-t text-nexi-black dark:text-gray-200">
{{ $log->getExtraProperty('ip') }}

View File

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

View File

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

View File

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