diff --git a/app/Http/Controllers/Admin/Shop/ArticleController.php b/app/Http/Controllers/Admin/Shop/ArticleController.php
index 28e5b14e..9441d1e4 100644
--- a/app/Http/Controllers/Admin/Shop/ArticleController.php
+++ b/app/Http/Controllers/Admin/Shop/ArticleController.php
@@ -63,6 +63,17 @@ class ArticleController extends Controller
return view('Admin.Shop.Articles.edit', $data);
}
+ public function duplicate($id)
+ {
+ $data = Articles::getFull($id);
+ // Prepare for creation: blank id/slug, tweak name to indicate copy
+ $data['article']['id'] = null;
+ $data['article']['slug'] = null;
+ $data['article']['name'] = ($data['article']['name'] ?? '').' (copie)';
+
+ return view('Admin.Shop.Articles.create', $data);
+ }
+
public function destroy($id)
{
return Articles::destroy($id);
diff --git a/app/Repositories/Shop/ArticleImages.php b/app/Repositories/Shop/ArticleImages.php
index 9eb3b2ff..85869b39 100644
--- a/app/Repositories/Shop/ArticleImages.php
+++ b/app/Repositories/Shop/ArticleImages.php
@@ -31,7 +31,11 @@ class ArticleImages
public static function getFullImagesByArticle($article)
{
- $images = count($article->images) ? $article->images : collect([]);
+ if (! $article) {
+ return collect([]);
+ }
+
+ $images = count($article->images ?? []) ? $article->images : collect([]);
switch ($article->product_type) {
case 'App\Models\Botanic\Variety':
$variety = $article->product ?? false;
diff --git a/resources/shop/css/main.css b/resources/shop/css/main.css
index 181eb2c9..795213bb 100644
--- a/resources/shop/css/main.css
+++ b/resources/shop/css/main.css
@@ -126,3 +126,19 @@ body {
padding-bottom: 4px;
line-height: 1.1;
}
+
+@media (max-width: 575.98px) {
+ .content-header .form-buttons {
+ margin-left: 0;
+ margin-top: 8px;
+ }
+
+ .content-header .form-buttons .btn {
+ height: 28px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-left: 8px;
+ padding-right: 8px;
+ font-size: 0.75rem;
+ }
+}
diff --git a/resources/views/Admin/Shop/Articles/create.blade.php b/resources/views/Admin/Shop/Articles/create.blade.php
index 5ac2ddd7..d89714eb 100644
--- a/resources/views/Admin/Shop/Articles/create.blade.php
+++ b/resources/views/Admin/Shop/Articles/create.blade.php
@@ -5,5 +5,7 @@
])
@section('content')
- @include('Admin.Shop.Articles.form')
+ @include('Admin.Shop.Articles.form', [
+ 'cancel_url' => route('Admin.Shop.Articles.index'),
+ ])
@endsection
diff --git a/resources/views/Admin/Shop/Articles/edit.blade.php b/resources/views/Admin/Shop/Articles/edit.blade.php
index d1c6c28a..7ce7f373 100644
--- a/resources/views/Admin/Shop/Articles/edit.blade.php
+++ b/resources/views/Admin/Shop/Articles/edit.blade.php
@@ -5,5 +5,13 @@
])
@section('content')
- @include('Admin.Shop.Articles.form')
+ @php
+ $duplicateUrl = \Route::has('Admin.Shop.Articles.duplicate')
+ ? route('Admin.Shop.Articles.duplicate', $article['id'] ?? null)
+ : null;
+ @endphp
+ @include('Admin.Shop.Articles.form', [
+ 'duplicate_url' => $duplicateUrl,
+ 'cancel_url' => route('Admin.Shop.Articles.index'),
+ ])
@endsection
diff --git a/resources/views/Admin/Shop/Articles/form.blade.php b/resources/views/Admin/Shop/Articles/form.blade.php
index f281ec0e..12d1647e 100644
--- a/resources/views/Admin/Shop/Articles/form.blade.php
+++ b/resources/views/Admin/Shop/Articles/form.blade.php
@@ -27,7 +27,7 @@
@include('Admin.Shop.Articles.partials.characteristics')
{{ Form::close() }}
-