|
1
|
|
|
<?php namespace crocodicstudio\crudbooster\controllers; |
|
2
|
|
|
|
|
3
|
|
|
use CRUDBooster; |
|
|
|
|
|
|
4
|
|
|
use Illuminate\Support\Facades\DB; |
|
5
|
|
|
use Illuminate\Support\Facades\Excel; |
|
|
|
|
|
|
6
|
|
|
use Illuminate\Support\Facades\PDF; |
|
|
|
|
|
|
7
|
|
|
use Illuminate\Support\Facades\Request; |
|
8
|
|
|
use Illuminate\Support\Facades\Session; |
|
9
|
|
|
use crocodicstudio\crudbooster\fonts\Fontawesome; |
|
10
|
|
|
|
|
11
|
|
|
class ModulsController extends CBController |
|
12
|
|
|
{ |
|
13
|
|
|
public function cbInit() |
|
14
|
|
|
{ |
|
15
|
|
|
$this->table = 'cms_moduls'; |
|
16
|
|
|
$this->primary_key = 'id'; |
|
17
|
|
|
$this->title_field = "name"; |
|
18
|
|
|
$this->limit = 100; |
|
19
|
|
|
$this->button_add = false; |
|
20
|
|
|
$this->button_export = false; |
|
21
|
|
|
$this->button_import = false; |
|
22
|
|
|
$this->button_filter = false; |
|
23
|
|
|
$this->button_detail = false; |
|
24
|
|
|
$this->button_bulk_action = false; |
|
25
|
|
|
$this->button_action_style = 'button_icon'; |
|
26
|
|
|
$this->orderby = ['is_protected' => 'asc', 'name' => 'asc']; |
|
27
|
|
|
|
|
28
|
|
|
$this->col = []; |
|
29
|
|
|
$this->col[] = ["label" => "Name", "name" => "name"]; |
|
30
|
|
|
$this->col[] = ["label" => "Table", "name" => "table_name"]; |
|
31
|
|
|
$this->col[] = ["label" => "Path", "name" => "path"]; |
|
32
|
|
|
$this->col[] = ["label" => "Controller", "name" => "controller"]; |
|
33
|
|
|
$this->col[] = ["label" => "Protected", "name" => "is_protected", "visible" => false]; |
|
34
|
|
|
|
|
35
|
|
|
$this->form = []; |
|
36
|
|
|
$this->form[] = ["label" => "Name", "name" => "name", "placeholder" => "Module name here", 'required' => true]; |
|
37
|
|
|
|
|
38
|
|
|
$tables = CRUDBooster::listTables(); |
|
39
|
|
|
$tables_list = []; |
|
40
|
|
|
foreach ($tables as $tab) { |
|
41
|
|
|
foreach ($tab as $key => $value) { |
|
42
|
|
|
$label = $value; |
|
43
|
|
|
|
|
44
|
|
|
if (substr($value, 0, 4) == 'cms_') { |
|
45
|
|
|
continue; |
|
46
|
|
|
} |
|
47
|
|
|
|
|
48
|
|
|
$tables_list[] = $value."|".$label; |
|
49
|
|
|
} |
|
50
|
|
|
} |
|
51
|
|
|
foreach ($tables as $tab) { |
|
52
|
|
|
foreach ($tab as $key => $value) { |
|
53
|
|
|
$label = "[Default] ".$value; |
|
54
|
|
|
if (substr($value, 0, 4) == 'cms_') { |
|
55
|
|
|
$tables_list[] = $value."|".$label; |
|
56
|
|
|
} |
|
57
|
|
|
} |
|
58
|
|
|
} |
|
59
|
|
|
|
|
60
|
|
|
$this->form[] = ["label" => "Table Name", "name" => "table_name", "type" => "select2", "dataenum" => $tables_list, 'required' => true]; |
|
61
|
|
|
|
|
62
|
|
|
$fontawesome = Fontawesome::getIcons(); |
|
63
|
|
|
|
|
64
|
|
|
$row = CRUDBooster::first($this->table, CRUDBooster::getCurrentId()); |
|
65
|
|
|
$custom = view('crudbooster::components.list_icon', compact('fontawesome', 'row'))->render(); |
|
66
|
|
|
$this->form[] = ['label' => 'Icon', 'name' => 'icon', 'type' => 'custom', 'html' => $custom, 'required' => true]; |
|
67
|
|
|
|
|
68
|
|
|
$this->script_js = " |
|
69
|
|
|
$(function() { |
|
70
|
|
|
$('#table_name').change(function() { |
|
71
|
|
|
var v = $(this).val(); |
|
72
|
|
|
$('#path').val(v); |
|
73
|
|
|
}) |
|
74
|
|
|
}) |
|
75
|
|
|
"; |
|
76
|
|
|
|
|
77
|
|
|
$this->form[] = ["label" => "Path", "name" => "path", "required" => true, 'placeholder' => 'Optional']; |
|
78
|
|
|
$this->form[] = ["label" => "Controller", "name" => "controller", "type" => "text", "placeholder" => "(Optional) Auto Generated"]; |
|
79
|
|
|
|
|
80
|
|
|
if (CRUDBooster::getCurrentMethod() == 'getAdd' || CRUDBooster::getCurrentMethod() == 'postAddSave') { |
|
81
|
|
|
|
|
82
|
|
|
$this->form[] = [ |
|
83
|
|
|
"label" => "Global Privilege", |
|
84
|
|
|
"name" => "global_privilege", |
|
85
|
|
|
"type" => "radio", |
|
86
|
|
|
"dataenum" => ['0|No', '1|Yes'], |
|
87
|
|
|
'value' => 0, |
|
88
|
|
|
'help' => 'Global Privilege allows you to make the module to be accessible by all privileges', |
|
89
|
|
|
'exception' => true, |
|
90
|
|
|
]; |
|
91
|
|
|
|
|
92
|
|
|
$this->form[] = [ |
|
93
|
|
|
"label" => "Button Action Style", |
|
94
|
|
|
"name" => "button_action_style", |
|
95
|
|
|
"type" => "radio", |
|
96
|
|
|
"dataenum" => ['button_icon', 'button_icon_text', 'button_text', 'dropdown'], |
|
97
|
|
|
'value' => 'button_icon', |
|
98
|
|
|
'exception' => true, |
|
99
|
|
|
]; |
|
100
|
|
|
$this->form[] = [ |
|
101
|
|
|
"label" => "Button Table Action", |
|
102
|
|
|
"name" => "button_table_action", |
|
103
|
|
|
"type" => "radio", |
|
104
|
|
|
"dataenum" => ['Yes', 'No'], |
|
105
|
|
|
'value' => 'Yes', |
|
106
|
|
|
'exception' => true, |
|
107
|
|
|
]; |
|
108
|
|
|
$this->form[] = [ |
|
109
|
|
|
"label" => "Button Add", |
|
110
|
|
|
"name" => "button_add", |
|
111
|
|
|
"type" => "radio", |
|
112
|
|
|
"dataenum" => ['Yes', 'No'], |
|
113
|
|
|
'value' => 'Yes', |
|
114
|
|
|
'exception' => true, |
|
115
|
|
|
]; |
|
116
|
|
|
$this->form[] = [ |
|
117
|
|
|
"label" => "Button Delete", |
|
118
|
|
|
"name" => "button_delete", |
|
119
|
|
|
"type" => "radio", |
|
120
|
|
|
"dataenum" => ['Yes', 'No'], |
|
121
|
|
|
'value' => 'Yes', |
|
122
|
|
|
'exception' => true, |
|
123
|
|
|
]; |
|
124
|
|
|
$this->form[] = [ |
|
125
|
|
|
"label" => "Button Edit", |
|
126
|
|
|
"name" => "button_edit", |
|
127
|
|
|
"type" => "radio", |
|
128
|
|
|
"dataenum" => ['Yes', 'No'], |
|
129
|
|
|
'value' => 'Yes', |
|
130
|
|
|
'exception' => true, |
|
131
|
|
|
]; |
|
132
|
|
|
$this->form[] = [ |
|
133
|
|
|
"label" => "Button Detail", |
|
134
|
|
|
"name" => "button_detail", |
|
135
|
|
|
"type" => "radio", |
|
136
|
|
|
"dataenum" => ['Yes', 'No'], |
|
137
|
|
|
'value' => 'Yes', |
|
138
|
|
|
'exception' => true, |
|
139
|
|
|
]; |
|
140
|
|
|
$this->form[] = [ |
|
141
|
|
|
"label" => "Button Show", |
|
142
|
|
|
"name" => "button_show", |
|
143
|
|
|
"type" => "radio", |
|
144
|
|
|
"dataenum" => ['Yes', 'No'], |
|
145
|
|
|
'value' => 'Yes', |
|
146
|
|
|
'exception' => true, |
|
147
|
|
|
]; |
|
148
|
|
|
$this->form[] = [ |
|
149
|
|
|
"label" => "Button Filter", |
|
150
|
|
|
"name" => "button_filter", |
|
151
|
|
|
"type" => "radio", |
|
152
|
|
|
"dataenum" => ['Yes', 'No'], |
|
153
|
|
|
'value' => 'Yes', |
|
154
|
|
|
'exception' => true, |
|
155
|
|
|
]; |
|
156
|
|
|
$this->form[] = [ |
|
157
|
|
|
"label" => "Button Export", |
|
158
|
|
|
"name" => "button_export", |
|
159
|
|
|
"type" => "radio", |
|
160
|
|
|
"dataenum" => ['Yes', 'No'], |
|
161
|
|
|
'value' => 'No', |
|
162
|
|
|
'exception' => true, |
|
163
|
|
|
]; |
|
164
|
|
|
$this->form[] = [ |
|
165
|
|
|
"label" => "Button Import", |
|
166
|
|
|
"name" => "button_import", |
|
167
|
|
|
"type" => "radio", |
|
168
|
|
|
"dataenum" => ['Yes', 'No'], |
|
169
|
|
|
'value' => 'No', |
|
170
|
|
|
'exception' => true, |
|
171
|
|
|
]; |
|
172
|
|
|
} |
|
173
|
|
|
|
|
174
|
|
|
$this->addaction[] = [ |
|
175
|
|
|
'label' => 'Module Wizard', |
|
176
|
|
|
'icon' => 'fa fa-wrench', |
|
177
|
|
|
'url' => CRUDBooster::mainpath('step1').'/[id]', |
|
178
|
|
|
"showIf" => "[is_protected] == 0", |
|
179
|
|
|
]; |
|
180
|
|
|
|
|
181
|
|
|
$this->index_button[] = ['label' => 'Generate New Module', 'icon' => 'fa fa-plus', 'url' => CRUDBooster::mainpath('step1'), 'color' => 'success']; |
|
182
|
|
|
} |
|
183
|
|
|
|
|
184
|
|
|
function hook_query_index(&$query) |
|
|
|
|
|
|
185
|
|
|
{ |
|
186
|
|
|
$query->where('is_protected', 0); |
|
187
|
|
|
$query->whereNotIn('cms_moduls.controller', ['AdminCmsUsersController']); |
|
188
|
|
|
} |
|
189
|
|
|
|
|
190
|
|
|
function hook_before_delete($id) |
|
|
|
|
|
|
191
|
|
|
{ |
|
192
|
|
|
$modul = DB::table('cms_moduls')->where('id', $id)->first(); |
|
193
|
|
|
$menus = DB::table('cms_menus')->where('path', 'like', '%'.$modul->controller.'%')->delete(); |
|
|
|
|
|
|
194
|
|
|
@unlink(app_path('Http/Controllers/'.$modul->controller.'.php')); |
|
|
|
|
|
|
195
|
|
|
} |
|
196
|
|
|
|
|
197
|
|
|
public function getTableColumns($table) |
|
198
|
|
|
{ |
|
199
|
|
|
$columns = CRUDBooster::getTableColumns($table); |
|
200
|
|
|
|
|
201
|
|
|
return response()->json($columns); |
|
202
|
|
|
} |
|
203
|
|
|
|
|
204
|
|
|
public function getCheckSlug($slug) |
|
205
|
|
|
{ |
|
206
|
|
|
$check = DB::table('cms_moduls')->where('path', $slug)->count(); |
|
207
|
|
|
$lastId = DB::table('cms_moduls')->max('id') + 1; |
|
208
|
|
|
|
|
209
|
|
|
return response()->json(['total' => $check, 'lastid' => $lastId]); |
|
210
|
|
|
} |
|
211
|
|
|
|
|
212
|
|
|
public function getAdd() |
|
213
|
|
|
{ |
|
214
|
|
|
$this->cbLoader(); |
|
215
|
|
|
|
|
216
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
217
|
|
|
|
|
218
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
219
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
220
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
221
|
|
|
} |
|
222
|
|
|
|
|
223
|
|
|
return redirect()->route("ModulsControllerGetStep1"); |
|
224
|
|
|
} |
|
225
|
|
|
|
|
226
|
|
|
public function getStep1($id = 0) |
|
227
|
|
|
{ |
|
228
|
|
|
$this->cbLoader(); |
|
229
|
|
|
|
|
230
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
231
|
|
|
|
|
232
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
233
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
234
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
235
|
|
|
} |
|
236
|
|
|
|
|
237
|
|
|
$tables = CRUDBooster::listTables(); |
|
238
|
|
|
$tables_list = []; |
|
239
|
|
|
foreach ($tables as $tab) { |
|
240
|
|
|
foreach ($tab as $key => $value) { |
|
241
|
|
|
$label = $value; |
|
242
|
|
|
|
|
243
|
|
|
if (substr($label, 0, 4) == 'cms_' && $label != config('crudbooster.USER_TABLE')) { |
|
244
|
|
|
continue; |
|
245
|
|
|
} |
|
246
|
|
|
if ($label == 'migrations') { |
|
247
|
|
|
continue; |
|
248
|
|
|
} |
|
249
|
|
|
|
|
250
|
|
|
$tables_list[] = $value; |
|
251
|
|
|
} |
|
252
|
|
|
} |
|
253
|
|
|
|
|
254
|
|
|
$fontawesome = Fontawesome::getIcons(); |
|
255
|
|
|
|
|
256
|
|
|
$row = CRUDBooster::first($this->table, ['id' => $id]); |
|
257
|
|
|
|
|
258
|
|
|
return view("crudbooster::module_generator.step1", compact("tables_list", "fontawesome", "row", "id")); |
|
259
|
|
|
} |
|
260
|
|
|
|
|
261
|
|
|
public function getStep2($id) |
|
262
|
|
|
{ |
|
263
|
|
|
$this->cbLoader(); |
|
264
|
|
|
|
|
265
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
266
|
|
|
|
|
267
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
268
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
269
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
270
|
|
|
} |
|
271
|
|
|
|
|
272
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
273
|
|
|
|
|
274
|
|
|
$columns = CRUDBooster::getTableColumns($row->table_name); |
|
275
|
|
|
|
|
276
|
|
|
$tables = CRUDBooster::listTables(); |
|
277
|
|
|
$table_list = []; |
|
278
|
|
|
foreach ($tables as $tab) { |
|
279
|
|
|
foreach ($tab as $key => $value) { |
|
280
|
|
|
$label = $value; |
|
|
|
|
|
|
281
|
|
|
$table_list[] = $value; |
|
282
|
|
|
} |
|
283
|
|
|
} |
|
284
|
|
|
|
|
285
|
|
|
if (file_exists(app_path('Http/Controllers/'.str_replace('.', '', $row->controller).'.php'))) { |
|
286
|
|
|
$response = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
287
|
|
|
$column_datas = extract_unit($response, "# START COLUMNS DO NOT REMOVE THIS LINE", "# END COLUMNS DO NOT REMOVE THIS LINE"); |
|
288
|
|
|
$column_datas = str_replace('$this->', '$cb_', $column_datas); |
|
289
|
|
|
eval($column_datas); |
|
|
|
|
|
|
290
|
|
|
} |
|
291
|
|
|
|
|
292
|
|
|
$data = []; |
|
293
|
|
|
$data['id'] = $id; |
|
294
|
|
|
$data['columns'] = $columns; |
|
295
|
|
|
$data['table_list'] = $table_list; |
|
296
|
|
|
$data['cb_col'] = $cb_col; |
|
|
|
|
|
|
297
|
|
|
|
|
298
|
|
|
return view('crudbooster::module_generator.step2', $data); |
|
299
|
|
|
} |
|
300
|
|
|
|
|
301
|
|
|
public function postStep2() |
|
302
|
|
|
{ |
|
303
|
|
|
$this->cbLoader(); |
|
304
|
|
|
|
|
305
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
306
|
|
|
|
|
307
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
308
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
309
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
310
|
|
|
} |
|
311
|
|
|
|
|
312
|
|
|
$name = Request::get('name'); |
|
313
|
|
|
$table_name = Request::get('table'); |
|
314
|
|
|
$icon = Request::get('icon'); |
|
315
|
|
|
$path = Request::get('path'); |
|
316
|
|
|
|
|
317
|
|
|
if (! Request::get('id')) { |
|
318
|
|
|
|
|
319
|
|
|
if (DB::table('cms_moduls')->where('path', $path)->where('deleted_at', null)->count()) { |
|
320
|
|
|
return redirect()->back()->with(['message' => 'Sorry the slug has already exists, please choose another !', 'message_type' => 'warning']); |
|
321
|
|
|
} |
|
322
|
|
|
|
|
323
|
|
|
$created_at = now(); |
|
324
|
|
|
$id = DB::table($this->table)->max('id') + 1; |
|
325
|
|
|
|
|
326
|
|
|
$controller = CRUDBooster::generateController($table_name, $path); |
|
327
|
|
|
DB::table($this->table)->insert(compact("controller", "name", "table_name", "icon", "path", "created_at", "id")); |
|
328
|
|
|
|
|
329
|
|
|
//Insert Menu |
|
330
|
|
|
if ($controller && Request::get('create_menu')) { |
|
331
|
|
|
$parent_menu_sort = DB::table('cms_menus')->where('parent_id', 0)->max('sorting') + 1; |
|
332
|
|
|
|
|
333
|
|
|
$id_cms_menus = DB::table('cms_menus')->insertGetId([ |
|
334
|
|
|
|
|
335
|
|
|
'created_at' => date('Y-m-d H:i:s'), |
|
336
|
|
|
'name' => $name, |
|
337
|
|
|
'icon' => $icon, |
|
338
|
|
|
'path' => $controller.'GetIndex', |
|
339
|
|
|
'type' => 'Route', |
|
340
|
|
|
'is_active' => 1, |
|
341
|
|
|
'id_cms_privileges' => CRUDBooster::myPrivilegeId(), |
|
342
|
|
|
'sorting' => $parent_menu_sort, |
|
343
|
|
|
'parent_id' => 0, |
|
344
|
|
|
]); |
|
345
|
|
|
DB::table('cms_menus_privileges')->insert(['id_cms_menus' => $id_cms_menus, 'id_cms_privileges' => CRUDBooster::myPrivilegeId()]); |
|
346
|
|
|
} |
|
347
|
|
|
|
|
348
|
|
|
$user_id_privileges = CRUDBooster::myPrivilegeId(); |
|
349
|
|
|
DB::table('cms_privileges_roles')->insert([ |
|
350
|
|
|
'id' => DB::table('cms_privileges_roles')->max('id') + 1, |
|
351
|
|
|
'id_cms_moduls' => $id, |
|
352
|
|
|
'id_cms_privileges' => $user_id_privileges, |
|
353
|
|
|
'is_visible' => 1, |
|
354
|
|
|
'is_create' => 1, |
|
355
|
|
|
'is_read' => 1, |
|
356
|
|
|
'is_edit' => 1, |
|
357
|
|
|
'is_delete' => 1, |
|
358
|
|
|
]); |
|
359
|
|
|
|
|
360
|
|
|
//Refresh Session Roles |
|
361
|
|
|
$roles = DB::table('cms_privileges_roles')->where('id_cms_privileges', CRUDBooster::myPrivilegeId())->join('cms_moduls', 'cms_moduls.id', '=', 'id_cms_moduls')->select('cms_moduls.name', 'cms_moduls.path', 'is_visible', 'is_create', 'is_read', 'is_edit', 'is_delete')->get(); |
|
362
|
|
|
Session::put('admin_privileges_roles', $roles); |
|
363
|
|
|
|
|
364
|
|
|
return redirect(Route("ModulsControllerGetStep2", ["id" => $id])); |
|
365
|
|
|
} else { |
|
366
|
|
|
$id = Request::get('id'); |
|
367
|
|
|
DB::table($this->table)->where('id', $id)->update(compact("name", "table_name", "icon", "path")); |
|
368
|
|
|
|
|
369
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
370
|
|
|
|
|
371
|
|
|
if (file_exists(app_path('Http/Controllers/'.$row->controller.'.php'))) { |
|
372
|
|
|
$response = file_get_contents(app_path('Http/Controllers/'.str_replace('.', '', $row->controller).'.php')); |
|
373
|
|
|
} else { |
|
374
|
|
|
$response = file_get_contents(__DIR__.'/'.str_replace('.', '', $row->controller).'.php'); |
|
375
|
|
|
} |
|
376
|
|
|
|
|
377
|
|
|
if (strpos($response, "# START COLUMNS") !== true) { |
|
378
|
|
|
// return redirect()->back()->with(['message'=>'Sorry, is not possible to edit the module with Module Generator Tool. Prefix and or Suffix tag is missing !','message_type'=>'warning']); |
|
379
|
|
|
} |
|
380
|
|
|
|
|
381
|
|
|
return redirect(Route("ModulsControllerGetStep2", ["id" => $id])); |
|
382
|
|
|
} |
|
383
|
|
|
} |
|
384
|
|
|
|
|
385
|
|
|
public function postStep3() |
|
386
|
|
|
{ |
|
387
|
|
|
$this->cbLoader(); |
|
388
|
|
|
|
|
389
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
390
|
|
|
|
|
391
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
392
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
393
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
394
|
|
|
} |
|
395
|
|
|
|
|
396
|
|
|
$column = Request::input('column'); |
|
397
|
|
|
$name = Request::input('name'); |
|
398
|
|
|
$join_table = Request::input('join_table'); |
|
399
|
|
|
$join_field = Request::input('join_field'); |
|
400
|
|
|
$is_image = Request::input('is_image'); |
|
401
|
|
|
$is_download = Request::input('is_download'); |
|
|
|
|
|
|
402
|
|
|
$callbackphp = Request::input('callbackphp'); |
|
403
|
|
|
$id = Request::input('id'); |
|
404
|
|
|
$width = Request::input('width'); |
|
405
|
|
|
|
|
406
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
407
|
|
|
|
|
408
|
|
|
$i = 0; |
|
409
|
|
|
$script_cols = []; |
|
410
|
|
|
foreach ($column as $col) { |
|
411
|
|
|
|
|
412
|
|
|
if (! $name[$i]) { |
|
413
|
|
|
$i++; |
|
414
|
|
|
continue; |
|
415
|
|
|
} |
|
416
|
|
|
|
|
417
|
|
|
$script_cols[$i] = "\t\t\t".'$this->col[] = ["label"=>"'.$col.'","name"=>"'.$name[$i].'"'; |
|
418
|
|
|
|
|
419
|
|
|
if ($join_table[$i] && $join_field[$i]) { |
|
420
|
|
|
$script_cols[$i] .= ',"join"=>"'.$join_table[$i].','.$join_field[$i].'"'; |
|
421
|
|
|
} |
|
422
|
|
|
|
|
423
|
|
|
if ($is_image[$i]) { |
|
424
|
|
|
$script_cols[$i] .= ',"image"=>true'; |
|
425
|
|
|
} |
|
426
|
|
|
|
|
427
|
|
|
if ($id_download[$i]) { |
|
|
|
|
|
|
428
|
|
|
$script_cols[$i] .= ',"download"=>true'; |
|
429
|
|
|
} |
|
430
|
|
|
|
|
431
|
|
|
if ($width[$i]) { |
|
432
|
|
|
$script_cols[$i] .= ',"width"=>"'.$width[$i].'"'; |
|
433
|
|
|
} |
|
434
|
|
|
|
|
435
|
|
|
if ($callbackphp[$i]) { |
|
436
|
|
|
$script_cols[$i] .= ',"callback_php"=>\''.$callbackphp[$i].'\''; |
|
437
|
|
|
} |
|
438
|
|
|
|
|
439
|
|
|
$script_cols[$i] .= "];"; |
|
440
|
|
|
|
|
441
|
|
|
$i++; |
|
442
|
|
|
} |
|
443
|
|
|
|
|
444
|
|
|
$scripts = implode("\n", $script_cols); |
|
445
|
|
|
$raw = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
446
|
|
|
$raw = explode("# START COLUMNS DO NOT REMOVE THIS LINE", $raw); |
|
447
|
|
|
$rraw = explode("# END COLUMNS DO NOT REMOVE THIS LINE", $raw[1]); |
|
448
|
|
|
|
|
449
|
|
|
$file_controller = trim($raw[0])."\n\n"; |
|
450
|
|
|
$file_controller .= "\t\t\t# START COLUMNS DO NOT REMOVE THIS LINE\n"; |
|
451
|
|
|
$file_controller .= "\t\t\t".'$this->col = [];'."\n"; |
|
452
|
|
|
$file_controller .= $scripts."\n"; |
|
453
|
|
|
$file_controller .= "\t\t\t# END COLUMNS DO NOT REMOVE THIS LINE\n\n"; |
|
454
|
|
|
$file_controller .= "\t\t\t".trim($rraw[1]); |
|
455
|
|
|
|
|
456
|
|
|
file_put_contents(app_path('Http/Controllers/'.$row->controller.'.php'), $file_controller); |
|
457
|
|
|
|
|
458
|
|
|
return redirect(Route("ModulsControllerGetStep3", ["id" => $id])); |
|
459
|
|
|
} |
|
460
|
|
|
|
|
461
|
|
|
public function getStep3($id) |
|
462
|
|
|
{ |
|
463
|
|
|
$this->cbLoader(); |
|
464
|
|
|
|
|
465
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
466
|
|
|
|
|
467
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
468
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
469
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
470
|
|
|
} |
|
471
|
|
|
|
|
472
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
473
|
|
|
|
|
474
|
|
|
$columns = CRUDBooster::getTableColumns($row->table_name); |
|
475
|
|
|
|
|
476
|
|
|
if (file_exists(app_path('Http/Controllers/'.$row->controller.'.php'))) { |
|
477
|
|
|
$response = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
478
|
|
|
$column_datas = extract_unit($response, "# START FORM DO NOT REMOVE THIS LINE", "# END FORM DO NOT REMOVE THIS LINE"); |
|
479
|
|
|
$column_datas = str_replace('$this->', '$cb_', $column_datas); |
|
480
|
|
|
eval($column_datas); |
|
|
|
|
|
|
481
|
|
|
} |
|
482
|
|
|
|
|
483
|
|
|
$types = []; |
|
484
|
|
|
foreach (glob(base_path('vendor/crocodicstudio/crudbooster/src/views/default/type_components').'/*', GLOB_ONLYDIR) as $dir) { |
|
485
|
|
|
$types[] = basename($dir); |
|
486
|
|
|
} |
|
487
|
|
|
|
|
488
|
|
|
return view('crudbooster::module_generator.step3', compact('columns', 'cb_form', 'types', 'id')); |
|
489
|
|
|
} |
|
490
|
|
|
|
|
491
|
|
|
public function getTypeInfo($type = 'text') |
|
492
|
|
|
{ |
|
493
|
|
|
header("Content-Type: application/json"); |
|
494
|
|
|
echo file_get_contents(base_path('vendor/crocodicstudio/crudbooster/src/views/default/type_components/'.$type.'/info.json')); |
|
495
|
|
|
} |
|
496
|
|
|
|
|
497
|
|
|
public function postStep4() |
|
498
|
|
|
{ |
|
499
|
|
|
$this->cbLoader(); |
|
500
|
|
|
|
|
501
|
|
|
$post = Request::all(); |
|
502
|
|
|
$id = $post['id']; |
|
503
|
|
|
|
|
504
|
|
|
$label = $post['label']; |
|
505
|
|
|
$name = $post['name']; |
|
506
|
|
|
$width = $post['width']; |
|
507
|
|
|
$type = $post['type']; |
|
508
|
|
|
$option = $post['option']; |
|
509
|
|
|
$validation = $post['validation']; |
|
510
|
|
|
|
|
511
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
512
|
|
|
|
|
513
|
|
|
$i = 0; |
|
514
|
|
|
$script_form = []; |
|
515
|
|
|
foreach ($label as $l) { |
|
516
|
|
|
|
|
517
|
|
|
if ($l != '') { |
|
518
|
|
|
|
|
519
|
|
|
$form = []; |
|
520
|
|
|
$form['label'] = $l; |
|
521
|
|
|
$form['name'] = $name[$i]; |
|
522
|
|
|
$form['type'] = $type[$i]; |
|
523
|
|
|
$form['validation'] = $validation[$i]; |
|
524
|
|
|
$form['width'] = $width[$i]; |
|
525
|
|
|
if ($option[$i]) { |
|
526
|
|
|
$form = array_merge($form, $option[$i]); |
|
527
|
|
|
} |
|
528
|
|
|
|
|
529
|
|
|
foreach ($form as $k => $f) { |
|
530
|
|
|
if ($f == '') { |
|
531
|
|
|
unset($form[$k]); |
|
532
|
|
|
} |
|
533
|
|
|
} |
|
534
|
|
|
|
|
535
|
|
|
$script_form[$i] = "\t\t\t".'$this->form[] = '.min_var_export($form).";"; |
|
536
|
|
|
} |
|
537
|
|
|
|
|
538
|
|
|
$i++; |
|
539
|
|
|
} |
|
540
|
|
|
|
|
541
|
|
|
$scripts = implode("\n", $script_form); |
|
542
|
|
|
$raw = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
543
|
|
|
$raw = explode("# START FORM DO NOT REMOVE THIS LINE", $raw); |
|
544
|
|
|
$rraw = explode("# END FORM DO NOT REMOVE THIS LINE", $raw[1]); |
|
545
|
|
|
|
|
546
|
|
|
$top_script = trim($raw[0]); |
|
547
|
|
|
$current_scaffolding_form = trim($rraw[0]); |
|
548
|
|
|
$bottom_script = trim($rraw[1]); |
|
549
|
|
|
|
|
550
|
|
|
//IF FOUND OLD, THEN CLEAR IT |
|
551
|
|
|
if (strpos($bottom_script, '# OLD START FORM') !== false) { |
|
552
|
|
|
$line_end_count = strlen('# OLD END FORM'); |
|
553
|
|
|
$line_start_old = strpos($bottom_script, '# OLD START FORM'); |
|
554
|
|
|
$line_end_old = strpos($bottom_script, '# OLD END FORM') + $line_end_count; |
|
555
|
|
|
$get_string = substr($bottom_script, $line_start_old, $line_end_old); |
|
556
|
|
|
$bottom_script = str_replace($get_string, '', $bottom_script); |
|
557
|
|
|
} |
|
558
|
|
|
|
|
559
|
|
|
//ARRANGE THE FULL SCRIPT |
|
560
|
|
|
$file_controller = $top_script."\n\n"; |
|
561
|
|
|
$file_controller .= "\t\t\t# START FORM DO NOT REMOVE THIS LINE\n"; |
|
562
|
|
|
$file_controller .= "\t\t\t".'$this->form = [];'."\n"; |
|
563
|
|
|
$file_controller .= $scripts."\n"; |
|
564
|
|
|
$file_controller .= "\t\t\t# END FORM DO NOT REMOVE THIS LINE\n\n"; |
|
565
|
|
|
|
|
566
|
|
|
//CREATE A BACKUP SCAFFOLDING TO OLD TAG |
|
567
|
|
|
if ($current_scaffolding_form) { |
|
568
|
|
|
$current_scaffolding_form = preg_split("/\\r\\n|\\r|\\n/", $current_scaffolding_form); |
|
569
|
|
|
foreach ($current_scaffolding_form as &$c) { |
|
570
|
|
|
$c = "\t\t\t//".trim($c); |
|
571
|
|
|
} |
|
572
|
|
|
$current_scaffolding_form = implode("\n", $current_scaffolding_form); |
|
|
|
|
|
|
573
|
|
|
|
|
574
|
|
|
$file_controller .= "\t\t\t# OLD START FORM\n"; |
|
575
|
|
|
$file_controller .= $current_scaffolding_form."\n"; |
|
576
|
|
|
$file_controller .= "\t\t\t# OLD END FORM\n\n"; |
|
577
|
|
|
} |
|
578
|
|
|
|
|
579
|
|
|
$file_controller .= "\t\t\t".trim($bottom_script); |
|
580
|
|
|
|
|
581
|
|
|
//CREATE FILE CONTROLLER |
|
582
|
|
|
file_put_contents(app_path('Http/Controllers/'.$row->controller.'.php'), $file_controller); |
|
583
|
|
|
|
|
584
|
|
|
return redirect(Route("ModulsControllerGetStep4", ["id" => $id])); |
|
585
|
|
|
} |
|
586
|
|
|
|
|
587
|
|
|
public function getStep4($id) |
|
588
|
|
|
{ |
|
589
|
|
|
$this->cbLoader(); |
|
590
|
|
|
|
|
591
|
|
|
$module = CRUDBooster::getCurrentModule(); |
|
592
|
|
|
|
|
593
|
|
|
if (! CRUDBooster::isView() && $this->global_privilege == false) { |
|
|
|
|
|
|
594
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_view', ['module' => $module->name])); |
|
595
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
596
|
|
|
} |
|
597
|
|
|
|
|
598
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
599
|
|
|
|
|
600
|
|
|
$data = []; |
|
601
|
|
|
$data['id'] = $id; |
|
602
|
|
|
if (file_exists(app_path('Http/Controllers/'.$row->controller.'.php'))) { |
|
603
|
|
|
$response = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
604
|
|
|
$column_datas = extract_unit($response, "# START CONFIGURATION DO NOT REMOVE THIS LINE", "# END CONFIGURATION DO NOT REMOVE THIS LINE"); |
|
605
|
|
|
$column_datas = str_replace('$this->', '$data[\'cb_', $column_datas); |
|
606
|
|
|
$column_datas = str_replace(' = ', '\'] = ', $column_datas); |
|
607
|
|
|
$column_datas = str_replace([' ', "\t"], '', $column_datas); |
|
608
|
|
|
eval($column_datas); |
|
|
|
|
|
|
609
|
|
|
} |
|
610
|
|
|
|
|
611
|
|
|
return view('crudbooster::module_generator.step4', $data); |
|
612
|
|
|
} |
|
613
|
|
|
|
|
614
|
|
|
public function postStepFinish() |
|
615
|
|
|
{ |
|
616
|
|
|
$this->cbLoader(); |
|
617
|
|
|
$id = Request::input('id'); |
|
618
|
|
|
$row = DB::table('cms_moduls')->where('id', $id)->first(); |
|
619
|
|
|
|
|
620
|
|
|
$post = Request::all(); |
|
621
|
|
|
|
|
622
|
|
|
$post['table'] = $row->table_name; |
|
623
|
|
|
|
|
624
|
|
|
$script_config = []; |
|
625
|
|
|
$exception = ['_token', 'id', 'submit']; |
|
626
|
|
|
$i = 0; |
|
627
|
|
|
foreach ($post as $key => $val) { |
|
628
|
|
|
if (in_array($key, $exception)) { |
|
629
|
|
|
continue; |
|
630
|
|
|
} |
|
631
|
|
|
|
|
632
|
|
|
if ($val != 'true' && $val != 'false') { |
|
633
|
|
|
$value = '"'.$val.'"'; |
|
634
|
|
|
} else { |
|
635
|
|
|
$value = $val; |
|
636
|
|
|
} |
|
637
|
|
|
|
|
638
|
|
|
// if($key == 'orderby') { |
|
639
|
|
|
// $value = ; |
|
640
|
|
|
// } |
|
641
|
|
|
|
|
642
|
|
|
$script_config[$i] = "\t\t\t".'$this->'.$key.' = '.$value.';'; |
|
643
|
|
|
$i++; |
|
644
|
|
|
} |
|
645
|
|
|
|
|
646
|
|
|
$scripts = implode("\n", $script_config); |
|
647
|
|
|
$raw = file_get_contents(app_path('Http/Controllers/'.$row->controller.'.php')); |
|
648
|
|
|
$raw = explode("# START CONFIGURATION DO NOT REMOVE THIS LINE", $raw); |
|
649
|
|
|
$rraw = explode("# END CONFIGURATION DO NOT REMOVE THIS LINE", $raw[1]); |
|
650
|
|
|
|
|
651
|
|
|
$file_controller = trim($raw[0])."\n\n"; |
|
652
|
|
|
$file_controller .= "\t\t\t# START CONFIGURATION DO NOT REMOVE THIS LINE\n"; |
|
653
|
|
|
$file_controller .= $scripts."\n"; |
|
654
|
|
|
$file_controller .= "\t\t\t# END CONFIGURATION DO NOT REMOVE THIS LINE\n\n"; |
|
655
|
|
|
$file_controller .= "\t\t\t".trim($rraw[1]); |
|
656
|
|
|
|
|
657
|
|
|
file_put_contents(app_path('Http/Controllers/'.$row->controller.'.php'), $file_controller); |
|
658
|
|
|
|
|
659
|
|
|
return redirect()->route('ModulsControllerGetIndex')->with(['message' => trans('crudbooster.alert_update_data_success'), 'message_type' => 'success']); |
|
660
|
|
|
} |
|
661
|
|
|
|
|
662
|
|
|
public function postAddSave() |
|
663
|
|
|
{ |
|
664
|
|
|
$this->cbLoader(); |
|
665
|
|
|
|
|
666
|
|
|
if (! CRUDBooster::isCreate() && $this->global_privilege == false) { |
|
|
|
|
|
|
667
|
|
|
CRUDBooster::insertLog(trans('crudbooster.log_try_add_save', [ |
|
668
|
|
|
'name' => Request::input($this->title_field), |
|
669
|
|
|
'module' => CRUDBooster::getCurrentModule()->name, |
|
670
|
|
|
])); |
|
671
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans("crudbooster.denied_access")); |
|
672
|
|
|
} |
|
673
|
|
|
|
|
674
|
|
|
$this->validation(); |
|
675
|
|
|
$this->input_assignment(); |
|
676
|
|
|
|
|
677
|
|
|
//Generate Controller |
|
678
|
|
|
$route_basename = basename(Request::get('path')); |
|
679
|
|
|
if ($this->arr['controller'] == '') { |
|
680
|
|
|
$this->arr['controller'] = CRUDBooster::generateController(Request::get('table_name'), $route_basename); |
|
681
|
|
|
} |
|
682
|
|
|
|
|
683
|
|
|
$this->arr['created_at'] = date('Y-m-d H:i:s'); |
|
684
|
|
|
$this->arr['id'] = DB::table($this->table)->max('id') + 1; |
|
685
|
|
|
DB::table($this->table)->insert($this->arr); |
|
686
|
|
|
|
|
687
|
|
|
//Insert Menu |
|
688
|
|
|
if ($this->arr['controller']) { |
|
689
|
|
|
$parent_menu_sort = DB::table('cms_menus')->where('parent_id', 0)->max('sorting') + 1; |
|
690
|
|
|
$parent_menu_id = DB::table('cms_menus')->max('id') + 1; |
|
691
|
|
|
DB::table('cms_menus')->insert([ |
|
692
|
|
|
'id' => $parent_menu_id, |
|
693
|
|
|
'created_at' => date('Y-m-d H:i:s'), |
|
694
|
|
|
'name' => $this->arr['name'], |
|
695
|
|
|
'icon' => $this->arr['icon'], |
|
696
|
|
|
'path' => '#', |
|
697
|
|
|
'type' => 'URL External', |
|
698
|
|
|
'is_active' => 1, |
|
699
|
|
|
'id_cms_privileges' => CRUDBooster::myPrivilegeId(), |
|
700
|
|
|
'sorting' => $parent_menu_sort, |
|
701
|
|
|
'parent_id' => 0, |
|
702
|
|
|
]); |
|
703
|
|
|
DB::table('cms_menus')->insert([ |
|
704
|
|
|
'id' => DB::table('cms_menus')->max('id') + 1, |
|
705
|
|
|
'created_at' => date('Y-m-d H:i:s'), |
|
706
|
|
|
'name' => trans("crudbooster.text_default_add_new_module", ['module' => $this->arr['name']]), |
|
707
|
|
|
'icon' => 'fa fa-plus', |
|
708
|
|
|
'path' => $this->arr['controller'].'GetAdd', |
|
709
|
|
|
'type' => 'Route', |
|
710
|
|
|
'is_active' => 1, |
|
711
|
|
|
'id_cms_privileges' => CRUDBooster::myPrivilegeId(), |
|
712
|
|
|
'sorting' => 1, |
|
713
|
|
|
'parent_id' => $parent_menu_id, |
|
714
|
|
|
]); |
|
715
|
|
|
DB::table('cms_menus')->insert([ |
|
716
|
|
|
'id' => DB::table('cms_menus')->max('id') + 1, |
|
717
|
|
|
'created_at' => date('Y-m-d H:i:s'), |
|
718
|
|
|
'name' => trans("crudbooster.text_default_list_module", ['module' => $this->arr['name']]), |
|
719
|
|
|
'icon' => 'fa fa-bars', |
|
720
|
|
|
'path' => $this->arr['controller'].'GetIndex', |
|
721
|
|
|
'type' => 'Route', |
|
722
|
|
|
'is_active' => 1, |
|
723
|
|
|
'id_cms_privileges' => CRUDBooster::myPrivilegeId(), |
|
724
|
|
|
'sorting' => 2, |
|
725
|
|
|
'parent_id' => $parent_menu_id, |
|
726
|
|
|
]); |
|
727
|
|
|
} |
|
728
|
|
|
|
|
729
|
|
|
$id_modul = $this->arr['id']; |
|
730
|
|
|
|
|
731
|
|
|
$user_id_privileges = CRUDBooster::myPrivilegeId(); |
|
732
|
|
|
DB::table('cms_privileges_roles')->insert([ |
|
733
|
|
|
'id' => DB::table('cms_privileges_roles')->max('id') + 1, |
|
734
|
|
|
'id_cms_moduls' => $id_modul, |
|
735
|
|
|
'id_cms_privileges' => $user_id_privileges, |
|
736
|
|
|
'is_visible' => 1, |
|
737
|
|
|
'is_create' => 1, |
|
738
|
|
|
'is_read' => 1, |
|
739
|
|
|
'is_edit' => 1, |
|
740
|
|
|
'is_delete' => 1, |
|
741
|
|
|
]); |
|
742
|
|
|
|
|
743
|
|
|
//Refresh Session Roles |
|
744
|
|
|
$roles = DB::table('cms_privileges_roles')->where('id_cms_privileges', CRUDBooster::myPrivilegeId())->join('cms_moduls', 'cms_moduls.id', '=', 'id_cms_moduls')->select('cms_moduls.name', 'cms_moduls.path', 'is_visible', 'is_create', 'is_read', 'is_edit', 'is_delete')->get(); |
|
745
|
|
|
Session::put('admin_privileges_roles', $roles); |
|
746
|
|
|
|
|
747
|
|
|
$ref_parameter = Request::input('ref_parameter'); |
|
|
|
|
|
|
748
|
|
|
if (Request::get('return_url')) { |
|
749
|
|
|
CRUDBooster::redirect(Request::get('return_url'), trans("crudbooster.alert_add_data_success"), 'success'); |
|
750
|
|
|
} else { |
|
751
|
|
|
if (Request::get('submit') == trans('crudbooster.button_save_more')) { |
|
752
|
|
|
CRUDBooster::redirect(CRUDBooster::mainpath('add'), trans("crudbooster.alert_add_data_success"), 'success'); |
|
753
|
|
|
} else { |
|
754
|
|
|
CRUDBooster::redirect(CRUDBooster::mainpath(), trans("crudbooster.alert_add_data_success"), 'success'); |
|
755
|
|
|
} |
|
756
|
|
|
} |
|
757
|
|
|
} |
|
758
|
|
|
|
|
759
|
|
|
public function postEditSave($id) |
|
760
|
|
|
{ |
|
761
|
|
|
$this->cbLoader(); |
|
762
|
|
|
|
|
763
|
|
|
$row = DB::table($this->table)->where($this->primary_key, $id)->first(); |
|
764
|
|
|
|
|
765
|
|
|
if (! CRUDBooster::isUpdate() && $this->global_privilege == false) { |
|
|
|
|
|
|
766
|
|
|
CRUDBooster::insertLog(trans("crudbooster.log_try_add", ['name' => $row->{$this->title_field}, 'module' => CRUDBooster::getCurrentModule()->name])); |
|
767
|
|
|
CRUDBooster::redirect(CRUDBooster::adminPath(), trans('crudbooster.denied_access')); |
|
768
|
|
|
} |
|
769
|
|
|
|
|
770
|
|
|
$this->validation(); |
|
771
|
|
|
$this->input_assignment(); |
|
772
|
|
|
|
|
773
|
|
|
//Generate Controller |
|
774
|
|
|
$route_basename = basename(Request::get('path')); |
|
775
|
|
|
if ($this->arr['controller'] == '') { |
|
776
|
|
|
$this->arr['controller'] = CRUDBooster::generateController(Request::get('table_name'), $route_basename); |
|
777
|
|
|
} |
|
778
|
|
|
|
|
779
|
|
|
DB::table($this->table)->where($this->primary_key, $id)->update($this->arr); |
|
780
|
|
|
|
|
781
|
|
|
//Refresh Session Roles |
|
782
|
|
|
$roles = DB::table('cms_privileges_roles')->where('id_cms_privileges', CRUDBooster::myPrivilegeId())->join('cms_moduls', 'cms_moduls.id', '=', 'id_cms_moduls')->select('cms_moduls.name', 'cms_moduls.path', 'is_visible', 'is_create', 'is_read', 'is_edit', 'is_delete')->get(); |
|
783
|
|
|
Session::put('admin_privileges_roles', $roles); |
|
784
|
|
|
|
|
785
|
|
|
CRUDBooster::redirect(Request::server('HTTP_REFERER'), trans('crudbooster.alert_update_data_success'), 'success'); |
|
786
|
|
|
} |
|
787
|
|
|
} |
|
788
|
|
|
|
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths