diff --git a/app/Http/Controllers/PostController.php b/app/Http/Controllers/PostController.php index c90b70a..770b40e 100644 --- a/app/Http/Controllers/PostController.php +++ b/app/Http/Controllers/PostController.php @@ -24,4 +24,13 @@ class PostController extends Controller implements HasMiddleware { return view("posts.create"); } + + public function store(Request $request) + { + $request->validate([ + "title" => "required|max:255", + "description" => "required", + "image" => "required" + ]); + } } diff --git a/resources/js/app.js b/resources/js/app.js index bfbc5f4..9a2d859 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -8,10 +8,33 @@ const dropzone = new Dropzone("#dropzone", { addRemoveLinks: true, maxFiles: 1, uploadMultiple: false, -}); -dropzone.on("sending", function (file, xhr, formData) {}); + init: function () { + if (document.querySelector('[name="image"]').value.trim()) { + const publishedImage = {}; + publishedImage.size = 1234; + publishedImage.name = + document.querySelector('[name="image"]').value; + + this.options.addedfile.call(this, publishedImage); + this.options.thumbnail.call( + this, + publishedImage, + `/uploads/${publishedImage.name}` + ); + + publishedImage.previewElement.classList.add( + "dz-success", + "dz-complete" + ); + } + }, +}); dropzone.on("success", function (file, response) { - console.log(response); + document.querySelector('[name="image"]').value = response.image; +}); + +dropzone.on("removedfile", function (file) { + document.querySelector('[name="image"]').value = ""; }); diff --git a/resources/views/posts/create.blade.php b/resources/views/posts/create.blade.php index becbd07..cbd6208 100644 --- a/resources/views/posts/create.blade.php +++ b/resources/views/posts/create.blade.php @@ -18,7 +18,7 @@
-
+ @csrf
@@ -37,9 +37,7 @@
+ class="border p-3 w-full rounded-lg @error('description')border-red-500 @enderror">{{ old('description') }} @error('description')

@@ -48,6 +46,16 @@ @enderror

+
+ + + @error('image') +

+ {{ $message }} +

+ @enderror +
+ diff --git a/routes/web.php b/routes/web.php index 853fa5f..a381e30 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,5 +21,6 @@ Route::post("/logout", [LogoutController::class, "store"])->name("logout"); Route::get("/{user:username}", [PostController::class, "index"])->name("posts.index"); Route::get("/posts/create", [PostController::class, "create"])->name("posts.create"); +Route::post("/posts", [PostController::class, "store"])->name("posts.store"); Route::post("/images", [ImageController::class, "store"])->name("images.store");