From 6771aee14899ed23d66221f03390d00c0e69d0db Mon Sep 17 00:00:00 2001 From: fsociety Date: Thu, 24 Oct 2024 19:46:42 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20feat(image):=20validate=20and=20?= =?UTF-8?q?upload=20project=20proposal=20images=20in=20the=20form.=20Updat?= =?UTF-8?q?e=20image=20preview=20logic.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/[ProjectProposal:slug].blade.php | 10 +++++++++- .../project-support/form/create.blade.php | 14 ++++++++++++-- .../association/project-support/index.blade.php | 4 ++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/resources/views/pages/association/project-support/form/[ProjectProposal:slug].blade.php b/resources/views/pages/association/project-support/form/[ProjectProposal:slug].blade.php index a7af089..9a64ba9 100644 --- a/resources/views/pages/association/project-support/form/[ProjectProposal:slug].blade.php +++ b/resources/views/pages/association/project-support/form/[ProjectProposal:slug].blade.php @@ -50,6 +50,14 @@ on([ $save = function () { $this->form->validate(); + if ($this->image) { + $this->validate([ + 'image' => 'image|max:1024', + ]); + $this->projectProposal + ->addMedia($this->image->getRealPath()) + ->toMediaCollection('main'); + } $this->projectProposal->update([ ...$this->form->except('id', 'slug'), @@ -71,7 +79,7 @@ $save = function () {
- @if ($image && str($image->getMimeType())->contains(['image/jpeg','image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'])) + @if ($image && method_exists($image, 'temporaryUrl') && str($image->getMimeType())->contains(['image/jpeg','image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp']))
{{ __('Preview') }}:
@endif diff --git a/resources/views/pages/association/project-support/form/create.blade.php b/resources/views/pages/association/project-support/form/create.blade.php index aa8064a..84eaf6a 100644 --- a/resources/views/pages/association/project-support/form/create.blade.php +++ b/resources/views/pages/association/project-support/form/create.blade.php @@ -45,10 +45,20 @@ on([ $save = function () { $this->form->validate(); - \App\Models\ProjectProposal::query()->create([ + $this->validate('image', 'image|max:1024'); + + $projectProposal = \App\Models\ProjectProposal::query()->create([ ...$this->form->all(), 'einundzwanzig_pleb_id' => $this->currentPleb->id, ]); + if ($this->image) { + $this->validate([ + 'image' => 'image|max:1024', + ]); + $projectProposal + ->addMedia($this->image->getRealPath()) + ->toMediaCollection('main'); + } return redirect()->route('association.projectSupport'); }; @@ -65,7 +75,7 @@ $save = function () {
- @if ($image && str($image->getMimeType())->contains(['image/jpeg','image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'])) + @if ($image && method_exists($image, 'temporaryUrl') && str($image->getMimeType())->contains(['image/jpeg','image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp']))
{{ __('Preview') }}:
@endif diff --git a/resources/views/pages/association/project-support/index.blade.php b/resources/views/pages/association/project-support/index.blade.php index fac7df4..3e6b0d5 100644 --- a/resources/views/pages/association/project-support/index.blade.php +++ b/resources/views/pages/association/project-support/index.blade.php @@ -135,9 +135,9 @@ $delete = function ($id) { class="flex bg-white dark:bg-gray-800 shadow-sm rounded-xl overflow-hidden"> + href="{{ route('association.projectSupport.item', ['projectProposal' => $project]) }}"> Meetup 01 + src="{{ $project->getFirstMediaUrl('main') }}" alt="Meetup 01">