Skip to content

Commit bf7ae98

Browse files
authored
Merge pull request #78 from bvipul/vs_menu_module
Added Menu Module
2 parents 80d990d + 22f69a7 commit bf7ae98

31 files changed

+1273
-6
lines changed

app/Http/Breadcrumbs/Backend/Backend.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
require __DIR__.'/Blog_Tag.php';
1616
require __DIR__.'/Blog_Management.php';
1717
require __DIR__.'/Faqs.php';
18+
require __DIR__.'/Menu.php';
1819
require __DIR__.'/LogViewer.php';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
Breadcrumbs::register('admin.menus.index', function ($breadcrumbs) {
4+
$breadcrumbs->parent('admin.dashboard');
5+
$breadcrumbs->push(trans('menus.backend.menus.management'), route('admin.menus.index'));
6+
});
7+
8+
Breadcrumbs::register('admin.menus.create', function ($breadcrumbs) {
9+
$breadcrumbs->parent('admin.menus.index');
10+
$breadcrumbs->push(trans('menus.backend.menus.create'), route('admin.menus.create'));
11+
});
12+
13+
Breadcrumbs::register('admin.menus.edit', function ($breadcrumbs, $id) {
14+
$breadcrumbs->parent('admin.menus.index');
15+
$breadcrumbs->push(trans('menus.backend.menus.edit'), route('admin.menus.edit', $id));
16+
});
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Backend\Menu;
4+
5+
use App\Models\Menu\Menu;
6+
use Illuminate\Http\Request;
7+
use App\Http\Controllers\Controller;
8+
use App\Repositories\Backend\Menu\MenuRepository;
9+
use App\Http\Requests\Backend\Menu\StoreMenuRequest;
10+
use App\Http\Requests\Backend\Menu\ManageMenuRequest;
11+
use App\Http\Requests\Backend\Menu\CreateMenuRequest;
12+
use App\Http\Requests\Backend\Menu\EditMenuRequest;
13+
use App\Http\Requests\Backend\Menu\DeleteMenuRequest;
14+
use App\Http\Requests\Backend\Menu\UpdateMenuRequest;
15+
use Illuminate\Support\Facades\DB;
16+
17+
class MenuController extends Controller
18+
{
19+
protected $menu;
20+
21+
/**
22+
* @param \App\Repositories\Backend\Menu\MenuRepository $menu
23+
*/
24+
public function __construct(MenuRepository $menu)
25+
{
26+
$this->menu = $menu;
27+
}
28+
29+
/**
30+
* Display a listing of the resource.
31+
* @param \App\Http\Requests\Backend\Menu\ManageMenuRequest $request
32+
*
33+
* @return \Illuminate\Http\Response
34+
*/
35+
public function index(ManageMenuRequest $request)
36+
{
37+
return view('backend.menus.index');
38+
}
39+
40+
/**
41+
* Show the form for creating a new resource.
42+
* @param \App\Http\Requests\Backend\Menu\CreateMenuRequest $request
43+
*
44+
* @return \Illuminate\Http\Response
45+
*/
46+
public function create(CreateMenuRequest $request)
47+
{
48+
$types = [
49+
"backend" => "Backend",
50+
"frontend" => "Frontend"
51+
];
52+
$modules = DB::table('modules')->get();
53+
return view('backend.menus.create')->withTypes($types)->withModules($modules);
54+
}
55+
56+
/**
57+
* Store a newly created resource in storage.
58+
* @param \App\Http\Requests\Backend\Menu\StoreMenuRequest $request
59+
*
60+
* @return \Illuminate\Http\Response
61+
*/
62+
public function store(StoreMenuRequest $request)
63+
{
64+
$this->menu->create($request->except('_token'));
65+
66+
return redirect()->route('admin.menus.index')->withFlashSuccess(trans('alerts.backend.menus.created'));
67+
}
68+
69+
/**
70+
* Show the form for editing the specified resource.
71+
* @param \App\Models\Menu\Menu $menu
72+
* @param \App\Http\Requests\Backend\Menu\EditMenuRequest $request
73+
* @return \Illuminate\Http\Response
74+
*/
75+
public function edit(Menu $menu, EditMenuRequest $request)
76+
{
77+
$types = [
78+
"backend" => "Backend",
79+
"frontend" => "Frontend"
80+
];
81+
82+
$modules = DB::table('modules')->get();
83+
84+
return view('backend.menus.edit')
85+
->with('types', $types)
86+
->with('menu', $menu)
87+
->with('modules', $modules);
88+
}
89+
90+
/**
91+
* Update the specified resource in storage.
92+
*
93+
* @param \App\Models\Menu\Menu $menu
94+
* @param \App\Http\Requests\Backend\Menu\UpdateMenuRequest $request
95+
*
96+
* @return \Illuminate\Http\Response
97+
*/
98+
public function update(Menu $menu, UpdateMenuRequest $request)
99+
{
100+
$this->menu->update($menu, $request->all());
101+
102+
return redirect()
103+
->route('admin.menus.index')
104+
->with('flash_success', trans('alerts.backend.menus.updated'));
105+
}
106+
107+
/**
108+
* Remove the specified resource from storage.
109+
* @param \App\Models\Menu\Menu $menu
110+
* @param \App\Http\Requests\Backend\Menu\DeleteMenuRequest $request
111+
* @return \Illuminate\Http\Response
112+
*/
113+
public function destroy(Menu $menu, DeleteMenuRequest $request)
114+
{
115+
$this->menu->delete($menu);
116+
117+
return redirect()
118+
->route('admin.menus.index')
119+
->with('flash_success', trans('alerts.backend.menus.deleted'));
120+
}
121+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Backend\Menu;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Http\Requests\Backend\Menu\CreateMenuRequest;
7+
8+
class MenuFormController extends Controller
9+
{
10+
/**
11+
* Get the form for modal popup.
12+
* @param string $formName
13+
* @param \App\Http\Requests\Backend\Menu\CreateMenuRequest
14+
*
15+
* @return \Illuminate\Http\Response
16+
*/
17+
public function create($formName, CreateMenuRequest $request)
18+
{
19+
if(in_array($formName, ['_add_custom_url_form']))
20+
{
21+
return view('backend.menus.'.$formName);
22+
}
23+
return abort(404);
24+
}
25+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Backend\Menu;
4+
5+
use Illuminate\Http\Request;
6+
use App\Http\Controllers\Controller;
7+
use Yajra\DataTables\Facades\DataTables;
8+
use App\Repositories\Backend\Menu\MenuRepository;
9+
use App\Http\Requests\Backend\Menu\ManageMenuRequest;
10+
use Carbon\Carbon;
11+
12+
/**
13+
* Class MenuTableController.
14+
*/
15+
class MenuTableController extends Controller
16+
{
17+
protected $menus;
18+
19+
/**
20+
* @param \App\Repositories\Backend\Menu\MenuRepository $menus
21+
*/
22+
public function __construct(MenuRepository $menus)
23+
{
24+
$this->menus = $menus;
25+
}
26+
27+
/**
28+
* @param \App\Http\Requests\Backend\Menu\ManageMenuRequest $request
29+
*
30+
* @return mixed
31+
*/
32+
public function __invoke(ManageMenuRequest $request)
33+
{
34+
return Datatables::of($this->menus->getForDataTable())
35+
->escapeColumns(['name'])
36+
->addColumn('type', function ($menus) {
37+
return ucwords($menus->type);
38+
})
39+
->addColumn('created_at', function ($menus) {
40+
return Carbon::parse($menus->created_at)->toDateTimeString();
41+
})
42+
->addColumn('updated_at', function ($menus) {
43+
return Carbon::parse($menus->updated_at)->toDateTimeString();
44+
})
45+
->addColumn('actions', function ($menus) {
46+
return $menus->action_buttons;
47+
})
48+
->make(true);
49+
}
50+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Backend\Menu;
4+
5+
use App\Http\Requests\Request;
6+
7+
/**
8+
* Class CreateMenuRequest
9+
*/
10+
class CreateMenuRequest extends Request
11+
{
12+
/**
13+
* Determine if the user is authorized to make this request.
14+
*
15+
* @return bool
16+
*/
17+
public function authorize()
18+
{
19+
return access()->allow('create-menu');
20+
}
21+
22+
/**
23+
* Get the validation rules that apply to the request.
24+
*
25+
* @return array
26+
*/
27+
public function rules()
28+
{
29+
return [
30+
//
31+
];
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Backend\Menu;
4+
5+
use App\Http\Requests\Request;
6+
7+
/**
8+
* Class DeleteMenuRequest
9+
*/
10+
class DeleteMenuRequest extends Request
11+
{
12+
/**
13+
* Determine if the user is authorized to make this request.
14+
*
15+
* @return bool
16+
*/
17+
public function authorize()
18+
{
19+
return access()->allow('delete-menu');
20+
}
21+
22+
/**
23+
* Get the validation rules that apply to the request.
24+
*
25+
* @return array
26+
*/
27+
public function rules()
28+
{
29+
return [
30+
//
31+
];
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Backend\Menu;
4+
5+
use App\Http\Requests\Request;
6+
7+
/**
8+
* Class EditMenuRequest
9+
*/
10+
class EditMenuRequest extends Request
11+
{
12+
/**
13+
* Determine if the user is authorized to make this request.
14+
*
15+
* @return bool
16+
*/
17+
public function authorize()
18+
{
19+
return access()->allow('edit-menu');
20+
}
21+
22+
/**
23+
* Get the validation rules that apply to the request.
24+
*
25+
* @return array
26+
*/
27+
public function rules()
28+
{
29+
return [
30+
//
31+
];
32+
}
33+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Backend\Menu;
4+
5+
use App\Http\Requests\Request;
6+
7+
/**
8+
* Class ManageMenuRequest.
9+
*/
10+
class ManageMenuRequest extends Request
11+
{
12+
/**
13+
* Determine if the user is authorized to make this request.
14+
*
15+
* @return bool
16+
*/
17+
public function authorize()
18+
{
19+
return access()->allow('view-menu');
20+
}
21+
22+
/**
23+
* Get the validation rules that apply to the request.
24+
*
25+
* @return array
26+
*/
27+
public function rules()
28+
{
29+
return [
30+
//
31+
];
32+
}
33+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
namespace App\Http\Requests\Backend\Menu;
4+
5+
use App\Http\Requests\Request;
6+
7+
/**
8+
* Class StoreMenuRequest.
9+
*/
10+
class StoreMenuRequest extends Request
11+
{
12+
/**
13+
* Determine if the user is authorized to make this request.
14+
*
15+
* @return bool
16+
*/
17+
public function authorize()
18+
{
19+
return access()->allow('create-menu');
20+
}
21+
22+
/**
23+
* Get the validation rules that apply to the request.
24+
*
25+
* @return array
26+
*/
27+
public function rules()
28+
{
29+
return [
30+
'name' => 'required',
31+
'type' => 'required',
32+
];
33+
}
34+
}

0 commit comments

Comments
 (0)