From 2350e9c2f43fc7481ea01732a1abae79af3190b0 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Thu, 16 Feb 2023 20:15:34 +0100 Subject: [PATCH] edit orange pills --- .../Livewire/BookCase/CommentBookCase.php | 2 + .../Livewire/BookCase/Form/OrangePillForm.php | 73 +++++++ app/Http/Livewire/BookCase/WorldMap.php | 10 +- ...dd_comment_field_to_orange_pills_table.php | 30 +++ .../book_cases/oranged-pilled.blade.php | 13 +- .../book-case/comment-book-case.blade.php | 198 ++++-------------- .../book-case/form/orange-pill-form.blade.php | 81 +++++++ .../livewire/book-case/world-map.blade.php | 4 +- routes/web.php | 4 + 9 files changed, 248 insertions(+), 167 deletions(-) create mode 100644 app/Http/Livewire/BookCase/Form/OrangePillForm.php create mode 100644 database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php create mode 100644 resources/views/livewire/book-case/form/orange-pill-form.blade.php diff --git a/app/Http/Livewire/BookCase/CommentBookCase.php b/app/Http/Livewire/BookCase/CommentBookCase.php index fa8a4a53..00a4144e 100644 --- a/app/Http/Livewire/BookCase/CommentBookCase.php +++ b/app/Http/Livewire/BookCase/CommentBookCase.php @@ -21,6 +21,8 @@ class CommentBookCase extends Component public BookCase $bookCase; + + public function render() { return view('livewire.book-case.comment-book-case') diff --git a/app/Http/Livewire/BookCase/Form/OrangePillForm.php b/app/Http/Livewire/BookCase/Form/OrangePillForm.php new file mode 100644 index 00000000..c1993400 --- /dev/null +++ b/app/Http/Livewire/BookCase/Form/OrangePillForm.php @@ -0,0 +1,73 @@ + ['except' => '']]; + + public function rules() + { + return [ + 'orangePill.book_case_id' => 'required', + 'orangePill.user_id' => 'required', + 'orangePill.amount' => 'required|numeric', + 'orangePill.date' => 'required|date', + 'orangePill.comment' => 'required|string', + 'image' => 'image|max:8192', // 8MB Max + ]; + } + + public function mount() + { + if (!$this->orangePill) { + $this->orangePill = new OrangePill([ + 'user_id' => auth()->id(), + 'book_case_id' => $this->bookCase->id, + 'date' => now(), + 'amount' => 1, + ]); + } + } + + public function save() + { + $this->validate(); + $this->orangePill->save(); + $this->orangePill + ->addMedia($this->image) + ->usingFileName(md5($this->image->getClientOriginalName()).'.'.$this->image->getClientOriginalExtension()) + ->toMediaCollection('images'); + + return redirect($this->fromUrl); + } + + public function deleteMe() + { + $this->orangePill->delete(); + + return redirect($this->fromUrl); + } + + public function render() + { + return view('livewire.book-case.form.orange-pill-form'); + } +} diff --git a/app/Http/Livewire/BookCase/WorldMap.php b/app/Http/Livewire/BookCase/WorldMap.php index 674f01fd..d85f16c0 100644 --- a/app/Http/Livewire/BookCase/WorldMap.php +++ b/app/Http/Livewire/BookCase/WorldMap.php @@ -21,14 +21,10 @@ class WorldMap extends Component ->map(fn($bookCase) => [ 'lat' => $bookCase->latitude, 'lng' => $bookCase->longitude, - 'url' => url()->route('bookCases.table.bookcases', + 'url' => url()->route('bookCases.comment.bookcase', [ - 'country' => $this->country, - 'bookcases' => [ - 'filters' => [ - 'byids' => $bookCase->id, - ] - ] + 'country' => $this->country, + 'bookCase' => $bookCase, ]), 'op' => $bookCase->orange_pills_count, ]) diff --git a/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php b/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php new file mode 100644 index 00000000..bfa8948f --- /dev/null +++ b/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php @@ -0,0 +1,30 @@ +text('comment') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + * @return void + */ + public function down() + { + Schema::table('orange_pills', function (Blueprint $table) { + // + }); + } +}; diff --git a/resources/views/columns/book_cases/oranged-pilled.blade.php b/resources/views/columns/book_cases/oranged-pilled.blade.php index 6f345d9c..35c790d4 100644 --- a/resources/views/columns/book_cases/oranged-pilled.blade.php +++ b/resources/views/columns/book_cases/oranged-pilled.blade.php @@ -10,9 +10,16 @@ @endif -
- {{ __('💊 Orange Pill Now') }} + diff --git a/resources/views/livewire/book-case/comment-book-case.blade.php b/resources/views/livewire/book-case/comment-book-case.blade.php index 156373b0..481a7069 100644 --- a/resources/views/livewire/book-case/comment-book-case.blade.php +++ b/resources/views/livewire/book-case/comment-book-case.blade.php @@ -4,6 +4,49 @@
+ + +
+ +
+
{{ $bookCase->contact }}

Information

{{ $bookCase->comment }}

- -

Neues Foto hochladen

- -
-
- - @error('photo') {{ $message }} @enderror - Hochladen -
-
- - @if($bookCase->getMedia('images')->count() > 0) -
-
- - - - - - - -
    - - @foreach($bookCase->getMedia('images') as $image) -
  • - - placeholder image - - - - - @if(auth()->user()?->hasRole('super-admin') || app()->environment('local')) -
    - - {{ __('Delete') }} - -
    - @endif -
  • - @endforeach - -
- - - -
-
- @endif
diff --git a/resources/views/livewire/book-case/form/orange-pill-form.blade.php b/resources/views/livewire/book-case/form/orange-pill-form.blade.php new file mode 100644 index 00000000..46c719bf --- /dev/null +++ b/resources/views/livewire/book-case/form/orange-pill-form.blade.php @@ -0,0 +1,81 @@ +
+ +
+

{{ __('Book Case') }}: {{ $bookCase->title }}

+
+
+ @if($orangePill->id) + + + {{ __('Delete') }} + + @endif +
+
+ + + {{ __('Back') }} + +
+
+
+ +
+
+
+ + +
+ @if ($image) +
{{ __('Preview') }}:
+ + @endif + @if ($orangePill->getFirstMediaUrl('images')) +
{{ __('Current picture') }}:
+ + @endif +
+ + @error('image') {{ $message }} @enderror +
+ + + + + + + + + + + + + + + + + {{ __('Save') }} + + + +
+
+
+
diff --git a/resources/views/livewire/book-case/world-map.blade.php b/resources/views/livewire/book-case/world-map.blade.php index abd6a646..f37231b3 100644 --- a/resources/views/livewire/book-case/world-map.blade.php +++ b/resources/views/livewire/book-case/world-map.blade.php @@ -33,11 +33,11 @@ if(element.op > 0) { const marker = L.circleMarker([element.lat, element.lng], {color: '#f7931a', radius: 8}); marker.url = element.url; - marker.addTo(map).on('click', e => window.open(e.target.url, '_blank')); + marker.addTo(map).on('click', e => window.open(e.target.url, '_self')); } else { const marker = L.circleMarker([element.lat, element.lng], {color: '#111827', radius: 8}); marker.url = element.url; - marker.addTo(map).on('click', e => window.open(e.target.url, '_blank')); + marker.addTo(map).on('click', e => window.open(e.target.url, '_self')); } }); diff --git a/routes/web.php b/routes/web.php index 3e10cad8..2da96736 100644 --- a/routes/web.php +++ b/routes/web.php @@ -165,6 +165,10 @@ Route::middleware([]) ->as('bookCases.') ->prefix('/{country:code}/book-cases') ->group(function () { + Route::get('/book-case/form/{bookCase}/{orangePill?}', \App\Http\Livewire\BookCase\Form\OrangePillForm::class) + ->name('form') + ->middleware(['auth']); + Route::get('/city', \App\Http\Livewire\BookCase\CityTable::class) ->name('table.city');