diff --git a/app/Events/NoteAdded.php b/app/Events/NoteAdded.php new file mode 100644 index 0000000000..de5f91ce78 --- /dev/null +++ b/app/Events/NoteAdded.php @@ -0,0 +1,28 @@ +itemNoteAddedOn = $itemNoteAddedOn; + $this->note = $note; + $this->noteAddedBy = $noteAddedBy; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Api/NotesController.php b/app/Http/Controllers/Api/NotesController.php new file mode 100644 index 0000000000..37527fb993 --- /dev/null +++ b/app/Http/Controllers/Api/NotesController.php @@ -0,0 +1,26 @@ +input("id")); + $this->authorize('update', $item); + + $validated = $request->validate([ + 'note' => 'required|string|max:500']); + + event(new NoteAdded($item, Auth::user(), $validated['note'])); + + return response()->json(Helper::formatStandardApiResponse('success')); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/ModalController.php b/app/Http/Controllers/ModalController.php index fab491a5f4..5b8d5e0ea2 100644 --- a/app/Http/Controllers/ModalController.php +++ b/app/Http/Controllers/ModalController.php @@ -32,7 +32,8 @@ class ModalController extends Controller 'statuslabel', 'supplier', 'upload-file', - 'user', + 'user', + 'add-note', ]; diff --git a/app/Listeners/LogListener.php b/app/Listeners/LogListener.php index b44fcdfcb4..77b224931f 100644 --- a/app/Listeners/LogListener.php +++ b/app/Listeners/LogListener.php @@ -17,6 +17,7 @@ use App\Events\ItemAccepted; use App\Events\ItemDeclined; use App\Events\LicenseCheckedIn; use App\Events\LicenseCheckedOut; +use App\Events\NoteAdded; use App\Models\Actionlog; use App\Models\User; use App\Models\LicenseSeat; @@ -128,6 +129,23 @@ class LogListener } + + /** + * Note is added to action log + * + */ + public function onNoteAdded(NoteAdded $event) + { + $logaction = new Actionlog(); + $logaction->item_id = $event->itemNoteAddedOn->id; + $logaction->item_type = get_class($event->itemNoteAddedOn); + $logaction->note = $event->note; //this is the received alphanumeric text from the box + $logaction->user_id = $event->noteAddedBy->id; + $logaction->action_type = 'note_added'; + $logaction->save(); + } + + /** * Register the listeners for the subscriber. * @@ -141,6 +159,7 @@ class LogListener 'CheckoutAccepted', 'CheckoutDeclined', 'UserMerged', + 'NoteAdded', ]; foreach ($list as $event) { diff --git a/app/Models/Note.php b/app/Models/Note.php new file mode 100644 index 0000000000..a7c35887b7 --- /dev/null +++ b/app/Models/Note.php @@ -0,0 +1,17 @@ +morphTo(); + } +} \ No newline at end of file diff --git a/resources/assets/js/snipeit_modals.js b/resources/assets/js/snipeit_modals.js index 7e20e9d5d9..0fb22d049d 100644 --- a/resources/assets/js/snipeit_modals.js +++ b/resources/assets/js/snipeit_modals.js @@ -28,7 +28,7 @@ $(function () { var baseUrl = $('meta[name="baseUrl"]').attr('content'); //handle modal-add-interstitial calls - var model, select, refreshSelector; + var model, select, refreshSelector, hasnopayload; if($('#createModal').length == 0) { $('body').append('
'); @@ -122,11 +122,13 @@ $(function () { $('#modal_error_msg').html(error_message).show(); return false; } - var id = result.payload.id; - var name = result.payload.name || (result.payload.first_name + " " + result.payload.last_name); - if(!id || !name) { - console.error("Could not find resulting name or ID from modal-create. Name: "+name+", id: "+id); - return false; + if(!hasnopayload) { + var id = result.payload.id; + var name = result.payload.name || (result.payload.first_name + " " + result.payload.last_name); + if (!id || !name) { + console.error("Could not find resulting name or ID from modal-create. Name: " + name + ", id: " + id); + return false; + } } $('#createModal').modal('hide'); $('#createModal').html(""); diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 3092228674..2fe92baf42 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -215,6 +215,8 @@ return [ 'no_results' => 'No Results.', 'no' => 'No', 'notes' => 'Notes', + 'note_added' => 'Note Added', + 'add_note' => 'Add Note', 'order_number' => 'Order Number', 'only_deleted' => 'Only Deleted Assets', 'page_menu' => 'Showing _MENU_ items', diff --git a/resources/views/modals/add-note.blade.php b/resources/views/modals/add-note.blade.php new file mode 100644 index 0000000000..0323fb0656 --- /dev/null +++ b/resources/views/modals/add-note.blade.php @@ -0,0 +1,29 @@ +{{-- See snipeit_modals.js for what powers this --}} +