Skip to content

Commit d87452f

Browse files
committed
feat: Add BREAD system
1 parent 654ee81 commit d87452f

Some content is hidden

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

42 files changed

+3135
-51
lines changed
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Illuminate\Http\Request;
6+
use Illuminate\Support\Facades\DB;
7+
use App\Services\FormService;
8+
use App\Models\Form;
9+
use App\Models\FormField;
10+
use App\Services\RolesService;
11+
12+
class BreadController extends Controller
13+
{
14+
/**
15+
* Display a listing of the resource.
16+
*
17+
* @return \Illuminate\Http\Response
18+
*/
19+
public function index(Request $request)
20+
{
21+
//var_dump(DB::getSchemaBuilder()->getColumnListing('model'));
22+
23+
return view('dashboard.form.index', ['forms' => Form::all()]);
24+
}
25+
26+
27+
/**
28+
* Show the form for creating a new resource.
29+
*
30+
* @return \Illuminate\Http\Response
31+
*/
32+
public function create()
33+
{
34+
return view('dashboard.form.create');
35+
}
36+
37+
/**
38+
* Store a newly created resource in storage.
39+
*
40+
* @param \Illuminate\Http\Request $request
41+
* @return \Illuminate\Http\Response
42+
*/
43+
public function store(Request $request)
44+
{
45+
$validatedData = $request->validate([
46+
'model' => 'required|min:1|max:128',
47+
'marker' => 'required'
48+
]);
49+
$formService = new FormService();
50+
if($request->has('marker') && $request->input('marker') === 'selectModel'){
51+
$model = DB::getSchemaBuilder()->getColumnListing($request->input('model'));
52+
if(empty($model)){
53+
$request->session()->flash('message', 'Table not detected, or there is no columns in table');
54+
return view('dashboard.form.create');
55+
}else{
56+
$rolesService = new RolesService();
57+
58+
return view('dashboard.form.create2', [
59+
'columns' => $formService->getFormDataByModel( $request->input('model') ),
60+
'options' => $formService->getFormOptions(),
61+
'model' => $request->input('model'),
62+
'roles' => $rolesService->get(),
63+
]);
64+
}
65+
}else{
66+
$validatedData = $request->validate([
67+
'name' => 'required|min:1|max:128',
68+
]);
69+
$formService->addNewForm($request->input('model'), $request->all() );
70+
$request->session()->flash('message', 'Successfully added form');
71+
return redirect()->route('bread.index');
72+
}
73+
}
74+
75+
/**
76+
* Display the specified resource.
77+
*
78+
* @param int $id
79+
* @return \Illuminate\Http\Response
80+
*/
81+
public function show($id)
82+
{
83+
return view('dashboard.form.show', [
84+
'form' => Form::find($id),
85+
'formFields' => FormField::where('form_id', '=', $id)->get(),
86+
]);
87+
}
88+
89+
/**
90+
* Show the form for editing the specified resource.
91+
*
92+
* @param int $id
93+
* @return \Illuminate\Http\Response
94+
*/
95+
public function edit($id)
96+
{
97+
$formService = new FormService();
98+
$rolesService = new RolesService();
99+
return view('dashboard.form.edit', [
100+
'form' => Form::find($id),
101+
'formFields' => FormField::where('form_id', '=', $id)->get(),
102+
'options' => $formService->getFormOptions(),
103+
'roles' => $rolesService->get(),
104+
'formRoles' => $formService->getBreadRoles($id),
105+
]);
106+
}
107+
108+
/**
109+
* Update the specified resource in storage.
110+
*
111+
* @param \Illuminate\Http\Request $request
112+
* @param int $id
113+
* @return \Illuminate\Http\Response
114+
*/
115+
public function update(Request $request, $id)
116+
{
117+
$validatedData = $request->validate([
118+
'name' => 'required|min:1|max:128',
119+
]);
120+
//$model = Models::find($request->input('model'));
121+
$formService = new FormService();
122+
$formService->updateForm($id, $request->all());
123+
$request->session()->flash('message', 'Successfully update form');
124+
return redirect()->route('bread.index');
125+
}
126+
127+
/**
128+
* Remove the specified resource from storage.
129+
*
130+
* @param int $id
131+
* @return \Illuminate\Http\Response
132+
*/
133+
public function destroy($id, Request $request)
134+
{
135+
$form = Form::find($id);
136+
if($request->has('marker')){
137+
$formFields = FormField::where('form_id', '=', $id)->delete();
138+
$form->delete();
139+
$request->session()->flash('message', 'Successfully deleted form: ' . $form->name);
140+
return redirect()->route('bread.index');
141+
}else{
142+
return view('dashboard.form.delete', ['id' => $id, 'formName' => $form->name]);
143+
}
144+
}
145+
}

app/Http/Controllers/MenuElementController.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,15 @@ public function edit(Request $request){
156156
}
157157

158158
public function update(Request $request){
159+
160+
//var_dump( $_POST );
161+
//die();
162+
159163
$validatedData = $request->validate($this->getValidateArray());
164+
165+
//var_dump( $_POST );
166+
//die();
167+
160168
$menus = Menus::where('id', '=', $request->input('id'))->first();
161169
$menus->slug = $request->input('type');
162170
$menus->menu_id = $request->input('menu');
@@ -174,11 +182,13 @@ public function update(Request $request){
174182
}
175183
$menus->save();
176184
Menurole::where('menus_id', '=', $request->input('id'))->delete();
177-
foreach($request->input('role') as $role){
178-
$menuRole = new Menurole();
179-
$menuRole->role_name = $role;
180-
$menuRole->menus_id = $request->input('id');
181-
$menuRole->save();
185+
if($request->has('role')){
186+
foreach($request->input('role') as $role){
187+
$menuRole = new Menurole();
188+
$menuRole->role_name = $role;
189+
$menuRole->menus_id = $request->input('id');
190+
$menuRole->save();
191+
}
182192
}
183193
$request->session()->flash('message', 'Successfully update menu element');
184194
return redirect()->route('menu.edit', ['id'=>$request->input('id')]);

0 commit comments

Comments
 (0)