- add delete for messages
This commit is contained in:
parent
2a2869e2c6
commit
252f5ee6b7
@ -8,6 +8,7 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Http\Resources\MessageCollection;
|
use App\Http\Resources\MessageCollection;
|
||||||
use App\Http\Resources\MessageResource;
|
use App\Http\Resources\MessageResource;
|
||||||
use App\Models\Message;
|
use App\Models\Message;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Inertia\Response as InertiaResponse;
|
use Inertia\Response as InertiaResponse;
|
||||||
|
|
||||||
class MessageController extends Controller
|
class MessageController extends Controller
|
||||||
@ -24,4 +25,21 @@ class MessageController extends Controller
|
|||||||
'message' => new MessageResource($message),
|
'message' => new MessageResource($message),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete(Message $message) : InertiaResponse
|
||||||
|
{
|
||||||
|
return inertia('Messages/ConfirmDelete', [
|
||||||
|
'message' => new MessageResource($message),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(Message $message) : RedirectResponse
|
||||||
|
{
|
||||||
|
$sender = $message->sender;
|
||||||
|
$message->delete();
|
||||||
|
|
||||||
|
return redirect()
|
||||||
|
->route('admin.message.index')
|
||||||
|
->with(['success' => 'Wiadomość od '. $sender .' została usunięta']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ namespace App\Models;
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $id
|
* @param int $id
|
||||||
@ -15,7 +16,8 @@ use Illuminate\Database\Eloquent\Model;
|
|||||||
*/
|
*/
|
||||||
class Message extends Model
|
class Message extends Model
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory,
|
||||||
|
SoftDeletes;
|
||||||
|
|
||||||
protected $guarded = [];
|
protected $guarded = [];
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ return new class extends Migration
|
|||||||
$table->string('message', 500);
|
$table->string('message', 500);
|
||||||
$table->string('email', 250);
|
$table->string('email', 250);
|
||||||
$table->string('sender', 50);
|
$table->string('sender', 50);
|
||||||
|
$table->softDeletes();
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
37
resources/js/Pages/Messages/ConfirmDelete.vue
Normal file
37
resources/js/Pages/Messages/ConfirmDelete.vue
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<script setup>
|
||||||
|
import { router } from '@inertiajs/vue3';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
message: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
function confirmDelete() {
|
||||||
|
router.delete(`/dashboard/message/${props.message.id}/delete`);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<InertiaHead title="Usuwanie wiadomości" />
|
||||||
|
<div class="p-4">
|
||||||
|
<header class="pb-4">
|
||||||
|
<h1 class="text-3xl font-roboto font-light">Usuwanie wiadomości</h1>
|
||||||
|
</header>
|
||||||
|
<div class="max-w-[600px]">
|
||||||
|
<p class="mb-4">Na pewno usunąć wiadomość od {{ message.sender }}?</p>
|
||||||
|
<div class="grid grid-cols-3 gap-2">
|
||||||
|
<InertiaLink
|
||||||
|
as="button"
|
||||||
|
:href="`/dashboard/message/${message.id}`"
|
||||||
|
class="col-span-1 flex justify-center items-center gap-3 w-full px-2 py-1 border-t-4 border-b-4 border-transparent hover:border-b-black"
|
||||||
|
><FontAwesomeIcon :icon="['fas', 'backward']" />Anuluj</InertiaLink>
|
||||||
|
<button
|
||||||
|
@click.prevent="confirmDelete"
|
||||||
|
class="col-span-2 flex justify-center items-center gap-3 w-full px-2 py-1 rounded-md bg-red-600 border-4 border-red-600 text-white text-lg hover:bg-transparent hover:text-red-600"
|
||||||
|
><FontAwesomeIcon :icon="['fas', 'trash']" /><span class="whitespace-nowrap overflow-hidden overflow-ellipsis">Usuń wiadomość od {{ message.sender }}</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
@ -12,6 +12,10 @@ Route::name('admin.')->group(function () {
|
|||||||
->name('index');
|
->name('index');
|
||||||
Route::get('{message}', 'MessageController@show')
|
Route::get('{message}', 'MessageController@show')
|
||||||
->name('show');
|
->name('show');
|
||||||
|
Route::get('{message}/delete', 'MessageController@delete')
|
||||||
|
->name('delete');
|
||||||
|
Route::delete('{message}/delete', 'MessageController@destroy')
|
||||||
|
->name('destroy');
|
||||||
});
|
});
|
||||||
Route::name('cv.')->prefix('cv')->group(function (): void {
|
Route::name('cv.')->prefix('cv')->group(function (): void {
|
||||||
Route::get('', 'CVController@index')
|
Route::get('', 'CVController@index')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user