PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Http/Controllers/LA/OrganizationsController.php

https://bitbucket.org/Japhethkelly/agmtest
PHP | 263 lines | 171 code | 36 blank | 56 comment | 40 complexity | eef1c909a8df03e684704b7838d1a2c0 MD5 | raw file
  1. <?php
  2. /**
  3. * Controller genrated using LaraAdmin
  4. * Help: http://laraadmin.com
  5. */
  6. namespace App\Http\Controllers\LA;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Http\Request;
  9. use App\Http\Requests;
  10. use Auth;
  11. use DB;
  12. use Validator;
  13. use Datatables;
  14. use Collective\Html\FormFacade as Form;
  15. use Dwij\Laraadmin\Models\Module;
  16. use Dwij\Laraadmin\Models\ModuleFields;
  17. use App\Models\Organization;
  18. class OrganizationsController extends Controller
  19. {
  20. public $show_action = true;
  21. public $view_col = 'name';
  22. public $listing_cols = ['id', 'profile_image', 'name', 'email', 'phone', 'website', 'assigned_to', 'city'];
  23. public function __construct() {
  24. // Field Access of Listing Columns
  25. if(\Dwij\Laraadmin\Helpers\LAHelper::laravel_ver() == 5.3) {
  26. $this->middleware(function ($request, $next) {
  27. $this->listing_cols = ModuleFields::listingColumnAccessScan('Organizations', $this->listing_cols);
  28. return $next($request);
  29. });
  30. } else {
  31. $this->listing_cols = ModuleFields::listingColumnAccessScan('Organizations', $this->listing_cols);
  32. }
  33. }
  34. /**
  35. * Display a listing of the Organizations.
  36. *
  37. * @return \Illuminate\Http\Response
  38. */
  39. public function index()
  40. {
  41. $module = Module::get('Organizations');
  42. if(Module::hasAccess($module->id)) {
  43. return View('la.organizations.index', [
  44. 'show_actions' => $this->show_action,
  45. 'listing_cols' => $this->listing_cols,
  46. 'module' => $module
  47. ]);
  48. } else {
  49. return redirect(config('laraadmin.adminRoute')."/");
  50. }
  51. }
  52. /**
  53. * Show the form for creating a new organization.
  54. *
  55. * @return \Illuminate\Http\Response
  56. */
  57. public function create()
  58. {
  59. //
  60. }
  61. /**
  62. * Store a newly created organization in database.
  63. *
  64. * @param \Illuminate\Http\Request $request
  65. * @return \Illuminate\Http\Response
  66. */
  67. public function store(Request $request)
  68. {
  69. if(Module::hasAccess("Organizations", "create")) {
  70. $rules = Module::validateRules("Organizations", $request);
  71. $validator = Validator::make($request->all(), $rules);
  72. if ($validator->fails()) {
  73. return redirect()->back()->withErrors($validator)->withInput();
  74. }
  75. $insert_id = Module::insert("Organizations", $request);
  76. return redirect()->route(config('laraadmin.adminRoute') . '.organizations.index');
  77. } else {
  78. return redirect(config('laraadmin.adminRoute')."/");
  79. }
  80. }
  81. /**
  82. * Display the specified organization.
  83. *
  84. * @param int $id
  85. * @return \Illuminate\Http\Response
  86. */
  87. public function show($id)
  88. {
  89. if(Module::hasAccess("Organizations", "view")) {
  90. $organization = Organization::find($id);
  91. if(isset($organization->id)) {
  92. $module = Module::get('Organizations');
  93. $module->row = $organization;
  94. return view('la.organizations.show', [
  95. 'module' => $module,
  96. 'view_col' => $this->view_col,
  97. 'no_header' => true,
  98. 'no_padding' => "no-padding"
  99. ])->with('organization', $organization);
  100. } else {
  101. return view('errors.404', [
  102. 'record_id' => $id,
  103. 'record_name' => ucfirst("organization"),
  104. ]);
  105. }
  106. } else {
  107. return redirect(config('laraadmin.adminRoute')."/");
  108. }
  109. }
  110. /**
  111. * Show the form for editing the specified organization.
  112. *
  113. * @param int $id
  114. * @return \Illuminate\Http\Response
  115. */
  116. public function edit($id)
  117. {
  118. if(Module::hasAccess("Organizations", "edit")) {
  119. $organization = Organization::find($id);
  120. if(isset($organization->id)) {
  121. $organization = Organization::find($id);
  122. $module = Module::get('Organizations');
  123. $module->row = $organization;
  124. return view('la.organizations.edit', [
  125. 'module' => $module,
  126. 'view_col' => $this->view_col,
  127. ])->with('organization', $organization);
  128. } else {
  129. return view('errors.404', [
  130. 'record_id' => $id,
  131. 'record_name' => ucfirst("organization"),
  132. ]);
  133. }
  134. } else {
  135. return redirect(config('laraadmin.adminRoute')."/");
  136. }
  137. }
  138. /**
  139. * Update the specified organization in storage.
  140. *
  141. * @param \Illuminate\Http\Request $request
  142. * @param int $id
  143. * @return \Illuminate\Http\Response
  144. */
  145. public function update(Request $request, $id)
  146. {
  147. if(Module::hasAccess("Organizations", "edit")) {
  148. $rules = Module::validateRules("Organizations", $request, true);
  149. $validator = Validator::make($request->all(), $rules);
  150. if ($validator->fails()) {
  151. return redirect()->back()->withErrors($validator)->withInput();;
  152. }
  153. $insert_id = Module::updateRow("Organizations", $request, $id);
  154. return redirect()->route(config('laraadmin.adminRoute') . '.organizations.index');
  155. } else {
  156. return redirect(config('laraadmin.adminRoute')."/");
  157. }
  158. }
  159. /**
  160. * Remove the specified organization from storage.
  161. *
  162. * @param int $id
  163. * @return \Illuminate\Http\Response
  164. */
  165. public function destroy($id)
  166. {
  167. if(Module::hasAccess("Organizations", "delete")) {
  168. Organization::find($id)->delete();
  169. // Redirecting to index() method
  170. return redirect()->route(config('laraadmin.adminRoute') . '.organizations.index');
  171. } else {
  172. return redirect(config('laraadmin.adminRoute')."/");
  173. }
  174. }
  175. /**
  176. * Datatable Ajax fetch
  177. *
  178. * @return
  179. */
  180. public function dtajax()
  181. {
  182. $values = DB::table('organizations')->select($this->listing_cols)->whereNull('deleted_at');
  183. $out = Datatables::of($values)->make();
  184. $data = $out->getData();
  185. $fields_popup = ModuleFields::getModuleFields('Organizations');
  186. for($i=0; $i < count($data->data); $i++) {
  187. for ($j=0; $j < count($this->listing_cols); $j++) {
  188. $col = $this->listing_cols[$j];
  189. if($fields_popup[$col] != null && $fields_popup[$col]->field_type_str == "Image") {
  190. if($data->data[$i][$j] != 0) {
  191. $img = \App\Models\Upload::find($data->data[$i][$j]);
  192. if(isset($img->name)) {
  193. $data->data[$i][$j] = '<img src="'.$img->path().'?s=50">';
  194. } else {
  195. $data->data[$i][$j] = "";
  196. }
  197. } else {
  198. $data->data[$i][$j] = "";
  199. }
  200. }
  201. if($fields_popup[$col] != null && starts_with($fields_popup[$col]->popup_vals, "@")) {
  202. $data->data[$i][$j] = ModuleFields::getFieldValue($fields_popup[$col], $data->data[$i][$j]);
  203. }
  204. if($col == $this->view_col) {
  205. $data->data[$i][$j] = '<a href="'.url(config('laraadmin.adminRoute') . '/organizations/'.$data->data[$i][0]).'">'.$data->data[$i][$j].'</a>';
  206. }
  207. // else if($col == "author") {
  208. // $data->data[$i][$j];
  209. // }
  210. }
  211. if($this->show_action) {
  212. $output = '';
  213. if(Module::hasAccess("Organizations", "edit")) {
  214. $output .= '<a href="'.url(config('laraadmin.adminRoute') . '/organizations/'.$data->data[$i][0].'/edit').'" class="btn btn-warning btn-xs" style="display:inline;padding:2px 5px 3px 5px;"><i class="fa fa-edit"></i></a>';
  215. }
  216. if(Module::hasAccess("Organizations", "delete")) {
  217. $output .= Form::open(['route' => [config('laraadmin.adminRoute') . '.organizations.destroy', $data->data[$i][0]], 'method' => 'delete', 'style'=>'display:inline']);
  218. $output .= ' <button class="btn btn-danger btn-xs" type="submit"><i class="fa fa-times"></i></button>';
  219. $output .= Form::close();
  220. }
  221. $data->data[$i][] = (string)$output;
  222. }
  223. }
  224. $out->setData($data);
  225. return $out;
  226. }
  227. }