diff --git a/DataTables/GenderDataTable.php b/DataTables/GenderDataTable.php index 4284a83..0285921 100644 --- a/DataTables/GenderDataTable.php +++ b/DataTables/GenderDataTable.php @@ -2,7 +2,7 @@ namespace Modules\Master\DataTables; - use Modules\Gender\Entities\Gender; + use Modules\Master\Entities\Gender; use Yajra\DataTables\Html\Column; use Yajra\DataTables\Services\DataTable; @@ -28,11 +28,12 @@ }) ->addIndexColumn() ->addColumn('status', function ($model) { - return $model->status == 1 ? 'Active' : 'Inactive'; + return view('master::gender._status', compact('model')); }) ->addColumn('action', function ($model) { return view('master::gender._action', compact('model')); - }); + }) + ->rawColumns(['status','action']); } /** @@ -55,7 +56,7 @@ public function html() { return $this->builder() - ->setTableId('gender-table') + ->setTableId('master-gender-table') ->columns($this->getColumns()) ->minifiedAjax() ->orderBy(1, 'asc') @@ -79,10 +80,11 @@ return [ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('name')->title(__('Name')), - Column::make('status')->title(__('Status')), + Column::computed('status')->title(__('Status'))->width(50)->addClass('text-center')->exportable(false), Column::computed('action') ->exportable(false) ->printable(false) + ->width(100) ->addClass('text-center') ->responsivePriority(-1), ]; diff --git a/Http/Controllers/GenderController.php b/Http/Controllers/GenderController.php index c6a7ba9..ee6649e 100644 --- a/Http/Controllers/GenderController.php +++ b/Http/Controllers/GenderController.php @@ -20,6 +20,7 @@ public function __construct() { + $this->middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); @@ -128,7 +129,7 @@ * * @return Renderable */ - public function update(UpdateGenderRequest $request, Gender $company) + public function update(UpdateGenderRequest $request, Gender $gender) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.update')) { abort(403, 'Sorry !! You are Unauthorized to update any ' . $this->module->alias . ' !'); @@ -140,7 +141,7 @@ // Update the Gender... if ($validated) { try { - $company->update($validated); + $gender->update($validated); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' gender updated successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' gender updated failed.']); @@ -158,14 +159,14 @@ * * @return Renderable */ - public function destroy(Gender $company) + public function destroy(Gender $gender) { if (is_null($this->user) || !$this->user->can($this->module->alias . '.delete')) { abort(403, 'Sorry !! You are Unauthorized to delete any ' . $this->module->alias . ' !'); } try { - $company->delete(); + $gender->delete(); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' gender deleted successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' gender deleted failed.']); diff --git a/Http/Requests/Gender/StoreGenderRequest.php b/Http/Requests/Gender/StoreGenderRequest.php index a57be34..f7c6769 100644 --- a/Http/Requests/Gender/StoreGenderRequest.php +++ b/Http/Requests/Gender/StoreGenderRequest.php @@ -29,7 +29,7 @@ { return [ 'name' => 'required|string|max:50|unique:genders,name', - 'status' => 'nullable|string|max:1', + 'status' => 'nullable|integer|max:1', ]; } @@ -63,4 +63,15 @@ 'messages' => 'Gender created failed.' ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); } + + protected function prepareForValidation() + { + $status = 0; + if($this->status == "on"){ + $status = 1; + } + $this->merge([ + 'status' => $status + ]); + } } diff --git a/Http/Requests/Gender/UpdateGenderRequest.php b/Http/Requests/Gender/UpdateGenderRequest.php index 568df7a..1f99f77 100644 --- a/Http/Requests/Gender/UpdateGenderRequest.php +++ b/Http/Requests/Gender/UpdateGenderRequest.php @@ -28,8 +28,8 @@ : array { return [ - 'name' => 'required|string|max:50|unique:genders,name', $this->gender->id, - 'status' => 'nullable|string|max:1', + 'name' => 'required|string|max:50|unique:genders,name,'. $this->gender->id, + 'status' => 'nullable|integer|max:1', ]; } @@ -63,4 +63,16 @@ 'messages' => 'Gender updated failed.' ], JsonResponse::HTTP_UNPROCESSABLE_ENTITY)); } + + protected function prepareForValidation() + { + $status = 0; + if($this->status == "on"){ + $status = 1; + } + $this->merge([ + 'status' => $status + ]); + } + } diff --git a/Resources/views/gender/_action.blade.php b/Resources/views/gender/_action.blade.php new file mode 100644 index 0000000..04f9094 --- /dev/null +++ b/Resources/views/gender/_action.blade.php @@ -0,0 +1,13 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp +
+ + {!! getIcon("pencil", "fs-1 text-info","duotune") !!} + + + {!! Form::open(['method' => 'DELETE','route' => [$route[0].'.'.$route[1].'.destroy', $model->id],'class'=>'']) !!} + {{ Form::button(getIcon("trash", "fs-1 text-danger","duotune"), ['type' => 'submit', 'class' => 'delete btn btn-icon btn-bg-light btn-active-light-danger btn-sm'] ) }} + {!! Form::close() !!} +
diff --git a/Resources/views/gender/_form.blade.php b/Resources/views/gender/_form.blade.php new file mode 100644 index 0000000..94647e5 --- /dev/null +++ b/Resources/views/gender/_form.blade.php @@ -0,0 +1,64 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp + + + + diff --git a/Resources/views/gender/_status.blade.php b/Resources/views/gender/_status.blade.php new file mode 100644 index 0000000..1b62790 --- /dev/null +++ b/Resources/views/gender/_status.blade.php @@ -0,0 +1,10 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp + +{!! Form::open(['method' => 'PUT','route' => [$route[0].'.'.$route[1].'.update', $model->id],'class'=>'']) !!} +
+ status==1 ? 'checked' : '' }} type="checkbox" name="status" id="status"/> + +
+{!! Form::close() !!} diff --git a/Resources/views/gender/_table.blade.php b/Resources/views/gender/_table.blade.php new file mode 100644 index 0000000..75ee5cc --- /dev/null +++ b/Resources/views/gender/_table.blade.php @@ -0,0 +1,132 @@ + +{{ $dataTable->table() }} + + +{{-- Inject Scripts --}} +@section('scripts') + {{ $dataTable->scripts() }} +@endsection + +@push('customscript') + @php + $route = explode('.', Route::currentRouteName()); + @endphp + + +@endpush + +@section('styles') + +@endsection diff --git a/Resources/views/gender/index.blade.php b/Resources/views/gender/index.blade.php new file mode 100644 index 0000000..a003fdd --- /dev/null +++ b/Resources/views/gender/index.blade.php @@ -0,0 +1,135 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp + + + +
+ +
+
+
+ + + + + + + + + +
+ + +
+ + +
+ +
+ + + + + + + +
+ + +
+
+
+ @include('master::'.$route[1].'._table') + @include('master::'.$route[1].'._form') +
+ +
+ + @push('customscript') + + @endpush +
diff --git a/module.json b/module.json index f4ae1b6..56cda7e 100644 --- a/module.json +++ b/module.json @@ -2,6 +2,7 @@ "name": "Master", "alias": "master", "description": "", + "database": "", "keywords": [], "priority": 0, "providers": [