We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
@@ -17,232 +17,232 @@ |
||
| 17 | 17 | |
| 18 | 18 | class CrudController extends BaseController { |
| 19 | 19 | |
| 20 | - use DispatchesJobs, ValidatesRequests; |
|
| 21 | - |
|
| 22 | - public $data = []; |
|
| 23 | - public $crud; |
|
| 24 | - |
|
| 25 | - public function __construct() |
|
| 26 | - { |
|
| 27 | - $this->crud = new Crud(); |
|
| 28 | - } |
|
| 29 | - |
|
| 30 | - /** |
|
| 31 | - * Display all rows in the database for this entity. |
|
| 32 | - * |
|
| 33 | - * @return Response |
|
| 34 | - */ |
|
| 35 | - public function index() |
|
| 36 | - { |
|
| 37 | - $this->crud->hasAccessOrFail('list'); |
|
| 38 | - |
|
| 39 | - $this->data['entries'] = $this->crud->getEntries(); |
|
| 40 | - $this->data['crud'] = $this->crud; |
|
| 41 | - $this->data['title'] = ucfirst($this->crud->entity_name_plural); |
|
| 42 | - |
|
| 43 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 44 | - return view('crud::list', $this->data); |
|
| 45 | - } |
|
| 46 | - |
|
| 47 | - |
|
| 48 | - /** |
|
| 49 | - * Show the form for creating inserting a new row. |
|
| 50 | - * |
|
| 51 | - * @return Response |
|
| 52 | - */ |
|
| 53 | - public function create() |
|
| 54 | - { |
|
| 55 | - $this->crud->hasAccessOrFail('create'); |
|
| 56 | - |
|
| 57 | - // prepare the fields you need to show |
|
| 58 | - $this->data['crud'] = $this->crud; |
|
| 59 | - $this->data['fields'] = $this->crud->getCreateFields(); |
|
| 60 | - $this->data['title'] = trans('backpack::crud.add').' '.$this->crud->entity_name; |
|
| 61 | - |
|
| 62 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 63 | - return view('crud::create', $this->data); |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - |
|
| 67 | - /** |
|
| 68 | - * Store a newly created resource in the database. |
|
| 69 | - * |
|
| 70 | - * @param StoreRequest $request - type injection used for validation using Requests |
|
| 71 | - * @return \Illuminate\Http\RedirectResponse |
|
| 72 | - */ |
|
| 73 | - public function storeCrud(StoreRequest $request = null) |
|
| 74 | - { |
|
| 75 | - $this->crud->hasAccessOrFail('create'); |
|
| 20 | + use DispatchesJobs, ValidatesRequests; |
|
| 21 | + |
|
| 22 | + public $data = []; |
|
| 23 | + public $crud; |
|
| 24 | + |
|
| 25 | + public function __construct() |
|
| 26 | + { |
|
| 27 | + $this->crud = new Crud(); |
|
| 28 | + } |
|
| 29 | + |
|
| 30 | + /** |
|
| 31 | + * Display all rows in the database for this entity. |
|
| 32 | + * |
|
| 33 | + * @return Response |
|
| 34 | + */ |
|
| 35 | + public function index() |
|
| 36 | + { |
|
| 37 | + $this->crud->hasAccessOrFail('list'); |
|
| 38 | + |
|
| 39 | + $this->data['entries'] = $this->crud->getEntries(); |
|
| 40 | + $this->data['crud'] = $this->crud; |
|
| 41 | + $this->data['title'] = ucfirst($this->crud->entity_name_plural); |
|
| 42 | + |
|
| 43 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 44 | + return view('crud::list', $this->data); |
|
| 45 | + } |
|
| 46 | + |
|
| 47 | + |
|
| 48 | + /** |
|
| 49 | + * Show the form for creating inserting a new row. |
|
| 50 | + * |
|
| 51 | + * @return Response |
|
| 52 | + */ |
|
| 53 | + public function create() |
|
| 54 | + { |
|
| 55 | + $this->crud->hasAccessOrFail('create'); |
|
| 56 | + |
|
| 57 | + // prepare the fields you need to show |
|
| 58 | + $this->data['crud'] = $this->crud; |
|
| 59 | + $this->data['fields'] = $this->crud->getCreateFields(); |
|
| 60 | + $this->data['title'] = trans('backpack::crud.add').' '.$this->crud->entity_name; |
|
| 61 | + |
|
| 62 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 63 | + return view('crud::create', $this->data); |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + |
|
| 67 | + /** |
|
| 68 | + * Store a newly created resource in the database. |
|
| 69 | + * |
|
| 70 | + * @param StoreRequest $request - type injection used for validation using Requests |
|
| 71 | + * @return \Illuminate\Http\RedirectResponse |
|
| 72 | + */ |
|
| 73 | + public function storeCrud(StoreRequest $request = null) |
|
| 74 | + { |
|
| 75 | + $this->crud->hasAccessOrFail('create'); |
|
| 76 | 76 | |
| 77 | 77 | |
| 78 | - // insert item in the db |
|
| 79 | - $item = $this->crud->create(\Request::except(['redirect_after_save', 'password'])); |
|
| 80 | - |
|
| 81 | - |
|
| 82 | - // show a success message |
|
| 83 | - \Alert::success(trans('backpack::crud.insert_success'))->flash(); |
|
| 84 | - |
|
| 85 | - // redirect the user where he chose to be redirected |
|
| 86 | - switch (\Request::input('redirect_after_save')) { |
|
| 87 | - case 'current_item_edit': |
|
| 88 | - return \Redirect::to($this->crud->route.'/'.$item->id.'/edit'); |
|
| 89 | - |
|
| 90 | - default: |
|
| 91 | - return \Redirect::to(\Request::input('redirect_after_save')); |
|
| 92 | - } |
|
| 93 | - } |
|
| 94 | - |
|
| 95 | - |
|
| 96 | - /** |
|
| 97 | - * Show the form for editing the specified resource. |
|
| 98 | - * |
|
| 99 | - * @param int $id |
|
| 100 | - * @return Response |
|
| 101 | - */ |
|
| 102 | - public function edit($id) |
|
| 103 | - { |
|
| 104 | - $this->crud->hasAccessOrFail('update'); |
|
| 105 | - |
|
| 106 | - // get the info for that entry |
|
| 107 | - $this->data['entry'] = $this->crud->getEntry($id); |
|
| 108 | - $this->data['crud'] = $this->crud; |
|
| 109 | - $this->data['fields'] = $this->crud->getUpdateFields($id); |
|
| 110 | - $this->data['title'] = trans('backpack::crud.edit').' '.$this->crud->entity_name; |
|
| 111 | - |
|
| 112 | - $this->data['id'] = $id; |
|
| 113 | - |
|
| 114 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 115 | - return view('crud::edit', $this->data); |
|
| 116 | - } |
|
| 117 | - |
|
| 118 | - |
|
| 119 | - /** |
|
| 120 | - * Update the specified resource in the database. |
|
| 121 | - * |
|
| 122 | - * @param UpdateRequest $request - type injection used for validation using Requests |
|
| 123 | - * @return \Illuminate\Http\RedirectResponse |
|
| 124 | - */ |
|
| 125 | - public function updateCrud(UpdateRequest $request = null) |
|
| 126 | - { |
|
| 127 | - $this->crud->hasAccessOrFail('update'); |
|
| 128 | - |
|
| 129 | - // update the row in the db |
|
| 130 | - |
|
| 131 | - $this->crud->update(\Request::get('id'), \Request::except('redirect_after_save')); |
|
| 132 | - |
|
| 133 | - // show a success message |
|
| 134 | - \Alert::success(trans('backpack::crud.update_success'))->flash(); |
|
| 135 | - |
|
| 136 | - return \Redirect::to($this->crud->route); |
|
| 137 | - } |
|
| 138 | - |
|
| 139 | - |
|
| 140 | - /** |
|
| 141 | - * Display the specified resource. |
|
| 142 | - * |
|
| 143 | - * @param int $id |
|
| 144 | - * @return Response |
|
| 145 | - */ |
|
| 146 | - public function show($id) |
|
| 147 | - { |
|
| 148 | - $this->crud->hasAccessOrFail('show'); |
|
| 149 | - |
|
| 150 | - // get the info for that entry |
|
| 151 | - $this->data['entry'] = $this->crud->getEntry($id); |
|
| 152 | - $this->data['crud'] = $this->crud; |
|
| 153 | - $this->data['title'] = trans('backpack::crud.preview').' '.$this->crud->entity_name; |
|
| 154 | - |
|
| 155 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 156 | - return view('crud::show', $this->data); |
|
| 157 | - } |
|
| 158 | - |
|
| 159 | - |
|
| 160 | - /** |
|
| 161 | - * Remove the specified resource from storage. |
|
| 162 | - * |
|
| 163 | - * @param int $id |
|
| 164 | - * @return string |
|
| 165 | - */ |
|
| 166 | - public function destroy($id) |
|
| 167 | - { |
|
| 168 | - $this->crud->hasAccessOrFail('delete'); |
|
| 169 | - return $this->crud->delete($id); |
|
| 170 | - } |
|
| 171 | - |
|
| 172 | - |
|
| 173 | - /** |
|
| 174 | - * Reorder the items in the database using the Nested Set pattern. |
|
| 175 | - * |
|
| 176 | - * Database columns needed: id, parent_id, lft, rgt, depth, name/title |
|
| 177 | - * |
|
| 178 | - * @return Response |
|
| 179 | - */ |
|
| 180 | - public function reorder($lang = false) |
|
| 181 | - { |
|
| 182 | - $this->crud->hasAccessOrFail('reorder'); |
|
| 183 | - |
|
| 184 | - if (!$this->crud->isReorderEnabled()) { |
|
| 185 | - abort(403, 'Reorder is disabled.'); |
|
| 186 | - } |
|
| 187 | - |
|
| 188 | - if ($lang == false) |
|
| 189 | - { |
|
| 190 | - $lang = \Lang::locale(); |
|
| 191 | - } |
|
| 192 | - |
|
| 193 | - // get all results for that entity |
|
| 194 | - $this->data['entries'] = $this->crud->getEntries(); |
|
| 195 | - $this->data['crud'] = $this->crud; |
|
| 196 | - $this->data['title'] = trans('backpack::crud.reorder').' '.$this->crud->entity_name; |
|
| 197 | - |
|
| 198 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 199 | - return view('crud::reorder', $this->data); |
|
| 200 | - } |
|
| 201 | - |
|
| 202 | - |
|
| 203 | - /** |
|
| 204 | - * Save the new order, using the Nested Set pattern. |
|
| 205 | - * |
|
| 206 | - * Database columns needed: id, parent_id, lft, rgt, depth, name/title |
|
| 207 | - * |
|
| 208 | - * @return |
|
| 209 | - */ |
|
| 210 | - public function saveReorder() |
|
| 211 | - { |
|
| 212 | - $this->crud->hasAccessOrFail('reorder'); |
|
| 213 | - |
|
| 214 | - $all_entries = \Request::input('tree'); |
|
| 215 | - |
|
| 216 | - if (count($all_entries)) { |
|
| 217 | - $count = $this->crud->updateTreeOrder($all_entries); |
|
| 218 | - } else |
|
| 219 | - { |
|
| 220 | - return false; |
|
| 221 | - } |
|
| 222 | - |
|
| 223 | - return 'success for '.$count." items"; |
|
| 224 | - } |
|
| 225 | - |
|
| 226 | - |
|
| 227 | - /** |
|
| 228 | - * Used with AJAX in the list view (datatables) to show extra information about that row that didn't fit in the table. |
|
| 229 | - * It defaults to showing some dummy text. |
|
| 230 | - * |
|
| 231 | - * It's enabled by: |
|
| 232 | - * - setting: $crud->details_row = true; |
|
| 233 | - * - adding the details route for the entity; ex: Route::get('page/{id}/details', 'PageCrudController@showDetailsRow'); |
|
| 234 | - * - adding a view with the following name to change what the row actually contains: app/resources/views/vendor/backpack/crud/details_row.blade.php |
|
| 235 | - */ |
|
| 236 | - public function showDetailsRow($id) |
|
| 237 | - { |
|
| 238 | - $this->crud->hasAccessOrFail('details_row'); |
|
| 239 | - |
|
| 240 | - $this->data['entry'] = $this->crud->getEntry($id); |
|
| 241 | - $this->data['crud'] = $this->crud; |
|
| 242 | - |
|
| 243 | - // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 244 | - return view('crud::details_row', $this->data); |
|
| 245 | - } |
|
| 78 | + // insert item in the db |
|
| 79 | + $item = $this->crud->create(\Request::except(['redirect_after_save', 'password'])); |
|
| 80 | + |
|
| 81 | + |
|
| 82 | + // show a success message |
|
| 83 | + \Alert::success(trans('backpack::crud.insert_success'))->flash(); |
|
| 84 | + |
|
| 85 | + // redirect the user where he chose to be redirected |
|
| 86 | + switch (\Request::input('redirect_after_save')) { |
|
| 87 | + case 'current_item_edit': |
|
| 88 | + return \Redirect::to($this->crud->route.'/'.$item->id.'/edit'); |
|
| 89 | + |
|
| 90 | + default: |
|
| 91 | + return \Redirect::to(\Request::input('redirect_after_save')); |
|
| 92 | + } |
|
| 93 | + } |
|
| 94 | + |
|
| 95 | + |
|
| 96 | + /** |
|
| 97 | + * Show the form for editing the specified resource. |
|
| 98 | + * |
|
| 99 | + * @param int $id |
|
| 100 | + * @return Response |
|
| 101 | + */ |
|
| 102 | + public function edit($id) |
|
| 103 | + { |
|
| 104 | + $this->crud->hasAccessOrFail('update'); |
|
| 105 | + |
|
| 106 | + // get the info for that entry |
|
| 107 | + $this->data['entry'] = $this->crud->getEntry($id); |
|
| 108 | + $this->data['crud'] = $this->crud; |
|
| 109 | + $this->data['fields'] = $this->crud->getUpdateFields($id); |
|
| 110 | + $this->data['title'] = trans('backpack::crud.edit').' '.$this->crud->entity_name; |
|
| 111 | + |
|
| 112 | + $this->data['id'] = $id; |
|
| 113 | + |
|
| 114 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 115 | + return view('crud::edit', $this->data); |
|
| 116 | + } |
|
| 117 | + |
|
| 118 | + |
|
| 119 | + /** |
|
| 120 | + * Update the specified resource in the database. |
|
| 121 | + * |
|
| 122 | + * @param UpdateRequest $request - type injection used for validation using Requests |
|
| 123 | + * @return \Illuminate\Http\RedirectResponse |
|
| 124 | + */ |
|
| 125 | + public function updateCrud(UpdateRequest $request = null) |
|
| 126 | + { |
|
| 127 | + $this->crud->hasAccessOrFail('update'); |
|
| 128 | + |
|
| 129 | + // update the row in the db |
|
| 130 | + |
|
| 131 | + $this->crud->update(\Request::get('id'), \Request::except('redirect_after_save')); |
|
| 132 | + |
|
| 133 | + // show a success message |
|
| 134 | + \Alert::success(trans('backpack::crud.update_success'))->flash(); |
|
| 135 | + |
|
| 136 | + return \Redirect::to($this->crud->route); |
|
| 137 | + } |
|
| 138 | + |
|
| 139 | + |
|
| 140 | + /** |
|
| 141 | + * Display the specified resource. |
|
| 142 | + * |
|
| 143 | + * @param int $id |
|
| 144 | + * @return Response |
|
| 145 | + */ |
|
| 146 | + public function show($id) |
|
| 147 | + { |
|
| 148 | + $this->crud->hasAccessOrFail('show'); |
|
| 149 | + |
|
| 150 | + // get the info for that entry |
|
| 151 | + $this->data['entry'] = $this->crud->getEntry($id); |
|
| 152 | + $this->data['crud'] = $this->crud; |
|
| 153 | + $this->data['title'] = trans('backpack::crud.preview').' '.$this->crud->entity_name; |
|
| 154 | + |
|
| 155 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 156 | + return view('crud::show', $this->data); |
|
| 157 | + } |
|
| 158 | + |
|
| 159 | + |
|
| 160 | + /** |
|
| 161 | + * Remove the specified resource from storage. |
|
| 162 | + * |
|
| 163 | + * @param int $id |
|
| 164 | + * @return string |
|
| 165 | + */ |
|
| 166 | + public function destroy($id) |
|
| 167 | + { |
|
| 168 | + $this->crud->hasAccessOrFail('delete'); |
|
| 169 | + return $this->crud->delete($id); |
|
| 170 | + } |
|
| 171 | + |
|
| 172 | + |
|
| 173 | + /** |
|
| 174 | + * Reorder the items in the database using the Nested Set pattern. |
|
| 175 | + * |
|
| 176 | + * Database columns needed: id, parent_id, lft, rgt, depth, name/title |
|
| 177 | + * |
|
| 178 | + * @return Response |
|
| 179 | + */ |
|
| 180 | + public function reorder($lang = false) |
|
| 181 | + { |
|
| 182 | + $this->crud->hasAccessOrFail('reorder'); |
|
| 183 | + |
|
| 184 | + if (!$this->crud->isReorderEnabled()) { |
|
| 185 | + abort(403, 'Reorder is disabled.'); |
|
| 186 | + } |
|
| 187 | + |
|
| 188 | + if ($lang == false) |
|
| 189 | + { |
|
| 190 | + $lang = \Lang::locale(); |
|
| 191 | + } |
|
| 192 | + |
|
| 193 | + // get all results for that entity |
|
| 194 | + $this->data['entries'] = $this->crud->getEntries(); |
|
| 195 | + $this->data['crud'] = $this->crud; |
|
| 196 | + $this->data['title'] = trans('backpack::crud.reorder').' '.$this->crud->entity_name; |
|
| 197 | + |
|
| 198 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 199 | + return view('crud::reorder', $this->data); |
|
| 200 | + } |
|
| 201 | + |
|
| 202 | + |
|
| 203 | + /** |
|
| 204 | + * Save the new order, using the Nested Set pattern. |
|
| 205 | + * |
|
| 206 | + * Database columns needed: id, parent_id, lft, rgt, depth, name/title |
|
| 207 | + * |
|
| 208 | + * @return |
|
| 209 | + */ |
|
| 210 | + public function saveReorder() |
|
| 211 | + { |
|
| 212 | + $this->crud->hasAccessOrFail('reorder'); |
|
| 213 | + |
|
| 214 | + $all_entries = \Request::input('tree'); |
|
| 215 | + |
|
| 216 | + if (count($all_entries)) { |
|
| 217 | + $count = $this->crud->updateTreeOrder($all_entries); |
|
| 218 | + } else |
|
| 219 | + { |
|
| 220 | + return false; |
|
| 221 | + } |
|
| 222 | + |
|
| 223 | + return 'success for '.$count." items"; |
|
| 224 | + } |
|
| 225 | + |
|
| 226 | + |
|
| 227 | + /** |
|
| 228 | + * Used with AJAX in the list view (datatables) to show extra information about that row that didn't fit in the table. |
|
| 229 | + * It defaults to showing some dummy text. |
|
| 230 | + * |
|
| 231 | + * It's enabled by: |
|
| 232 | + * - setting: $crud->details_row = true; |
|
| 233 | + * - adding the details route for the entity; ex: Route::get('page/{id}/details', 'PageCrudController@showDetailsRow'); |
|
| 234 | + * - adding a view with the following name to change what the row actually contains: app/resources/views/vendor/backpack/crud/details_row.blade.php |
|
| 235 | + */ |
|
| 236 | + public function showDetailsRow($id) |
|
| 237 | + { |
|
| 238 | + $this->crud->hasAccessOrFail('details_row'); |
|
| 239 | + |
|
| 240 | + $this->data['entry'] = $this->crud->getEntry($id); |
|
| 241 | + $this->data['crud'] = $this->crud; |
|
| 242 | + |
|
| 243 | + // load the view from /resources/views/vendor/backpack/crud/ if it exists, otherwise load the one in the package |
|
| 244 | + return view('crud::details_row', $this->data); |
|
| 245 | + } |
|
| 246 | 246 | |
| 247 | 247 | |
| 248 | 248 | |
@@ -11,17 +11,17 @@ discard block |
||
| 11 | 11 | |
| 12 | 12 | class ExampleCrudController extends CrudController { |
| 13 | 13 | |
| 14 | - public function __construct() { |
|
| 14 | + public function __construct() { |
|
| 15 | 15 | parent::__construct(); |
| 16 | 16 | |
| 17 | - /* |
|
| 17 | + /* |
|
| 18 | 18 | |-------------------------------------------------------------------------- |
| 19 | 19 | | API |
| 20 | 20 | |-------------------------------------------------------------------------- |
| 21 | 21 | */ |
| 22 | 22 | |
| 23 | 23 | |
| 24 | - // USAGE LEVEL 1 - ALWAYS ================================================== LEVEL 1 |
|
| 24 | + // USAGE LEVEL 1 - ALWAYS ================================================== LEVEL 1 |
|
| 25 | 25 | $this->crud->setModel("App\Models\Example"); |
| 26 | 26 | $this->crud->setRoute("admin/example"); |
| 27 | 27 | // $this->crud->setRouteName("admin.example"); |
@@ -33,45 +33,45 @@ discard block |
||
| 33 | 33 | |
| 34 | 34 | |
| 35 | 35 | |
| 36 | - // USAGE LEVEL 2 - OFTEN ================================================== LEVEL 2 |
|
| 36 | + // USAGE LEVEL 2 - OFTEN ================================================== LEVEL 2 |
|
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | // ------ FIELDS (the last parameter is always the form - create/update/both) |
| 40 | - // TODO: $this->crud->addField('name', $options, 'update/create/both'); |
|
| 41 | - // TODO: $this->crud->addFields($array_of_arrays, 'update/create/both'); |
|
| 42 | - // TODO: $this->crud->removeField('name', 'update/create/both'); |
|
| 43 | - // TODO: $this->crud->removeFields($array_of_names, 'update/create/both'); |
|
| 44 | - // TODO: $this->crud->replaceField('name', 'update/create/both'); |
|
| 40 | + // TODO: $this->crud->addField('name', $options, 'update/create/both'); |
|
| 41 | + // TODO: $this->crud->addFields($array_of_arrays, 'update/create/both'); |
|
| 42 | + // TODO: $this->crud->removeField('name', 'update/create/both'); |
|
| 43 | + // TODO: $this->crud->removeFields($array_of_names, 'update/create/both'); |
|
| 44 | + // TODO: $this->crud->replaceField('name', 'update/create/both'); |
|
| 45 | 45 | |
| 46 | - // TODO: $this->crud->setRequiredFields(['field_1', 'field_2'], 'update/create/both'); |
|
| 47 | - // TODO: $this->crud->setRequiredField('field_1', 'update/create/both'); |
|
| 48 | - // TODO: $this->crud->getRequiredFields(); |
|
| 46 | + // TODO: $this->crud->setRequiredFields(['field_1', 'field_2'], 'update/create/both'); |
|
| 47 | + // TODO: $this->crud->setRequiredField('field_1', 'update/create/both'); |
|
| 48 | + // TODO: $this->crud->getRequiredFields(); |
|
| 49 | 49 | |
| 50 | - // TODO: $this->crud->setFieldOrder(['field_1', 'field_2', 'field_3'], 'update/create/both'); |
|
| 50 | + // TODO: $this->crud->setFieldOrder(['field_1', 'field_2', 'field_3'], 'update/create/both'); |
|
| 51 | 51 | |
| 52 | 52 | |
| 53 | 53 | // ------ COLUMNS |
| 54 | - // $this->crud->addColumn(); // add a single column, at the end of the stack |
|
| 55 | - // $this->crud->addColumns(); // add multiple columns, at the end of the stack |
|
| 56 | - // $this->crud->removeColumn('column_name'); // remove a column from the stack |
|
| 57 | - // $this->crud->removeColumns(['column_name_1', 'column_name_2']); // remove an array of columns from the stack |
|
| 58 | - // $this->crud->setColumnDetails('column_name', ['attribute' => 'value']); |
|
| 59 | - // $this->crud->setColumnsDetails(['column_1', 'column_2'], ['attribute' => 'value']); |
|
| 60 | - // TODO: $this->crud->setColumnOrder(['column_1', 'column_2', 'column_3']); |
|
| 54 | + // $this->crud->addColumn(); // add a single column, at the end of the stack |
|
| 55 | + // $this->crud->addColumns(); // add multiple columns, at the end of the stack |
|
| 56 | + // $this->crud->removeColumn('column_name'); // remove a column from the stack |
|
| 57 | + // $this->crud->removeColumns(['column_name_1', 'column_name_2']); // remove an array of columns from the stack |
|
| 58 | + // $this->crud->setColumnDetails('column_name', ['attribute' => 'value']); |
|
| 59 | + // $this->crud->setColumnsDetails(['column_1', 'column_2'], ['attribute' => 'value']); |
|
| 60 | + // TODO: $this->crud->setColumnOrder(['column_1', 'column_2', 'column_3']); |
|
| 61 | 61 | |
| 62 | 62 | |
| 63 | - // ------ FIELDS AND COLUMNS |
|
| 64 | - // TODO: $this->crud->setLabel('column_name/field_name', 'New Label'); // changes label for columns, create&update fields |
|
| 63 | + // ------ FIELDS AND COLUMNS |
|
| 64 | + // TODO: $this->crud->setLabel('column_name/field_name', 'New Label'); // changes label for columns, create&update fields |
|
| 65 | 65 | |
| 66 | 66 | |
| 67 | 67 | // ------ ACCESS |
| 68 | - // $this->crud->allowAccess('list'); |
|
| 69 | - // $this->crud->allowAccess(['list', 'create', 'delete']); |
|
| 70 | - // $this->crud->denyAccess('list'); |
|
| 71 | - // $this->crud->denyAccess(['list', 'create', 'delete']); |
|
| 68 | + // $this->crud->allowAccess('list'); |
|
| 69 | + // $this->crud->allowAccess(['list', 'create', 'delete']); |
|
| 70 | + // $this->crud->denyAccess('list'); |
|
| 71 | + // $this->crud->denyAccess(['list', 'create', 'delete']); |
|
| 72 | 72 | |
| 73 | - // $this->crud->hasAccess('add'); // returns true/false |
|
| 74 | - // $this->crud->hasAccessOrFail('add'); // throws 403 error |
|
| 73 | + // $this->crud->hasAccess('add'); // returns true/false |
|
| 74 | + // $this->crud->hasAccessOrFail('add'); // throws 403 error |
|
| 75 | 75 | |
| 76 | 76 | |
| 77 | 77 | // ------ REORDER |
@@ -83,7 +83,7 @@ discard block |
||
| 83 | 83 | |
| 84 | 84 | |
| 85 | 85 | // ------ DETAILS ROW |
| 86 | - // $this->crud->enableDetailsRow(); |
|
| 86 | + // $this->crud->enableDetailsRow(); |
|
| 87 | 87 | // NOTE: you also need to do allow access to the right users: $this->crud->allowAccess('details_row'); |
| 88 | 88 | // NOTE: you also need to do overwrite the showDetailsRow($id) method in your EntityCrudController to show whatever you'd like in the details row OR overwrite the views/backpack/crud/details_row.blade.php |
| 89 | 89 | |
@@ -92,101 +92,101 @@ discard block |
||
| 92 | 92 | |
| 93 | 93 | // ------ ADVANCED QUERIES |
| 94 | 94 | // $this->crud->addClause('active'); |
| 95 | - // $this->crud->addClause('type', 'car'); |
|
| 96 | - // $this->crud->addClause('where', 'name', '==', 'car'); |
|
| 97 | - // $this->crud->addClause('whereName', 'car'); |
|
| 98 | - // $this->crud->addClause('whereHas', 'posts', function($query) { |
|
| 99 | - // $query->activePosts(); |
|
| 100 | - // }); |
|
| 95 | + // $this->crud->addClause('type', 'car'); |
|
| 96 | + // $this->crud->addClause('where', 'name', '==', 'car'); |
|
| 97 | + // $this->crud->addClause('whereName', 'car'); |
|
| 98 | + // $this->crud->addClause('whereHas', 'posts', function($query) { |
|
| 99 | + // $query->activePosts(); |
|
| 100 | + // }); |
|
| 101 | 101 | // $this->crud->orderBy(); |
| 102 | 102 | // $this->crud->groupBy(); |
| 103 | 103 | // $this->crud->limit(); |
| 104 | 104 | |
| 105 | 105 | |
| 106 | 106 | |
| 107 | - // USAGE LEVEL 3 - SOMETIMES ============================================== LEVEL 3 |
|
| 107 | + // USAGE LEVEL 3 - SOMETIMES ============================================== LEVEL 3 |
|
| 108 | 108 | |
| 109 | 109 | // TODO: $this->crud->setButtons(); // default includes edit and delete, with their name, icon, permission, link and class (btn-default) |
| 110 | - // TODO: $this->crud->addButton(); |
|
| 111 | - // TODO: $this->crud->removeButton(); |
|
| 112 | - // TODO: $this->crud->replaceButton(); |
|
| 110 | + // TODO: $this->crud->addButton(); |
|
| 111 | + // TODO: $this->crud->removeButton(); |
|
| 112 | + // TODO: $this->crud->replaceButton(); |
|
| 113 | 113 | |
| 114 | 114 | |
| 115 | 115 | |
| 116 | - // USAGE LEVEL 4 - RARELY ================================================== LEVEL 4 |
|
| 116 | + // USAGE LEVEL 4 - RARELY ================================================== LEVEL 4 |
|
| 117 | 117 | |
| 118 | - // $this->crud->getEntry($entry_id); |
|
| 119 | - // $this->crud->getEntries(); |
|
| 118 | + // $this->crud->getEntry($entry_id); |
|
| 119 | + // $this->crud->getEntries(); |
|
| 120 | 120 | |
| 121 | - // $this->crud->getFields('create/update/both'); |
|
| 121 | + // $this->crud->getFields('create/update/both'); |
|
| 122 | 122 | |
| 123 | - // $this->crud->create($entry_request); |
|
| 124 | - // $this->crud->update($entry_id, $entry_request); |
|
| 125 | - // $this->crud->delete($entry_id); |
|
| 123 | + // $this->crud->create($entry_request); |
|
| 124 | + // $this->crud->update($entry_id, $entry_request); |
|
| 125 | + // $this->crud->delete($entry_id); |
|
| 126 | 126 | |
| 127 | 127 | |
| 128 | - // USAGE LEVEL 5 - ALMOST NEVER ============================================== LEVEL 5 |
|
| 128 | + // USAGE LEVEL 5 - ALMOST NEVER ============================================== LEVEL 5 |
|
| 129 | 129 | |
| 130 | - // $this->crud->updateTreeOrder($all_entries); |
|
| 130 | + // $this->crud->updateTreeOrder($all_entries); |
|
| 131 | 131 | |
| 132 | 132 | |
| 133 | 133 | |
| 134 | 134 | |
| 135 | 135 | // ------------------------ |
| 136 | - // MEANWHILE THIS WILL WORK |
|
| 137 | - // ------------------------ |
|
| 136 | + // MEANWHILE THIS WILL WORK |
|
| 137 | + // ------------------------ |
|
| 138 | 138 | |
| 139 | 139 | |
| 140 | 140 | $this->crud->reorder = true; |
| 141 | - $this->crud->reorder_label = "name"; |
|
| 142 | - $this->crud->reorder_max_level = 3; |
|
| 143 | - $this->crud->details_row = true; |
|
| 144 | - // $this->crud->permissions = ['add', 'list', 'edit', 'delete', 'show']; |
|
| 141 | + $this->crud->reorder_label = "name"; |
|
| 142 | + $this->crud->reorder_max_level = 3; |
|
| 143 | + $this->crud->details_row = true; |
|
| 144 | + // $this->crud->permissions = ['add', 'list', 'edit', 'delete', 'show']; |
|
| 145 | 145 | |
| 146 | 146 | $this->crud->columns = [ |
| 147 | - [ |
|
| 148 | - 'name' => 'name', |
|
| 149 | - 'label' => "Example item text" |
|
| 150 | - ], |
|
| 151 | - [ |
|
| 152 | - 'label' => "Parent", |
|
| 153 | - 'type' => 'select', |
|
| 154 | - 'name' => 'parent_id', |
|
| 155 | - 'entity' => 'parent', |
|
| 156 | - 'attribute' => 'name', |
|
| 157 | - 'model' => "App\Models\Example" |
|
| 158 | - ], |
|
| 159 | - ]; |
|
| 160 | - $this->crud->fields = [ |
|
| 161 | - [ |
|
| 162 | - 'name' => 'name', |
|
| 163 | - 'label' => "Example item text" |
|
| 164 | - ], |
|
| 165 | - [ |
|
| 166 | - 'label' => "Parent", |
|
| 167 | - 'type' => 'select', |
|
| 168 | - 'name' => 'parent_id', |
|
| 169 | - 'entity' => 'parent', |
|
| 170 | - 'attribute' => 'name', |
|
| 171 | - 'model' => "App\Models\Example" |
|
| 172 | - ], |
|
| 173 | - [ |
|
| 174 | - 'name' => 'type', |
|
| 175 | - 'label' => "Type", |
|
| 176 | - 'type' => 'page_or_link' |
|
| 177 | - ], |
|
| 178 | - ]; |
|
| 147 | + [ |
|
| 148 | + 'name' => 'name', |
|
| 149 | + 'label' => "Example item text" |
|
| 150 | + ], |
|
| 151 | + [ |
|
| 152 | + 'label' => "Parent", |
|
| 153 | + 'type' => 'select', |
|
| 154 | + 'name' => 'parent_id', |
|
| 155 | + 'entity' => 'parent', |
|
| 156 | + 'attribute' => 'name', |
|
| 157 | + 'model' => "App\Models\Example" |
|
| 158 | + ], |
|
| 159 | + ]; |
|
| 160 | + $this->crud->fields = [ |
|
| 161 | + [ |
|
| 162 | + 'name' => 'name', |
|
| 163 | + 'label' => "Example item text" |
|
| 164 | + ], |
|
| 165 | + [ |
|
| 166 | + 'label' => "Parent", |
|
| 167 | + 'type' => 'select', |
|
| 168 | + 'name' => 'parent_id', |
|
| 169 | + 'entity' => 'parent', |
|
| 170 | + 'attribute' => 'name', |
|
| 171 | + 'model' => "App\Models\Example" |
|
| 172 | + ], |
|
| 173 | + [ |
|
| 174 | + 'name' => 'type', |
|
| 175 | + 'label' => "Type", |
|
| 176 | + 'type' => 'page_or_link' |
|
| 177 | + ], |
|
| 178 | + ]; |
|
| 179 | 179 | |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | - public function store(StoreRequest $request) |
|
| 183 | - { |
|
| 184 | - return parent::storeCrud(); |
|
| 185 | - } |
|
| 182 | + public function store(StoreRequest $request) |
|
| 183 | + { |
|
| 184 | + return parent::storeCrud(); |
|
| 185 | + } |
|
| 186 | 186 | |
| 187 | - public function update(UpdateRequest $request) |
|
| 188 | - { |
|
| 189 | - return parent::updateCrud(); |
|
| 190 | - } |
|
| 187 | + public function update(UpdateRequest $request) |
|
| 188 | + { |
|
| 189 | + return parent::updateCrud(); |
|
| 190 | + } |
|
| 191 | 191 | |
| 192 | 192 | } |
@@ -94,9 +94,9 @@ discard block |
||
| 94 | 94 | $model->{$relation['name']}()->sync($data[$key]); |
| 95 | 95 | |
| 96 | 96 | foreach($relation['pivotFields'] as $pivotField){ |
| 97 | - foreach($data[$pivotField] as $pivot_id => $field){ |
|
| 98 | - $model->{$relation['name']}()->updateExistingPivot($pivot_id, [$pivotField => $field]); |
|
| 99 | - } |
|
| 97 | + foreach($data[$pivotField] as $pivot_id => $field){ |
|
| 98 | + $model->{$relation['name']}()->updateExistingPivot($pivot_id, [$pivotField => $field]); |
|
| 99 | + } |
|
| 100 | 100 | } |
| 101 | 101 | } |
| 102 | 102 | } |
@@ -137,7 +137,7 @@ discard block |
||
| 137 | 137 | } |
| 138 | 138 | |
| 139 | 139 | |
| 140 | - /* |
|
| 140 | + /* |
|
| 141 | 141 | |-------------------------------------------------------------------------- |
| 142 | 142 | | READ |
| 143 | 143 | |-------------------------------------------------------------------------- |
@@ -220,7 +220,7 @@ discard block |
||
| 220 | 220 | |
| 221 | 221 | |
| 222 | 222 | |
| 223 | - /* |
|
| 223 | + /* |
|
| 224 | 224 | |-------------------------------------------------------------------------- |
| 225 | 225 | | UPDATE |
| 226 | 226 | |-------------------------------------------------------------------------- |
@@ -276,7 +276,7 @@ discard block |
||
| 276 | 276 | |
| 277 | 277 | |
| 278 | 278 | |
| 279 | - /* |
|
| 279 | + /* |
|
| 280 | 280 | |-------------------------------------------------------------------------- |
| 281 | 281 | | DELETE |
| 282 | 282 | |-------------------------------------------------------------------------- |
@@ -367,7 +367,7 @@ discard block |
||
| 367 | 367 | |
| 368 | 368 | |
| 369 | 369 | |
| 370 | - /* |
|
| 370 | + /* |
|
| 371 | 371 | |-------------------------------------------------------------------------- |
| 372 | 372 | | CRUD ACCESS |
| 373 | 373 | |-------------------------------------------------------------------------- |
@@ -796,7 +796,7 @@ discard block |
||
| 796 | 796 | |
| 797 | 797 | if (!in_array($field, $this->model->getHidden())) |
| 798 | 798 | { |
| 799 | - $this->columns[] = [ |
|
| 799 | + $this->columns[] = [ |
|
| 800 | 800 | 'name' => $field, |
| 801 | 801 | 'label' => ucfirst($field), |
| 802 | 802 | 'type' => $this->getFieldTypeFromDbColumnType($field) |
@@ -1164,10 +1164,10 @@ discard block |
||
| 1164 | 1164 | |
| 1165 | 1165 | public function addCreateField($field) |
| 1166 | 1166 | { |
| 1167 | - return $this->add('create_fields', $field); |
|
| 1167 | + return $this->add('create_fields', $field); |
|
| 1168 | 1168 | } |
| 1169 | 1169 | |
| 1170 | - public function setUpdateFields($fields) |
|
| 1170 | + public function setUpdateFields($fields) |
|
| 1171 | 1171 | { |
| 1172 | 1172 | $this->addMultiple('update_fields', $fields); |
| 1173 | 1173 | } |
@@ -238,7 +238,9 @@ discard block |
||
| 238 | 238 | $item = $this->model->findOrFail($id); |
| 239 | 239 | $updated = $item->update($this->compactFakeFields($data)); |
| 240 | 240 | |
| 241 | - if ($updated) $this->syncPivot($item, $data); |
|
| 241 | + if ($updated) { |
|
| 242 | + $this->syncPivot($item, $data); |
|
| 243 | + } |
|
| 242 | 244 | |
| 243 | 245 | return $item; |
| 244 | 246 | } |
@@ -436,7 +438,9 @@ discard block |
||
| 436 | 438 | */ |
| 437 | 439 | public function setModel($model_namespace) |
| 438 | 440 | { |
| 439 | - if (!class_exists($model_namespace)) throw new \Exception('This model does not exist.', 404); |
|
| 441 | + if (!class_exists($model_namespace)) { |
|
| 442 | + throw new \Exception('This model does not exist.', 404); |
|
| 443 | + } |
|
| 440 | 444 | |
| 441 | 445 | $this->model = new $model_namespace(); |
| 442 | 446 | $this->query = $this->model->select('*'); |
@@ -478,7 +482,9 @@ discard block |
||
| 478 | 482 | { |
| 479 | 483 | $complete_route = $route.'.index'; |
| 480 | 484 | |
| 481 | - if (!\Route::has($complete_route)) throw new \Exception('There are no routes for this route name.', 404); |
|
| 485 | + if (!\Route::has($complete_route)) { |
|
| 486 | + throw new \Exception('There are no routes for this route name.', 404); |
|
| 487 | + } |
|
| 482 | 488 | |
| 483 | 489 | $this->route = route($complete_route, $parameters); |
| 484 | 490 | $this->initButtons(); |
@@ -534,8 +540,7 @@ discard block |
||
| 534 | 540 | // if label and other details have been defined in the array |
| 535 | 541 | if (is_array($columns[0])) { |
| 536 | 542 | $this->addColumn($column); |
| 537 | - } |
|
| 538 | - else |
|
| 543 | + } else |
|
| 539 | 544 | { |
| 540 | 545 | $this->addColumn([ |
| 541 | 546 | 'name' => $column, |
@@ -831,11 +836,17 @@ discard block |
||
| 831 | 836 | */ |
| 832 | 837 | public function getFieldTypeFromDbColumnType($field) |
| 833 | 838 | { |
| 834 | - if (!array_key_exists($field, $this->field_types)) return 'text'; |
|
| 839 | + if (!array_key_exists($field, $this->field_types)) { |
|
| 840 | + return 'text'; |
|
| 841 | + } |
|
| 835 | 842 | |
| 836 | - if ($field == 'password') return 'password'; |
|
| 843 | + if ($field == 'password') { |
|
| 844 | + return 'password'; |
|
| 845 | + } |
|
| 837 | 846 | |
| 838 | - if ($field == 'email') return 'email'; |
|
| 847 | + if ($field == 'email') { |
|
| 848 | + return 'email'; |
|
| 849 | + } |
|
| 839 | 850 | |
| 840 | 851 | switch ($this->field_types[$field]['type']) |
| 841 | 852 | { |
@@ -908,7 +919,9 @@ discard block |
||
| 908 | 919 | $columns = \Schema::getColumnListing($this->model->getTable()); |
| 909 | 920 | $fillable = $this->model->getFillable(); |
| 910 | 921 | |
| 911 | - if (!empty($fillable)) $columns = array_intersect($columns, $fillable); |
|
| 922 | + if (!empty($fillable)) { |
|
| 923 | + $columns = array_intersect($columns, $fillable); |
|
| 924 | + } |
|
| 912 | 925 | |
| 913 | 926 | // but not updated_at, deleted_at |
| 914 | 927 | return array_values(array_diff($columns, [$this->model->getKeyName(), 'updated_at', 'deleted_at'])); |
@@ -1208,7 +1221,9 @@ discard block |
||
| 1208 | 1221 | |
| 1209 | 1222 | public function syncField($field) |
| 1210 | 1223 | { |
| 1211 | - if (array_key_exists('name', (array)$field)) return array_merge(['type' => $this->getFieldTypeFromDbColumnType($field['name']), 'value' => '', 'default' => null, 'values' => [], 'attributes' => []], $field); |
|
| 1224 | + if (array_key_exists('name', (array)$field)) { |
|
| 1225 | + return array_merge(['type' => $this->getFieldTypeFromDbColumnType($field['name']), 'value' => '', 'default' => null, 'values' => [], 'attributes' => []], $field); |
|
| 1226 | + } |
|
| 1212 | 1227 | |
| 1213 | 1228 | return false; |
| 1214 | 1229 | } |
@@ -1226,8 +1241,11 @@ discard block |
||
| 1226 | 1241 | |
| 1227 | 1242 | foreach ($this->{$fields} as $key => $field) |
| 1228 | 1243 | { |
| 1229 | - if (array_key_exists($field['name'], $this->relations) && $this->relations[$field['name']]['pivot']) $this->{$fields}[$key]['value'] = $this->entry->{$this->relations[$field['name']]['name']}()->lists($this->relations[$field['name']]['model']->getKeyName())->toArray(); |
|
| 1230 | - else $this->{$fields}[$key]['value'] = $this->entry->{$field['name']}; |
|
| 1244 | + if (array_key_exists($field['name'], $this->relations) && $this->relations[$field['name']]['pivot']) { |
|
| 1245 | + $this->{$fields}[$key]['value'] = $this->entry->{$this->relations[$field['name']]['name']}()->lists($this->relations[$field['name']]['model']->getKeyName())->toArray(); |
|
| 1246 | + } else { |
|
| 1247 | + $this->{$fields}[$key]['value'] = $this->entry->{$field['name']}; |
|
| 1248 | + } |
|
| 1231 | 1249 | } |
| 1232 | 1250 | } |
| 1233 | 1251 | } |
@@ -1247,7 +1265,9 @@ discard block |
||
| 1247 | 1265 | if (!empty($this->{$type})) |
| 1248 | 1266 | { |
| 1249 | 1267 | $this->{$type} = array_map(function($field) use ($fields, $attributes) { |
| 1250 | - if (in_array($field['name'], (array)$fields)) $field = array_merge($field, $attributes); |
|
| 1268 | + if (in_array($field['name'], (array)$fields)) { |
|
| 1269 | + $field = array_merge($field, $attributes); |
|
| 1270 | + } |
|
| 1251 | 1271 | |
| 1252 | 1272 | return $field; |
| 1253 | 1273 | }, $this->{$type}); |
@@ -1274,7 +1294,9 @@ discard block |
||
| 1274 | 1294 | |
| 1275 | 1295 | foreach ($this->sort[$items] as $item) |
| 1276 | 1296 | { |
| 1277 | - if (is_numeric($key = array_search($item, array_column($this->{$items}, 'name')))) $elements[] = $this->{$items}[$key]; |
|
| 1297 | + if (is_numeric($key = array_search($item, array_column($this->{$items}, 'name')))) { |
|
| 1298 | + $elements[] = $this->{$items}[$key]; |
|
| 1299 | + } |
|
| 1278 | 1300 | } |
| 1279 | 1301 | |
| 1280 | 1302 | return $this->{$items} = array_merge($elements, array_filter($this->{$items}, function($item) use($items) {return !in_array($item['name'], $this->sort[$items]);})); |
@@ -1293,9 +1315,13 @@ discard block |
||
| 1293 | 1315 | $order = (array)$order; |
| 1294 | 1316 | $values = $model->select('*'); |
| 1295 | 1317 | |
| 1296 | - if (!empty($where)) call_user_func_array([$values, $where[0]], array_slice($where, 1)); |
|
| 1318 | + if (!empty($where)) { |
|
| 1319 | + call_user_func_array([$values, $where[0]], array_slice($where, 1)); |
|
| 1320 | + } |
|
| 1297 | 1321 | |
| 1298 | - if (!empty($order)) call_user_func_array([$values, 'orderBy'], $order); |
|
| 1322 | + if (!empty($order)) { |
|
| 1323 | + call_user_func_array([$values, 'orderBy'], $order); |
|
| 1324 | + } |
|
| 1299 | 1325 | |
| 1300 | 1326 | return $values->get()->lists($field, $model->getKeyName())->toArray(); |
| 1301 | 1327 | } |
@@ -1304,8 +1330,11 @@ discard block |
||
| 1304 | 1330 | public function syncRelations($entity) |
| 1305 | 1331 | { |
| 1306 | 1332 | foreach ($this->relations as $field => $relation) { |
| 1307 | - if ($relation['pivot']) $this->add($entity, ['name' => $field, 'type' => 'multiselect', 'value' => [], 'values' => $this->relations[$field]['values']]); |
|
| 1308 | - else $this->sync($entity, $field, ['type' => 'select', 'values' => $this->relations[$field]['values']]); |
|
| 1333 | + if ($relation['pivot']) { |
|
| 1334 | + $this->add($entity, ['name' => $field, 'type' => 'multiselect', 'value' => [], 'values' => $this->relations[$field]['values']]); |
|
| 1335 | + } else { |
|
| 1336 | + $this->sync($entity, $field, ['type' => 'select', 'values' => $this->relations[$field]['values']]); |
|
| 1337 | + } |
|
| 1309 | 1338 | } |
| 1310 | 1339 | } |
| 1311 | 1340 | |
@@ -20,42 +20,42 @@ discard block |
||
| 20 | 20 | |
| 21 | 21 | @section('content') |
| 22 | 22 | <?php |
| 23 | - function tree_element($entry, $key, $all_entries, $crud) |
|
| 24 | - { |
|
| 23 | + function tree_element($entry, $key, $all_entries, $crud) |
|
| 24 | + { |
|
| 25 | 25 | if (!isset($entry->tree_element_shown)) { |
| 26 | - // mark the element as shown |
|
| 27 | - $all_entries[$key]->tree_element_shown = true; |
|
| 28 | - $entry->tree_element_shown = true; |
|
| 26 | + // mark the element as shown |
|
| 27 | + $all_entries[$key]->tree_element_shown = true; |
|
| 28 | + $entry->tree_element_shown = true; |
|
| 29 | 29 | |
| 30 | - // show the tree element |
|
| 31 | - echo '<li id="list_'.$entry->id.'">'; |
|
| 32 | - echo '<div><span class="disclose"><span></span></span>'.$entry->{$crud->reorder_label}.'</div>'; |
|
| 30 | + // show the tree element |
|
| 31 | + echo '<li id="list_'.$entry->id.'">'; |
|
| 32 | + echo '<div><span class="disclose"><span></span></span>'.$entry->{$crud->reorder_label}.'</div>'; |
|
| 33 | 33 | |
| 34 | - // see if this element has any children |
|
| 35 | - $children = []; |
|
| 36 | - foreach ($all_entries as $key => $subentry) { |
|
| 34 | + // see if this element has any children |
|
| 35 | + $children = []; |
|
| 36 | + foreach ($all_entries as $key => $subentry) { |
|
| 37 | 37 | if ($subentry->parent_id == $entry->id) { |
| 38 | - $children[] = $subentry; |
|
| 38 | + $children[] = $subentry; |
|
| 39 | + } |
|
| 39 | 40 | } |
| 40 | - } |
|
| 41 | 41 | |
| 42 | - $children = collect($children)->sortBy('lft'); |
|
| 42 | + $children = collect($children)->sortBy('lft'); |
|
| 43 | 43 | |
| 44 | - // if it does have children, show them |
|
| 45 | - if (count($children)) { |
|
| 44 | + // if it does have children, show them |
|
| 45 | + if (count($children)) { |
|
| 46 | 46 | echo '<ol>'; |
| 47 | 47 | foreach ($children as $key => $child) { |
| 48 | - $children[$key] = tree_element($child, $child->id, $all_entries, $crud); |
|
| 48 | + $children[$key] = tree_element($child, $child->id, $all_entries, $crud); |
|
| 49 | 49 | } |
| 50 | 50 | echo '</ol>'; |
| 51 | - } |
|
| 52 | - echo '</li>'; |
|
| 51 | + } |
|
| 52 | + echo '</li>'; |
|
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | return $entry; |
| 56 | - } |
|
| 56 | + } |
|
| 57 | 57 | |
| 58 | - ?> |
|
| 58 | + ?> |
|
| 59 | 59 | <div class="row"> |
| 60 | 60 | <div class="col-md-8 col-md-offset-2"> |
| 61 | 61 | @if ($crud->hasAccess('list')) |
@@ -87,15 +87,15 @@ discard block |
||
| 87 | 87 | |
| 88 | 88 | <ol class="sortable"> |
| 89 | 89 | <?php |
| 90 | - $all_entries = collect($entries->all())->sortBy('lft')->keyBy('id'); |
|
| 91 | - $root_entries = $all_entries->filter(function($item) { |
|
| 90 | + $all_entries = collect($entries->all())->sortBy('lft')->keyBy('id'); |
|
| 91 | + $root_entries = $all_entries->filter(function($item) { |
|
| 92 | 92 | return $item->parent_id == 0; |
| 93 | - }); |
|
| 94 | - ?> |
|
| 93 | + }); |
|
| 94 | + ?> |
|
| 95 | 95 | @foreach ($root_entries as $key => $entry) |
| 96 | 96 | <?php |
| 97 | 97 | $root_entries[$key] = tree_element($entry, $key, $all_entries, $crud); |
| 98 | - ?> |
|
| 98 | + ?> |
|
| 99 | 99 | @endforeach |
| 100 | 100 | </ol> |
| 101 | 101 | |
@@ -2,34 +2,34 @@ discard block |
||
| 2 | 2 | <div class="form-group checklist_dependency" data-entity ="{{ $field['field_unique_name'] }}"> |
| 3 | 3 | <label>{{ $field['label'] }}</label> |
| 4 | 4 | <?php |
| 5 | - $entity_model = $crud->getModel(); |
|
| 5 | + $entity_model = $crud->getModel(); |
|
| 6 | 6 | |
| 7 | - //short name for dependency fields |
|
| 8 | - $primary_dependency = $field['dependencies']['primary']; |
|
| 9 | - $secondary_dependency = $field['dependencies']['secondary']; |
|
| 7 | + //short name for dependency fields |
|
| 8 | + $primary_dependency = $field['dependencies']['primary']; |
|
| 9 | + $secondary_dependency = $field['dependencies']['secondary']; |
|
| 10 | 10 | |
| 11 | 11 | |
| 12 | - //all items with relation |
|
| 13 | - $dependencies = $primary_dependency['model']::with($primary_dependency['entity_secondary'])->get(); |
|
| 12 | + //all items with relation |
|
| 13 | + $dependencies = $primary_dependency['model']::with($primary_dependency['entity_secondary'])->get(); |
|
| 14 | 14 | |
| 15 | - $dependencyArray = []; |
|
| 15 | + $dependencyArray = []; |
|
| 16 | 16 | |
| 17 | - //convert dependency array to simple matrix ( prymary id as key and array with secondaries id ) |
|
| 18 | - foreach($dependencies as $primary){ |
|
| 19 | - $dependencyArray[$primary->id] = []; |
|
| 17 | + //convert dependency array to simple matrix ( prymary id as key and array with secondaries id ) |
|
| 18 | + foreach($dependencies as $primary){ |
|
| 19 | + $dependencyArray[$primary->id] = []; |
|
| 20 | 20 | foreach($primary->{$primary_dependency['entity_secondary']} as $secondary){ |
| 21 | 21 | $dependencyArray[$primary->id][] = $secondary->id; |
| 22 | 22 | } |
| 23 | - } |
|
| 23 | + } |
|
| 24 | 24 | |
| 25 | - //for update form, get initial state of the entity |
|
| 26 | - if( isset($id) && $id ){ |
|
| 25 | + //for update form, get initial state of the entity |
|
| 26 | + if( isset($id) && $id ){ |
|
| 27 | 27 | |
| 28 | 28 | //get entity with relations for primary dependency |
| 29 | 29 | $entity_dependencies = $entity_model->with($primary_dependency['entity']) |
| 30 | - ->with($primary_dependency['entity'].'.'.$primary_dependency['entity_secondary']) |
|
| 31 | - ->where('id', $id) |
|
| 32 | - ->first(); |
|
| 30 | + ->with($primary_dependency['entity'].'.'.$primary_dependency['entity_secondary']) |
|
| 31 | + ->where('id', $id) |
|
| 32 | + ->first(); |
|
| 33 | 33 | |
| 34 | 34 | $secondaries_from_primary = []; |
| 35 | 35 | |
@@ -40,23 +40,23 @@ discard block |
||
| 40 | 40 | |
| 41 | 41 | //create secondary dependency from primary relation, used to check what chekbox must be check from second checklist |
| 42 | 42 | if( old($primary_dependency['name']) ) { |
| 43 | - foreach( old($primary_dependency['name']) as $primary_item ){ |
|
| 43 | + foreach( old($primary_dependency['name']) as $primary_item ){ |
|
| 44 | 44 | foreach($dependencyArray[$primary_item] as $second_item ){ |
| 45 | 45 | $secondary_ids[$second_item] = $second_item; |
| 46 | 46 | } |
| 47 | - } |
|
| 47 | + } |
|
| 48 | 48 | }else{ //create dependecies from relation if not from validate error |
| 49 | - foreach( $primary_array as $primary_item ){ |
|
| 49 | + foreach( $primary_array as $primary_item ){ |
|
| 50 | 50 | foreach($primary_item[$secondary_dependency['entity']] as $second_item ){ |
| 51 | 51 | $secondary_ids[$second_item['id']] = $second_item['id']; |
| 52 | 52 | } |
| 53 | - } |
|
| 53 | + } |
|
| 54 | 54 | } |
| 55 | 55 | |
| 56 | - } |
|
| 56 | + } |
|
| 57 | 57 | |
| 58 | - //json encode of dependency matrix |
|
| 59 | - $dependencyJson = json_encode($dependencyArray); |
|
| 58 | + //json encode of dependency matrix |
|
| 59 | + $dependencyJson = json_encode($dependencyArray); |
|
| 60 | 60 | ?> |
| 61 | 61 | <script> |
| 62 | 62 | var {{ $field['field_unique_name'] }} = {!! $dependencyJson !!}; |
@@ -45,7 +45,7 @@ |
||
| 45 | 45 | $secondary_ids[$second_item] = $second_item; |
| 46 | 46 | } |
| 47 | 47 | } |
| 48 | - }else{ //create dependecies from relation if not from validate error |
|
| 48 | + } else{ //create dependecies from relation if not from validate error |
|
| 49 | 49 | foreach( $primary_array as $primary_item ){ |
| 50 | 50 | foreach($primary_item[$secondary_dependency['entity']] as $second_item ){ |
| 51 | 51 | $secondary_ids[$second_item['id']] = $second_item['id']; |
@@ -190,10 +190,10 @@ discard block |
||
| 190 | 190 | |
| 191 | 191 | public function addCreateField($field) |
| 192 | 192 | { |
| 193 | - return $this->add('createFields', $field); |
|
| 193 | + return $this->add('createFields', $field); |
|
| 194 | 194 | } |
| 195 | 195 | |
| 196 | - public function setUpdateFields($fields) |
|
| 196 | + public function setUpdateFields($fields) |
|
| 197 | 197 | { |
| 198 | 198 | $this->addMultiple('updateFields', $fields); |
| 199 | 199 | } |
@@ -541,9 +541,9 @@ discard block |
||
| 541 | 541 | $model->{$relation['name']}()->sync($data[$key]); |
| 542 | 542 | |
| 543 | 543 | foreach($relation['pivotFields'] as $pivotField){ |
| 544 | - foreach($data[$pivotField] as $pivot_id => $field){ |
|
| 545 | - $model->{$relation['name']}()->updateExistingPivot($pivot_id, [$pivotField => $field]); |
|
| 546 | - } |
|
| 544 | + foreach($data[$pivotField] as $pivot_id => $field){ |
|
| 545 | + $model->{$relation['name']}()->updateExistingPivot($pivot_id, [$pivotField => $field]); |
|
| 546 | + } |
|
| 547 | 547 | } |
| 548 | 548 | } |
| 549 | 549 | } |
@@ -40,7 +40,9 @@ discard block |
||
| 40 | 40 | |
| 41 | 41 | public function setModel($model) |
| 42 | 42 | { |
| 43 | - if (!class_exists($model)) throw new \Exception('This model does not exist.', 404); |
|
| 43 | + if (!class_exists($model)) { |
|
| 44 | + throw new \Exception('This model does not exist.', 404); |
|
| 45 | + } |
|
| 44 | 46 | |
| 45 | 47 | $this->model = new $model(); |
| 46 | 48 | $this->query = $this->model->select('*'); |
@@ -56,7 +58,9 @@ discard block |
||
| 56 | 58 | // TODO: make this work without having to specify "index" |
| 57 | 59 | public function setRoute($route, $parameters = []) |
| 58 | 60 | { |
| 59 | - if (!\Route::has($route)) throw new \Exception('This route does not exist.', 404); |
|
| 61 | + if (!\Route::has($route)) { |
|
| 62 | + throw new \Exception('This route does not exist.', 404); |
|
| 63 | + } |
|
| 60 | 64 | |
| 61 | 65 | $this->route = route($route, $parameters); |
| 62 | 66 | $this->initButtons(); |
@@ -254,7 +258,9 @@ discard block |
||
| 254 | 258 | { |
| 255 | 259 | $model = $this->model->findOrFail($id); |
| 256 | 260 | $updated = $model->update($data); |
| 257 | - if ($updated) $this->syncPivot($model, $data); |
|
| 261 | + if ($updated) { |
|
| 262 | + $this->syncPivot($model, $data); |
|
| 263 | + } |
|
| 258 | 264 | |
| 259 | 265 | return $model; |
| 260 | 266 | } |
@@ -282,7 +288,9 @@ discard block |
||
| 282 | 288 | |
| 283 | 289 | public function checkPermission($permission) // DONE |
| 284 | 290 | { |
| 285 | - if (!in_array($permission, $this->permissions)) abort(403); |
|
| 291 | + if (!in_array($permission, $this->permissions)) { |
|
| 292 | + abort(403); |
|
| 293 | + } |
|
| 286 | 294 | } |
| 287 | 295 | |
| 288 | 296 | public function unsetListActions($actions) |
@@ -351,11 +359,17 @@ discard block |
||
| 351 | 359 | |
| 352 | 360 | $this->state = 'list'; |
| 353 | 361 | |
| 354 | - if (in_array('create', $segments)) $this->state = 'add'; |
|
| 362 | + if (in_array('create', $segments)) { |
|
| 363 | + $this->state = 'add'; |
|
| 364 | + } |
|
| 355 | 365 | |
| 356 | - if (in_array('edit', $segments)) $this->state = 'edit'; |
|
| 366 | + if (in_array('edit', $segments)) { |
|
| 367 | + $this->state = 'edit'; |
|
| 368 | + } |
|
| 357 | 369 | |
| 358 | - if (is_numeric(end($segments))) $this->state = 'view'; |
|
| 370 | + if (is_numeric(end($segments))) { |
|
| 371 | + $this->state = 'view'; |
|
| 372 | + } |
|
| 359 | 373 | } |
| 360 | 374 | |
| 361 | 375 | private function removeButtons($buttons) |
@@ -373,21 +387,27 @@ discard block |
||
| 373 | 387 | $columns = \Schema::getColumnListing($this->model->getTable()); |
| 374 | 388 | $fillable = $this->model->getFillable(); |
| 375 | 389 | |
| 376 | - if (!empty($fillable)) $columns = array_intersect($columns, $fillable); |
|
| 390 | + if (!empty($fillable)) { |
|
| 391 | + $columns = array_intersect($columns, $fillable); |
|
| 392 | + } |
|
| 377 | 393 | |
| 378 | 394 | return array_values(array_diff($columns, [$this->model->getKeyName(), 'updated_at', 'deleted_at'])); |
| 379 | 395 | } |
| 380 | 396 | |
| 381 | 397 | private function syncColumn($column) |
| 382 | 398 | { |
| 383 | - if (array_key_exists('name', (array)$column)) return array_merge(['type' => $this->getType($column['name'])], $column); |
|
| 399 | + if (array_key_exists('name', (array)$column)) { |
|
| 400 | + return array_merge(['type' => $this->getType($column['name'])], $column); |
|
| 401 | + } |
|
| 384 | 402 | |
| 385 | 403 | return false; |
| 386 | 404 | } |
| 387 | 405 | |
| 388 | 406 | private function syncField($field) |
| 389 | 407 | { |
| 390 | - if (array_key_exists('name', (array)$field)) return array_merge(['type' => $this->getType($field['name']), 'value' => '', 'default' => null, 'values' => [], 'attributes' => []], $field); |
|
| 408 | + if (array_key_exists('name', (array)$field)) { |
|
| 409 | + return array_merge(['type' => $this->getType($field['name']), 'value' => '', 'default' => null, 'values' => [], 'attributes' => []], $field); |
|
| 410 | + } |
|
| 391 | 411 | |
| 392 | 412 | return false; |
| 393 | 413 | } |
@@ -404,11 +424,17 @@ discard block |
||
| 404 | 424 | |
| 405 | 425 | private function getType($field) // DONE |
| 406 | 426 | { |
| 407 | - if (!array_key_exists($field, $this->fieldTypes)) return 'text'; |
|
| 427 | + if (!array_key_exists($field, $this->fieldTypes)) { |
|
| 428 | + return 'text'; |
|
| 429 | + } |
|
| 408 | 430 | |
| 409 | - if ($field == 'password') return 'password'; |
|
| 431 | + if ($field == 'password') { |
|
| 432 | + return 'password'; |
|
| 433 | + } |
|
| 410 | 434 | |
| 411 | - if ($field == 'email') return 'email'; |
|
| 435 | + if ($field == 'email') { |
|
| 436 | + return 'email'; |
|
| 437 | + } |
|
| 412 | 438 | |
| 413 | 439 | switch ($this->fieldTypes[$field]['type']) |
| 414 | 440 | { |
@@ -466,7 +492,9 @@ discard block |
||
| 466 | 492 | |
| 467 | 493 | $this->fields[] = ['name' => $field, 'value' => '', 'default' => $this->fieldTypes[$field]['default'], 'type' => $this->getType($field), 'values' => [], 'attributes' => []]; |
| 468 | 494 | |
| 469 | - if (!in_array($field, $this->model->getHidden())) $this->columns[] = ['name' => $field, 'type' => $this->getType($field)]; |
|
| 495 | + if (!in_array($field, $this->model->getHidden())) { |
|
| 496 | + $this->columns[] = ['name' => $field, 'type' => $this->getType($field)]; |
|
| 497 | + } |
|
| 470 | 498 | }, $this->getColumns()); |
| 471 | 499 | } |
| 472 | 500 | |
@@ -478,8 +506,11 @@ discard block |
||
| 478 | 506 | |
| 479 | 507 | foreach ($this->{$fields} as $key => $field) |
| 480 | 508 | { |
| 481 | - if (array_key_exists($field['name'], $this->relations) && $this->relations[$field['name']]['pivot']) $this->{$fields}[$key]['value'] = $this->item->{$this->relations[$field['name']]['name']}()->lists($this->relations[$field['name']]['model']->getKeyName())->toArray(); |
|
| 482 | - else $this->{$fields}[$key]['value'] = $this->item->{$field['name']}; |
|
| 509 | + if (array_key_exists($field['name'], $this->relations) && $this->relations[$field['name']]['pivot']) { |
|
| 510 | + $this->{$fields}[$key]['value'] = $this->item->{$this->relations[$field['name']]['name']}()->lists($this->relations[$field['name']]['model']->getKeyName())->toArray(); |
|
| 511 | + } else { |
|
| 512 | + $this->{$fields}[$key]['value'] = $this->item->{$field['name']}; |
|
| 513 | + } |
|
| 483 | 514 | } |
| 484 | 515 | } |
| 485 | 516 | } |
@@ -499,7 +530,9 @@ discard block |
||
| 499 | 530 | if (!empty($this->{$type})) |
| 500 | 531 | { |
| 501 | 532 | $this->{$type} = array_map(function($field) use ($fields, $attributes) { |
| 502 | - if (in_array($field['name'], (array)$fields)) $field = array_merge($field, $attributes); |
|
| 533 | + if (in_array($field['name'], (array)$fields)) { |
|
| 534 | + $field = array_merge($field, $attributes); |
|
| 535 | + } |
|
| 503 | 536 | |
| 504 | 537 | return $field; |
| 505 | 538 | }, $this->{$type}); |
@@ -524,7 +557,9 @@ discard block |
||
| 524 | 557 | |
| 525 | 558 | foreach ($this->sort[$items] as $item) |
| 526 | 559 | { |
| 527 | - if (is_numeric($key = array_search($item, array_column($this->{$items}, 'name')))) $elements[] = $this->{$items}[$key]; |
|
| 560 | + if (is_numeric($key = array_search($item, array_column($this->{$items}, 'name')))) { |
|
| 561 | + $elements[] = $this->{$items}[$key]; |
|
| 562 | + } |
|
| 528 | 563 | } |
| 529 | 564 | |
| 530 | 565 | return $this->{$items} = array_merge($elements, array_filter($this->{$items}, function($item) use($items) {return !in_array($item['name'], $this->sort[$items]);})); |
@@ -554,9 +589,13 @@ discard block |
||
| 554 | 589 | $order = (array)$order; |
| 555 | 590 | $values = $model->select('*'); |
| 556 | 591 | |
| 557 | - if (!empty($where)) call_user_func_array([$values, $where[0]], array_slice($where, 1)); |
|
| 592 | + if (!empty($where)) { |
|
| 593 | + call_user_func_array([$values, $where[0]], array_slice($where, 1)); |
|
| 594 | + } |
|
| 558 | 595 | |
| 559 | - if (!empty($order)) call_user_func_array([$values, 'orderBy'], $order); |
|
| 596 | + if (!empty($order)) { |
|
| 597 | + call_user_func_array([$values, 'orderBy'], $order); |
|
| 598 | + } |
|
| 560 | 599 | |
| 561 | 600 | return $values->get()->lists($field, $model->getKeyName())->toArray(); |
| 562 | 601 | } |
@@ -564,8 +603,11 @@ discard block |
||
| 564 | 603 | private function syncRelations($entity) |
| 565 | 604 | { |
| 566 | 605 | foreach ($this->relations as $field => $relation) { |
| 567 | - if ($relation['pivot']) $this->add($entity, ['name' => $field, 'type' => 'multiselect', 'value' => [], 'values' => $this->relations[$field]['values']]); |
|
| 568 | - else $this->sync($entity, $field, ['type' => 'select', 'values' => $this->relations[$field]['values']]); |
|
| 606 | + if ($relation['pivot']) { |
|
| 607 | + $this->add($entity, ['name' => $field, 'type' => 'multiselect', 'value' => [], 'values' => $this->relations[$field]['values']]); |
|
| 608 | + } else { |
|
| 609 | + $this->sync($entity, $field, ['type' => 'select', 'values' => $this->relations[$field]['values']]); |
|
| 610 | + } |
|
| 569 | 611 | } |
| 570 | 612 | } |
| 571 | 613 | |