diff --git a/app/Http/Controllers/NotesAdminController.php b/app/Http/Controllers/NotesAdminController.php index c8841d4b..8db04587 100644 --- a/app/Http/Controllers/NotesAdminController.php +++ b/app/Http/Controllers/NotesAdminController.php @@ -6,6 +6,7 @@ use App\Note; use Validator; use Illuminate\Http\Request; use App\Services\NoteService; +use App\Jobs\SendWebMentions; class NotesAdminController extends Controller { @@ -41,6 +42,17 @@ class NotesAdminController extends Controller return view('admin.listnotes', ['notes' => $notes]); } + /** + * The delete note page. + * + * @param int id + * @return view + */ + public function deleteNotePage($id) + { + return view('admin.deletenote', ['id' => $id]); + } + /** * Display the form to edit a specific note. * @@ -92,16 +104,29 @@ class NotesAdminController extends Controller public function editNote($noteId, Request $request) { //update note data - $note = Note::find($noteId); + $note = Note::findOrFail($noteId); $note->note = $request->input('content'); $note->in_reply_to = $request->input('in-reply-to'); $note->save(); if ($request->input('webmentions')) { - $wmc = new WebMentionsController(); - $wmc->send($note); + dispatch(new SendWebMentions($note)); } return view('admin.editnotesuccess', ['id' => $noteId]); } + + /** + * Delete the note. + * + * @param int id + * @return view + */ + public function deleteNote($id) + { + $note = Note::findOrFail($id); + $note->delete(); + + return view('admin.deletenotesuccess'); + } } diff --git a/app/Jobs/SendWebMentions.php b/app/Jobs/SendWebMentions.php index 15a3e4a5..cd593e56 100644 --- a/app/Jobs/SendWebMentions.php +++ b/app/Jobs/SendWebMentions.php @@ -58,7 +58,7 @@ class SendWebMentions implements ShouldQueue * @param \GuzzleHttp\Client $guzzle * @return string The webmention endpoint URL */ - private function discoverWebmentionEndpoint($url, $guzzle) + public function discoverWebmentionEndpoint($url, $guzzle) { //let’s not send webmentions to myself if (parse_url($url, PHP_URL_HOST) == env('LONG_URL', 'localhost')) { diff --git a/changelog.md b/changelog.md index 01cd3e32..dc1428a1 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,7 @@ ## Version {next} - Add a reply icon in note metadata + - Allow notes to be deleted ## Version 0.0.15.6 (2016-11-03) - Remove reply/like/repost links, not needed without indie-action diff --git a/resources/views/admin/deletenote.blade.php b/resources/views/admin/deletenote.blade.php new file mode 100644 index 00000000..11fad5b8 --- /dev/null +++ b/resources/views/admin/deletenote.blade.php @@ -0,0 +1,16 @@ +@extends('master') + +@section('title') +Delete Note « Admin CP +@stop + +@section('content') +
+ +
+ Delete Note +

Are you sure you want to delete the note? + +

+
+@stop diff --git a/resources/views/admin/deletenotesuccess.blade.php b/resources/views/admin/deletenotesuccess.blade.php new file mode 100644 index 00000000..e15a8506 --- /dev/null +++ b/resources/views/admin/deletenotesuccess.blade.php @@ -0,0 +1,9 @@ +@extends('master') + +@section('title') +Delete Note Success « Admin CP +@stop + +@section('content') +

The note was successfully deleted.

+@stop diff --git a/resources/views/admin/editnote.blade.php b/resources/views/admin/editnote.blade.php index 6bf7e1ee..c0e107df 100644 --- a/resources/views/admin/editnote.blade.php +++ b/resources/views/admin/editnote.blade.php @@ -12,7 +12,7 @@ Edit Note « Admin CP


-
+ Delete note? @stop diff --git a/routes/web.php b/routes/web.php index da7a6f74..6cf3db0a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -45,8 +45,10 @@ Route::group(['domain' => config('url.longurl')], function () { Route::get('admin/note/new', 'NotesAdminController@newNotePage'); Route::get('admin/note/edit', 'NotesAdminController@listNotesPage'); Route::get('admin/note/edit/{id}', 'NotesAdminController@editNotePage'); + Route::get('admin/note/delete/{id}', 'NotesAdminController@deleteNotePage'); Route::post('admin/note/new', 'NotesAdminController@createNote'); Route::post('admin/note/edit/{id}', 'NotesAdminController@editNote'); + Route::post('admin/note/delete/{id}', 'NotesAdminController@deleteNote'); //Tokens Route::get('admin/tokens', 'TokensController@showTokens');