From 8188820ac3b61116706683b78cc9c2b310a6f084 Mon Sep 17 00:00:00 2001 From: A1Gard Date: Fri, 19 Jul 2024 02:52:43 +0330 Subject: [PATCH] added sort to menu items --- app/Http/Controllers/Admin/MenuController.php | 17 +++++++++ app/Models/Menu.php | 2 +- .../views/admin/menus/menu-form.blade.php | 38 +++++++++++++++---- .../views/admin/menus/menu-sort.blade.php | 26 +++++++++++++ routes/web.php | 2 + 5 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 resources/views/admin/menus/menu-sort.blade.php diff --git a/app/Http/Controllers/Admin/MenuController.php b/app/Http/Controllers/Admin/MenuController.php index 1ee1048..617defe 100644 --- a/app/Http/Controllers/Admin/MenuController.php +++ b/app/Http/Controllers/Admin/MenuController.php @@ -143,5 +143,22 @@ class MenuController extends XController { return parent::restoreing(Menu::withTrashed()->where('id', $item)->first()); } + + public function sort(Menu $item){ + return view('admin.menus.menu-sort', compact('item')); + } + + + public function sortSave(Request $request){ + foreach ($request->input('items') as $key => $v){ + + $p = Item::whereId($v['id'])->first(); + $p->sort = $key; + $p->save(); + } + logAdmin(__METHOD__,__CLASS__,null); + return ['OK' => true,'message' => __("As you wished sort saved")]; + } + /*restore**/ } diff --git a/app/Models/Menu.php b/app/Models/Menu.php index d062c2a..79ecf7e 100644 --- a/app/Models/Menu.php +++ b/app/Models/Menu.php @@ -14,6 +14,6 @@ class Menu extends Model Category::class,Clip::class,Gallery::class]; public function items() { - return $this->hasMany(Item::class); + return $this->hasMany(Item::class)->orderBy('sort'); } } diff --git a/resources/views/admin/menus/menu-form.blade.php b/resources/views/admin/menus/menu-form.blade.php index a7e0c7e..7962305 100644 --- a/resources/views/admin/menus/menu-form.blade.php +++ b/resources/views/admin/menus/menu-form.blade.php @@ -29,6 +29,30 @@ @endif + @if(isset($item)) + +
+

+ + {{__("Preview")}} +

+
+
    + @foreach($item->items as $i) +
  • + {{$i->title}} +
  • + @endforeach +
+
+ +
+ @endif
@@ -66,13 +90,13 @@

{{__("Menu items")}}

- + @endif
diff --git a/resources/views/admin/menus/menu-sort.blade.php b/resources/views/admin/menus/menu-sort.blade.php new file mode 100644 index 0000000..2f7e7e1 --- /dev/null +++ b/resources/views/admin/menus/menu-sort.blade.php @@ -0,0 +1,26 @@ +@extends('layouts.app') + +@section('content') +
+
    + @foreach($item->items as $i) +
  1. + + {{$i->title}} +
  2. + @endforeach +
+
+ + +@endsection diff --git a/routes/web.php b/routes/web.php index 4c6b965..568684b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -213,6 +213,8 @@ Route::prefix(config('app.panel.prefix'))->name('admin.')->group( Route::get('restore/{item}', [\App\Http\Controllers\Admin\MenuController::class, 'restore'])->name('restore'); Route::post('bulk', [\App\Http\Controllers\Admin\MenuController::class, "bulk"])->name('bulk'); Route::get('trashed', [\App\Http\Controllers\Admin\MenuController::class, "trashed"])->name('trashed'); + Route::post('sort/save', [\App\Http\Controllers\Admin\MenuController::class, 'sortSave'])->name('sort-save'); + Route::get('sort/{item}', [\App\Http\Controllers\Admin\MenuController::class, 'sort'])->name('sort'); }); Route::prefix('states')->name('state.')->group( function () {