FEATURE #1400: add logging for custom fields

This commit is contained in:
Michal Kváček
2016-01-29 00:36:20 +01:00
parent 7054ce53b6
commit 4a8facc046
9 changed files with 213 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Events;
use App\Events\Event;
use App\Models\CustomField;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class CreateNewCustomField extends Event
{
use SerializesModels;
/**
* @var CustomField
*/
public $customField;
/**
* Create a new event instance.
*
* @param CustomField $customField
*/
public function __construct(CustomField $customField)
{
$this->customField = $customField;
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Events;
use App\Events\Event;
use App\Models\CustomField;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class DeleteCustomField extends Event
{
use SerializesModels;
/**
* @var CustomField
*/
public $customField;
/**
* Create a new event instance.
*
* @param CustomField $customField
*/
public function __construct(CustomField $customField)
{
$this->customField = $customField;
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Events;
use App\Events\Event;
use App\Models\CustomField;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class EditCustomField extends Event
{
use SerializesModels;
/**
* @var CustomField
*/
public $customField;
/**
* Create a new event instance.
*
* @param CustomField $customField
*/
public function __construct(CustomField $customField)
{
$this->customField = $customField;
}
}
@@ -4,8 +4,10 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\CustomFieldResources;
use App\Enumerations\CustomFieldTypes;
use App\Events\CreateNewCustomField as CreateNewCustomFieldEvent;
use App\Http\Requests\NewCustomFieldRequest;
use App\Models\CustomField;
use Illuminate\Support\Facades\Event;
class CreateNewCustomField extends Controller
{
@@ -59,6 +61,9 @@ class CreateNewCustomField extends Controller
$customField->save();
// fire event about creating new custom field
Event::fire(new CreateNewCustomFieldEvent($customField));
return redirect()
->route('customfields.new')
->with('success', trans('admin/customFields.successfullyCreated'));
@@ -4,10 +4,13 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\CustomFieldResources;
use App\Enumerations\CustomFieldTypes;
use App\Events\DeleteCustomField;
use App\Events\EditCustomField as EditCustomFieldEvent;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Http\Requests\EditCustomFieldRequest;
use App\Models\CustomField;
use Illuminate\Support\Facades\Event;
class EditCustomField extends Controller
{
@@ -60,6 +63,9 @@ class EditCustomField extends Controller
// save changes into database
$customField->save();
// fire event about editing custom field
Event::fire(new EditCustomFieldEvent($customField));
return redirect()
->route('customfields.edit', ['id' => $id])
->with('success', trans('admin/customFields.successfullyEdited'));
@@ -89,6 +95,9 @@ class EditCustomField extends Controller
// delete item
$field->delete();
// fire event about editing custom field
Event::fire(new DeleteCustomField($field));
// redirect back to overview
return redirect()
->route('customfields.overview')
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace App\Listeners;
use App\Events\CreateNewCustomField;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class LogCreateCustomField extends Logger
{
/**
* Handle the event.
*
* @param CreateNewCustomField $event
* @return void
*/
public function handle(CreateNewCustomField $event)
{
$parameters = [
'id' => $event->customField->id,
'name' => $event->customField->name
];
$this->saveLog($parameters);
}
/**
* Getter for action name. Used only internally
*
* @return mixed
*/
protected function getName()
{
return 'newCustomField';
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Listeners;
use App\Events\DeleteCustomField;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class LogDeleteField extends Logger
{
/**
* Handle the event.
*
* @param DeleteCustomField $event
* @return void
*/
public function handle(DeleteCustomField $event)
{
$parameters = [
'id' => $event->customField->id,
'name' => $event->customField->name
];
$this->saveLog($parameters);
}
/**
* Getter for action name. Used only internally
*
* @return mixed
*/
protected function getName()
{
return 'deleteCustomField';
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Listeners;
use App\Events\EditCustomField;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class LogEditCustomField extends Logger
{
/**
* Handle the event.
*
* @param EditCustomField $event
* @return void
*/
public function handle(EditCustomField $event)
{
$parameters = [
'id' => $event->customField->id,
'name' => $event->customField->name
];
$this->saveLog($parameters);
}
/**
* Getter for action name. Used only internally
*
* @return mixed
*/
protected function getName()
{
return 'editCustomField';
}
}
+9
View File
@@ -19,6 +19,15 @@ class EventServiceProvider extends ServiceProvider
'App\Events\EditUser' => [
'App\Listeners\LogEditUser',
],
'App\Events\CreateNewCustomField' => [
'App\Listeners\LogCreateCustomField',
],
'App\Events\EditCustomField' => [
'App\Listeners\LogEditCustomField',
],
'App\Events\DeleteCustomField' => [
'App\Listeners\LogDeleteField',
],
// internal Laravel events - should work as auth.login and auth.logout, however it doesn't...
'Illuminate\Auth\Events\Login' => [
'App\Listeners\LogLogin'