From 74efd850af2bc0da61841d6045cafa6fbea03174 Mon Sep 17 00:00:00 2001 From: akemidx Date: Mon, 16 Sep 2024 19:30:26 -0400 Subject: [PATCH 01/13] redoing branch. old branch merge onflicts were waaay too gnarly --- app/Events/NoteAdded.php | 28 +++++++++++++++++++ app/Http/Controllers/Api/NotesController.php | 26 ++++++++++++++++++ app/Http/Controllers/ModalController.php | 3 +- app/Listeners/LogListener.php | 19 +++++++++++++ app/Models/Note.php | 17 ++++++++++++ resources/assets/js/snipeit_modals.js | 14 ++++++---- resources/lang/en-US/general.php | 2 ++ resources/views/modals/add-note.blade.php | 29 ++++++++++++++++++++ routes/api.php | 16 +++++++++++ 9 files changed, 147 insertions(+), 7 deletions(-) create mode 100644 app/Events/NoteAdded.php create mode 100644 app/Http/Controllers/Api/NotesController.php create mode 100644 app/Models/Note.php create mode 100644 resources/views/modals/add-note.blade.php diff --git a/app/Events/NoteAdded.php b/app/Events/NoteAdded.php new file mode 100644 index 000000000..de5f91ce7 --- /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 000000000..37527fb99 --- /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 fab491a5f..5b8d5e0ea 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 b44fcdfcb..77b224931 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 000000000..a7c35887b --- /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 7e20e9d5d..0fb22d049 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 309222867..2fe92baf4 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 000000000..0323fb065 --- /dev/null +++ b/resources/views/modals/add-note.blade.php @@ -0,0 +1,29 @@ +{{-- See snipeit_modals.js for what powers this --}} + \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 108f2ac23..41a1ac944 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1269,6 +1269,22 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi }); // end reports api routes /** + * Notes API routes + */ + + Route::group(['prefix' => 'notes'], function () { + + Route::post( + '/', + [ Api\NotesController::class, + 'store' + ] + )->name('api.notes.store'); + }); // end notes api routes + + + + /** * Version API routes */ From 4b54e980e2b1857e7cef04d65b6c9652c5b82aca Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 17 Sep 2024 17:56:22 -0400 Subject: [PATCH 02/13] added button --- resources/views/hardware/view.blade.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 42144fc20..5904f30c7 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -252,6 +252,15 @@ {{ Form::close() }} + + @can('update', \App\Models\Asset::class) + + @endcan + @can('delete', $asset)
@if ($asset->deleted_at=='') From 443447a068b13012c6fb8091755169817455b96e Mon Sep 17 00:00:00 2001 From: akemidx Date: Tue, 17 Sep 2024 19:16:44 -0400 Subject: [PATCH 03/13] added icon to button --- app/Helpers/IconHelper.php | 4 +++- resources/views/hardware/view.blade.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Helpers/IconHelper.php b/app/Helpers/IconHelper.php index b56871f83..0b243d69a 100644 --- a/app/Helpers/IconHelper.php +++ b/app/Helpers/IconHelper.php @@ -184,7 +184,9 @@ class IconHelper return 'fa-regular fa-id-card'; case 'department' : return 'fa-solid fa-building-user'; - + case 'note': + case 'notes': + return 'fas fa-sticky-note'; } } } diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 5904f30c7..a5327c758 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -256,7 +256,7 @@ @can('update', \App\Models\Asset::class) @endcan From da9a61c28a416741f140f9cb08a5f5a4435d8965 Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 18 Sep 2024 17:01:37 -0400 Subject: [PATCH 04/13] no payload --- resources/assets/js/snipeit_modals.js | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/assets/js/snipeit_modals.js b/resources/assets/js/snipeit_modals.js index 0fb22d049..250868bbb 100644 --- a/resources/assets/js/snipeit_modals.js +++ b/resources/assets/js/snipeit_modals.js @@ -40,6 +40,7 @@ $(function () { select = link.data("select"); refreshSelector = link.data("refresh"); + hasnopayload = link.data("hasnopayload"); $('#createModal').load(link.attr('href'),function () { From 3964296ae6f72b497abc96b6253a86213f02488e Mon Sep 17 00:00:00 2001 From: akemidx Date: Wed, 18 Sep 2024 17:06:21 -0400 Subject: [PATCH 05/13] no payload --- resources/views/hardware/view.blade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index a5327c758..6e13b7484 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -1568,7 +1568,6 @@ @include ('modals.upload-file', ['item_type' => 'asset', 'item_id' => $asset->id]) @endcan @stop - @section('moar_scripts')