diff --git a/resources/js/components/IndexField.vue b/resources/js/components/IndexField.vue
index f265544..c588abf 100644
--- a/resources/js/components/IndexField.vue
+++ b/resources/js/components/IndexField.vue
@@ -13,7 +13,10 @@
-
+
note.id === data.notableID)].notes : this.notes
+
+ this.$delete(noteArray, noteArray.findIndex(note => note.id === data.dataID))
+
+ if(!data.isReply){
+ this.notesCount = this.notesCount - 1;
+ }
}
}
};
diff --git a/resources/js/components/Notes/Note.vue b/resources/js/components/Notes/Note.vue
index 37b1f61..4736b9b 100644
--- a/resources/js/components/Notes/Note.vue
+++ b/resources/js/components/Notes/Note.vue
@@ -8,9 +8,20 @@
/>
+
{{ data.author ? data.author.name : '-' }}
-
+
+
+
+
Edit
+
+
+
Delete
+
{{ data.note }}
{{ createdAt }}
@@ -27,11 +39,10 @@
-
+
-
@@ -66,6 +77,29 @@ export default {
reply_to_id: this.data.id,
reply_to_name: this.data.author ? this.data.author.name : '-'
});
+ },
+ onDelete(data, reply) {
+
+ if(!reply){
+ Nova.request().delete('/nova-vendor/notes-field/' + this.data.id).then(response => {
+ this.$toasted.show('Note Removed', {type: 'success'})
+
+ this.$emit('delete-note', {
+ isReply: this.isReply,
+ notableID: this.data.notable_id,
+ dataID: this.data.id
+ })
+ })
+ } else {
+ this.$emit('delete-note', data)
+ }
+ },
+ onEdit() {
+ //get NOTE ID
+ //check personal status
+ //check html status
+ //display note
+ //update changes
}
},
computed: {
diff --git a/resources/js/components/Notes/Notes.vue b/resources/js/components/Notes/Notes.vue
index 6ccaaf7..fda558f 100644
--- a/resources/js/components/Notes/Notes.vue
+++ b/resources/js/components/Notes/Notes.vue
@@ -4,7 +4,10 @@
No notes found...
@@ -21,11 +24,14 @@ export default {
notes: {
type: Array,
required: true
- },
+ }
},
methods: {
handleReplyTo(data) {
this.$emit('reply-to', data)
+ },
+ deleteNote(data){
+ this.$emit('delete-note', data)
}
}
}
diff --git a/routes/api.php b/routes/api.php
index 327cd99..a9b7bab 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -16,3 +16,9 @@
Route::get('', [NoteController::class, 'index']);
Route::post('new', [NoteController::class, 'store']);
+
+//DELETE NOTE (DELETE -> DESTROY)
+Route::delete('{note}', [NoteController::class, 'destroy']);
+
+//EDIT NOTE (PATCH?)
+Route::patch('updateNote', [NoteController::class, 'update']);
diff --git a/src/Http/Controllers/NoteController.php b/src/Http/Controllers/NoteController.php
index abffd9c..a7d1c5d 100644
--- a/src/Http/Controllers/NoteController.php
+++ b/src/Http/Controllers/NoteController.php
@@ -10,11 +10,13 @@
class NoteController extends Controller
{
+ //VIEW ALL NOTES
public function index(Request $request): JsonResponse
{
return response()->json(Note::whereNotableTypeAndId($request->input('notable_type'), $request->input('notable_id'))->with('author', 'notes')->get());
}
+ //SAVE A NOTE
public function store(NoteRequest $request): JsonResponse
{
if($request->input('reply_to_id')) {
@@ -32,14 +34,16 @@ public function store(NoteRequest $request): JsonResponse
return response()->json(Note::create($request->validated())->load('author', 'notes'));
}
- // public function store(NoteRequest $request): JsonResponse
- // {
- // if($request->validated()['reply_to_id'] != null){
- // $note = Note::find($request->input('reply_to_id'));
- // $noteData = collect($request->validated())->except('notable_type', 'notable_id', 'reply_to_id')->toArray();
- // $newNote = $note->notes()->create($noteData);
- // return response()->json($newNote->load('author'));
- // }
- // return response()->json(Note::create($request->validated())->load('author'));
- // }
+ //DELETE NOTE
+ public function destroy(Request $request, Note $note): JsonResponse
+ {
+ $note->delete();
+ return response()->json(['message'=>'success']);
+ }
+
+ //UPDATE NOTE
+ public function update(NoteRequest $request): JsonResponse
+ {
+ return response();
+ }
}