Skip to content

Commit 1715ec1

Browse files
authored
Merge pull request #9 from balajidharma/1.x-Changes
inertiajs upgrade to 1.0
2 parents be328c5 + 69a4cad commit 1715ec1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+860
-55
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Admin;
4+
5+
use App\Http\Controllers\Controller;
6+
use BalajiDharma\LaravelMenu\Models\Menu;
7+
use BalajiDharma\LaravelAdminCore\Requests\StoreMenuRequest;
8+
use BalajiDharma\LaravelAdminCore\Requests\UpdateMenuRequest;
9+
use Illuminate\Support\Facades\Auth;
10+
use Inertia\Inertia;
11+
12+
class MenuController extends Controller
13+
{
14+
public function __construct()
15+
{
16+
$this->middleware('can:menu list', ['only' => ['index']]);
17+
$this->middleware('can:menu create', ['only' => ['create', 'store']]);
18+
$this->middleware('can:menu edit', ['only' => ['edit', 'update']]);
19+
$this->middleware('can:menu delete', ['only' => ['destroy']]);
20+
}
21+
22+
/**
23+
* Display a listing of the resource.
24+
*
25+
* @return \Inertia\Response
26+
*/
27+
public function index()
28+
{
29+
$menus = (new Menu)->newQuery();
30+
31+
if (request()->has('search')) {
32+
$menus->where('name', 'Like', '%'.request()->input('search').'%');
33+
}
34+
35+
if (request()->query('sort')) {
36+
$attribute = request()->query('sort');
37+
$sort_order = 'ASC';
38+
if (strncmp($attribute, '-', 1) === 0) {
39+
$sort_order = 'DESC';
40+
$attribute = substr($attribute, 1);
41+
}
42+
$menus->orderBy($attribute, $sort_order);
43+
} else {
44+
$menus->latest();
45+
}
46+
47+
$menus = $menus->paginate(5)->onEachSide(2)->appends(request()->query());
48+
49+
return Inertia::render('Admin/Menu/Index', [
50+
'menus' => $menus,
51+
'filters' => request()->all('search'),
52+
'can' => [
53+
'create' => Auth::user()->can('menu create'),
54+
'edit' => Auth::user()->can('menu edit'),
55+
'delete' => Auth::user()->can('menu delete'),
56+
'manage' => Auth::user()->can('menu.item index'),
57+
]
58+
]);
59+
}
60+
61+
/**
62+
* Show the form for creating a new resource.
63+
*
64+
* @return \Inertia\Response
65+
*/
66+
public function create()
67+
{
68+
return Inertia::render('Admin/Menu/Create');
69+
}
70+
71+
/**
72+
* Store a newly created resource in storage.
73+
*
74+
* @param StoreMenuRequest $request
75+
* @return \Illuminate\Http\RedirectResponse
76+
*/
77+
public function store(StoreMenuRequest $request)
78+
{
79+
Menu::create([
80+
'name' => $request->name,
81+
'machine_name' => $request->machine_name,
82+
'description' => $request->description,
83+
]);
84+
85+
return redirect()->route('menu.index')
86+
->with('message', 'Menu created successfully.');
87+
}
88+
89+
/**
90+
* Show the form for editing the specified resource.
91+
*
92+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
93+
* @return \Inertia\Response
94+
*/
95+
public function edit(Menu $menu)
96+
{
97+
return Inertia::render('Admin/Menu/Edit', [
98+
'menu' => $menu,
99+
]);
100+
}
101+
102+
/**
103+
* Update the specified resource in storage.
104+
*
105+
* @param UpdateMenuRequest $request
106+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
107+
* @return \Illuminate\Http\RedirectResponse
108+
*/
109+
public function update(UpdateMenuRequest $request, Menu $menu)
110+
{
111+
$menu->update($request->all());
112+
113+
return redirect()->route('menu.index')
114+
->with('message', 'Menu updated successfully.');
115+
}
116+
117+
/**
118+
* Remove the specified resource from storage.
119+
*
120+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
121+
* @return \Illuminate\Http\RedirectResponse
122+
*/
123+
public function destroy(Menu $menu)
124+
{
125+
$menu->delete();
126+
127+
return redirect()->route('menu.index')
128+
->with('message', __('Menu deleted successfully'));
129+
}
130+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Admin;
4+
5+
use App\Http\Controllers\Controller;
6+
use BalajiDharma\LaravelAdminCore\Requests\StoreMenuItemRequest;
7+
use BalajiDharma\LaravelAdminCore\Requests\UpdateMenuItemRequest;
8+
use BalajiDharma\LaravelMenu\Models\Menu;
9+
use BalajiDharma\LaravelMenu\Models\MenuItem;
10+
use Illuminate\Support\Facades\Auth;
11+
use Inertia\Inertia;
12+
13+
class MenuItemController extends Controller
14+
{
15+
public function __construct()
16+
{
17+
$this->middleware('can:menu.item list', ['only' => ['index', 'show']]);
18+
$this->middleware('can:menu.item create', ['only' => ['create', 'store']]);
19+
$this->middleware('can:menu.item edit', ['only' => ['edit', 'update']]);
20+
$this->middleware('can:menu.item delete', ['only' => ['destroy']]);
21+
}
22+
23+
/**
24+
* Display a listing of the resource.
25+
*
26+
* @return \Inertia\Response
27+
*/
28+
public function index(Menu $menu)
29+
{
30+
$items = (new MenuItem)->toTree($menu->id);
31+
32+
return Inertia::render('Admin/Menu/Item/Index', [
33+
'menu' => $menu,
34+
'items' => $items,
35+
'can' => [
36+
'create' => Auth::user()->can('menu.item create'),
37+
'edit' => Auth::user()->can('menu.item edit'),
38+
'delete' => Auth::user()->can('menu.item delete'),
39+
]
40+
]);
41+
}
42+
43+
/**
44+
* Show the form for creating a new resource.
45+
*
46+
* @return \Illuminate\View\View
47+
*/
48+
public function create(Menu $menu)
49+
{
50+
$item_options = MenuItem::selectOptions($menu->id);
51+
return view('admin.menu.item.create', compact('menu', 'item_options'));
52+
}
53+
54+
/**
55+
* Store a newly created resource in storage.
56+
*
57+
* @param StoreMenuItemRequest $request
58+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
59+
* @return \Illuminate\Http\RedirectResponse
60+
*/
61+
public function store(StoreMenuItemRequest $request, Menu $menu)
62+
{
63+
$menu->menuItems()->create($request->all());
64+
65+
return redirect()->route('menu.item.index', $menu->id)
66+
->with('message', 'Menu created successfully.');
67+
}
68+
69+
/**
70+
* Show the form for editing the specified resource.
71+
*
72+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
73+
* @return \Illuminate\View\View
74+
*/
75+
public function edit(Menu $menu, MenuItem $item)
76+
{
77+
$item_options = MenuItem::selectOptions($menu->id, $item->parent_id ?? $item->id);
78+
return view('admin.menu.item.edit', compact('menu', 'item', 'item_options'));
79+
}
80+
81+
/**
82+
* Update the specified resource in storage.
83+
*
84+
* @param UpdateMenuItemRequest $request
85+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
86+
* @param \BalajiDharma\LaravelMenu\Models\MenuItem $item
87+
* @return \Illuminate\Http\RedirectResponse
88+
*/
89+
public function update(UpdateMenuItemRequest $request, Menu $menu, MenuItem $item)
90+
{
91+
$item->update($request->all());
92+
93+
return redirect()->route('menu.item.index', $menu->id)
94+
->with('message', 'Menu Item updated successfully.');
95+
}
96+
97+
/**
98+
* Remove the specified resource from storage.
99+
*
100+
* @param \BalajiDharma\LaravelMenu\Models\Menu $menu
101+
* @param \BalajiDharma\LaravelMenu\Models\MenuItem $menuItem
102+
* @return \Illuminate\Http\RedirectResponse
103+
*/
104+
public function destroy(Menu $menu, MenuItem $item)
105+
{
106+
$item->delete();
107+
108+
return redirect()->route('menu.item.index', $menu->id)
109+
->with('message', __('Menu deleted successfully'));
110+
}
111+
}

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
"build": "vite build"
66
},
77
"devDependencies": {
8-
"@inertiajs/inertia": "^0.11.0",
9-
"@inertiajs/inertia-vue3": "^0.6.0",
10-
"@inertiajs/progress": "^0.2.7",
118
"@mdi/js": "^7.0.96",
129
"@tailwindcss/forms": "^0.5.2",
1310
"@tailwindcss/line-clamp": "^0.4.0",
@@ -23,5 +20,8 @@
2320
"tailwindcss": "^3.1.0",
2421
"vite": "^3.0.0",
2522
"vue": "^3.2.31"
23+
},
24+
"dependencies": {
25+
"@inertiajs/vue3": "^1.0.0"
2626
}
2727
}

