/admin/Http/Controllers/FieldsController.php

https://github.com/marketplacekit/marketplacekit · PHP · 148 lines · 90 code · 21 blank · 37 comment · 2 complexity · 8e3fe5b5fa6ffaa27a6162b29ac0fbf7 MD5 · raw file

  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Http\Response;
  5. use Illuminate\Routing\Controller;
  6. use Kris\LaravelFormBuilder\FormBuilder;
  7. use Setting;
  8. use App\Models\Filter;
  9. class FieldsController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. * @return Response
  14. */
  15. public function index(Request $request, FormBuilder $formBuilder)
  16. {
  17. $filters = Filter::orderBy('position', 'ASC')->get();
  18. return view('panel::fields.index', compact('filters'));
  19. }
  20. public function save_languages()
  21. {
  22. $filters = Filter::orderBy('position', 'ASC')->get();
  23. save_language_file('filters', $filters->pluck('name'));
  24. }
  25. /**
  26. * Show the form for creating a new resource.
  27. * @return Response
  28. */
  29. public function create(FormBuilder $formBuilder)
  30. {
  31. //
  32. //php artisan make:form Forms/FilterForm --fields="name:text, field:text, form_ui:select, categories:select, hidden:checkbox, default:checkbox"
  33. $form = $formBuilder->create('Modules\Panel\Forms\FilterForm', [
  34. 'method' => 'POST',
  35. 'url' => route('panel.fields.store')
  36. ]);
  37. return view('panel::fields.create', compact('form'));
  38. }
  39. /**
  40. * Store a newly created resource in storage.
  41. * @param Request $request
  42. * @return Response
  43. */
  44. public function store(Request $request)
  45. {
  46. $params = $request->all();
  47. #dd($params);
  48. #$params['form_input_meta'] = json_encode(json_decode($params['form_input_meta'], true)[0]);
  49. $filter = new Filter();
  50. $filter->name = $request->get('name');
  51. $filter->field = $request->get('field');
  52. $filter->position = intval($request->get('position', 1000));
  53. $filter->is_category_specific = $request->get('is_category_specific');
  54. $filter->is_searchable = $request->get('is_searchable');
  55. $filter->is_hidden = 0;
  56. $filter->categories = [];
  57. if($request->get('categories'))
  58. $filter->categories = array_map('intval', $request->get('categories'));
  59. $filter->search_ui = $request->get('search_ui');
  60. #$filter->form_input_meta = $params['form_input_meta'];
  61. $filter->form_input_type = $request->get('form_input_type', 'text');
  62. $filter->save();
  63. $this->save_languages();
  64. alert()->success('Successfully saved');
  65. return redirect(route('panel.fields.edit', $filter->id));
  66. }
  67. /**
  68. * Show the specified resource.
  69. * @return Response
  70. */
  71. public function show()
  72. {
  73. return view('panel::show');
  74. }
  75. /**
  76. * Show the form for editing the specified resource.
  77. * @return Response
  78. */
  79. public function edit($id, FormBuilder $formBuilder)
  80. {
  81. $filter = Filter::findOrFail($id);
  82. $form = $formBuilder->create('Modules\Panel\Forms\FilterForm', [
  83. 'method' => 'PUT',
  84. 'url' => route('panel.fields.update', $id),
  85. 'model' => $filter
  86. ]);
  87. return view('panel::fields.create', compact('form', 'filter'));
  88. }
  89. /**
  90. * Update the specified resource in storage.
  91. * @param Request $request
  92. * @return Response
  93. */
  94. public function update($id, Request $request)
  95. {
  96. $params = $request->all();
  97. $params['form_input_meta'] = (json_decode($params['form_input_meta_str'], true)[0]);
  98. #dd($params['form_input_meta']);
  99. #$params['form_input_meta'] = $params['form_input_meta'];
  100. $filter = Filter::findOrFail($id);
  101. $filter->position = $request->get('position', 1000);
  102. $filter->is_category_specific = $request->has('is_category_specific');
  103. $filter->is_searchable = $request->has('is_searchable');
  104. $filter->is_hidden = $request->has('is_hidden');
  105. $filter->categories = [];
  106. if($request->get('categories'))
  107. $filter->categories = array_map('intval', $request->get('categories'));
  108. $filter->search_ui = $request->get('search_ui');
  109. $filter->form_input_meta = $params['form_input_meta'];
  110. $filter->form_input_type = $request->get('form_input_type');
  111. $filter->save();
  112. $this->save_languages();
  113. alert()->success('Successfully saved');
  114. return redirect(route('panel.fields.index'));
  115. }
  116. /**
  117. * Remove the specified resource from storage.
  118. * @return Response
  119. */
  120. public function destroy($id)
  121. {
  122. $filter = Filter::findOrFail($id);
  123. $filter->delete();
  124. alert()->success('Successfully deleted');
  125. return redirect(route('panel.fields.index'));
  126. }
  127. }