diff --git a/app/Events/CreateNewCustomField.php b/app/Events/CreateNewCustomField.php new file mode 100644 index 00000000..b1bbf9bd --- /dev/null +++ b/app/Events/CreateNewCustomField.php @@ -0,0 +1,27 @@ +customField = $customField; + } +} diff --git a/app/Events/DeleteCustomField.php b/app/Events/DeleteCustomField.php new file mode 100644 index 00000000..38d22fa3 --- /dev/null +++ b/app/Events/DeleteCustomField.php @@ -0,0 +1,27 @@ +customField = $customField; + } +} diff --git a/app/Events/EditCustomField.php b/app/Events/EditCustomField.php new file mode 100644 index 00000000..9bb15320 --- /dev/null +++ b/app/Events/EditCustomField.php @@ -0,0 +1,27 @@ +customField = $customField; + } +} diff --git a/app/Http/Controllers/Admin/CreateNewCustomField.php b/app/Http/Controllers/Admin/CreateNewCustomField.php index ed452eea..22abf4eb 100644 --- a/app/Http/Controllers/Admin/CreateNewCustomField.php +++ b/app/Http/Controllers/Admin/CreateNewCustomField.php @@ -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')); diff --git a/app/Http/Controllers/Admin/EditCustomField.php b/app/Http/Controllers/Admin/EditCustomField.php index a24dc1e9..9591125c 100644 --- a/app/Http/Controllers/Admin/EditCustomField.php +++ b/app/Http/Controllers/Admin/EditCustomField.php @@ -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') diff --git a/app/Listeners/LogCreateCustomField.php b/app/Listeners/LogCreateCustomField.php new file mode 100644 index 00000000..5cd7c5f3 --- /dev/null +++ b/app/Listeners/LogCreateCustomField.php @@ -0,0 +1,37 @@ + $event->customField->id, + 'name' => $event->customField->name + ]; + + $this->saveLog($parameters); + } + + /** + * Getter for action name. Used only internally + * + * @return mixed + */ + protected function getName() + { + return 'newCustomField'; + } +} diff --git a/app/Listeners/LogDeleteField.php b/app/Listeners/LogDeleteField.php new file mode 100644 index 00000000..07703ac5 --- /dev/null +++ b/app/Listeners/LogDeleteField.php @@ -0,0 +1,36 @@ + $event->customField->id, + 'name' => $event->customField->name + ]; + + $this->saveLog($parameters); + } + + /** + * Getter for action name. Used only internally + * + * @return mixed + */ + protected function getName() + { + return 'deleteCustomField'; + } +} diff --git a/app/Listeners/LogEditCustomField.php b/app/Listeners/LogEditCustomField.php new file mode 100644 index 00000000..b28b0055 --- /dev/null +++ b/app/Listeners/LogEditCustomField.php @@ -0,0 +1,36 @@ + $event->customField->id, + 'name' => $event->customField->name + ]; + + $this->saveLog($parameters); + } + + /** + * Getter for action name. Used only internally + * + * @return mixed + */ + protected function getName() + { + return 'editCustomField'; + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 4e7b739f..692dca25 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -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'