4
4
5
5
use App \Http \Controllers \Controller ;
6
6
use ctf0 \SimpleMenu \Models \Menu ;
7
+ use ctf0 \SimpleMenu \Models \Page ;
7
8
use Illuminate \Http \Request ;
9
+ use Illuminate \Support \Facades \DB ;
8
10
9
11
class MenusController extends Controller
10
12
{
11
13
/**
12
- * Display a listing of Permission .
14
+ * Display a listing of Menu .
13
15
*
14
16
* @return \Illuminate\Http\Response
15
17
*/
@@ -21,7 +23,7 @@ public function index()
21
23
}
22
24
23
25
/**
24
- * Show the form for creating new Permission .
26
+ * Show the form for creating new Menu .
25
27
*
26
28
* @return \Illuminate\Http\Response
27
29
*/
@@ -31,7 +33,7 @@ public function create()
31
33
}
32
34
33
35
/**
34
- * Store a newly created Permission in storage.
36
+ * Store a newly created Menu in storage.
35
37
*
36
38
* @param \App\Http\Requests\StoreMenusRequest $request
37
39
*
@@ -49,21 +51,21 @@ public function store(Request $request)
49
51
}
50
52
51
53
/**
52
- * Show the form for editing Permission .
54
+ * Show the form for editing Menu .
53
55
*
54
56
* @param int $id
55
57
*
56
58
* @return \Illuminate\Http\Response
57
59
*/
58
60
public function edit ($ id )
59
61
{
60
- $ menu = Menu::findOrFail ($ id );
62
+ $ menu = Menu::findOrFail ($ id );
61
63
62
64
return view ('SimpleMenu::pages. ' .config ('simpleMenu.framework ' ).'.menus.edit ' , compact ('menu ' ));
63
65
}
64
66
65
67
/**
66
- * Update Permission in storage.
68
+ * Update Menu in storage.
67
69
*
68
70
* @param \App\Http\Requests\UpdateMenusRequest $request
69
71
* @param int $id
@@ -76,13 +78,21 @@ public function update(Request $request, $id)
76
78
'name ' => 'required|unique:menus,name, ' .$ id ,
77
79
]);
78
80
79
- Menu::findOrFail ($ id )->update ($ request ->all ());
81
+ // update menu pages order
82
+ foreach (json_decode ($ request ->saveList ) as $ item ) {
83
+ DB ::table ('menu_page ' )->where ('page_id ' , $ item ->id )->update (['order ' =>$ item ->order ]);
84
+ }
80
85
81
- return redirect ()->route ('admin.menus.index ' );
86
+ Menu::findOrFail ($ id )->update ($ request ->except ('saveList ' ));
87
+
88
+ // todo
89
+ // page nest list
90
+
91
+ return back ();
82
92
}
83
93
84
94
/**
85
- * Remove Permission from storage.
95
+ * Remove Menu from storage.
86
96
*
87
97
* @param int $id
88
98
*
@@ -94,4 +104,36 @@ public function destroy($id)
94
104
95
105
return redirect ()->route ('admin.menus.index ' );
96
106
}
107
+
108
+ /* helpers */
109
+
110
+ /**
111
+ * remove page from menu with ajax.
112
+ *
113
+ * @param [type] $id [description]
114
+ * @param Request $request [description]
115
+ *
116
+ * @return [type] [description]
117
+ */
118
+ public function removePage ($ id , Request $ request )
119
+ {
120
+ if (Menu::find ($ id )->pages ()->detach ($ request ->page_id )) {
121
+ Menu::find ($ id )->touch ();
122
+ return response ()->json (['done ' =>true ]);
123
+ }
124
+ }
125
+
126
+ /**
127
+ * get all menu pages for sorting with vuejs.
128
+ *
129
+ * @param Menu $id [description]
130
+ *
131
+ * @return [type] [description]
132
+ */
133
+ public function getPages (Menu $ id )
134
+ {
135
+ $ pages = $ id ->pages ()->orderBy ('pivot_order ' , 'asc ' )->where ('url-> ' .app ()->getLocale (), '!= ' , '' )->get ();
136
+
137
+ return response ()->json (['data ' => $ pages ]);
138
+ }
97
139
}
0 commit comments