resources/js/Components/Admin/MenuItemList.vue

Whitespace-only changes.

resources/js/Components/Admin/Pagination.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup>
2-
import { Link } from '@inertiajs/inertia-vue3'
2+
import { Link } from '@inertiajs/vue3'
33
44
defineProps({
55
data: {

resources/js/Components/Admin/Sort.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup>
22
import { ref, computed } from "vue"
3-
import { Link } from "@inertiajs/inertia-vue3"
3+
import { Link } from "@inertiajs/vue3"
44
55
const props = defineProps({
66
label: {

resources/js/Components/AsideMenuItem.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup>
22
import { ref, computed } from 'vue'
3-
import { Link } from '@inertiajs/inertia-vue3'
3+
import { Link } from '@inertiajs/vue3'
44
import { useStyleStore } from '@/Stores/style.js'
55
import { mdiMinus, mdiPlus } from '@mdi/js'
66
import { getButtonColor } from '@/colors.js'

resources/js/Components/AsideMenuLayer.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup>
2-
import { Inertia } from '@inertiajs/inertia'
2+
import { router } from '@inertiajs/vue3'
33
import { mdiLogout, mdiClose } from '@mdi/js'
44
import { computed } from 'vue'
55
import { useLayoutStore } from '@/Stores/layout.js'
@@ -28,7 +28,7 @@ const logoutItem = computed(() => ({
2828
}))
2929
3030
const logoutItemClick = () => {
31-
Inertia.post(route('logout'))
31+
router.post(route('logout'))
3232
}
3333
3434
const menuClick = (event, item) => {

resources/js/Components/BaseButton.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<script setup>
22
import { computed } from 'vue'
3-
import { Link } from '@inertiajs/inertia-vue3'
3+
import { Link } from '@inertiajs/vue3'
44
import { getButtonColor } from '@/colors.js'
55
import BaseIcon from '@/Components/BaseIcon.vue'
66

resources/js/Components/DropdownLink.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup>
2-
import { Link } from '@inertiajs/inertia-vue3';
2+
import { Link } from '@inertiajs/vue3';
33
</script>
44

55
<template>

0 commit comments

Comments
 (0)