diff --git a/DataTables/CountryDataTable.php b/DataTables/CountryDataTable.php index 80b8186..cfc4a17 100644 --- a/DataTables/CountryDataTable.php +++ b/DataTables/CountryDataTable.php @@ -28,14 +28,15 @@ }) ->addIndexColumn() ->addColumn('status', function ($model) { - return $model->status == 1 ? 'Active' : 'Inactive'; + return view('master::country._status', compact('model')); }) ->addColumn('action', function ($model) { return view('master::country._action', compact('model')); - }); + }) + ->rawColumns(['status', 'action']); } - /** + /** * Get query source of dataTable. * * @param \Modules\Master\Entities\Country $model @@ -55,7 +56,7 @@ public function html() { return $this->builder() - ->setTableId('country-table') + ->setTableId('master-country-table') ->columns($this->getColumns()) ->minifiedAjax() ->orderBy(1, 'asc') @@ -79,7 +80,7 @@ return [ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('name')->title(__('Name')), - Column::computed('status')->title(__('Status'))->width(50)->addClass('text-center')->exportable(false), + Column::computed('status')->title(__('Status'))->width(50)->addClass('text-center')->exportable(false), Column::computed('action') ->exportable(false) ->printable(false) diff --git a/Database/Seeders/CountrySeeder.php b/Database/Seeders/CountrySeeder.php new file mode 100644 index 0000000..57fb1f9 --- /dev/null +++ b/Database/Seeders/CountrySeeder.php @@ -0,0 +1,32 @@ +data(); + + foreach ($data as $value) { + Country::create([ + 'name' => $value['name'], + ]); + } + } + + public function data() + { + return [ + ['name' => 'Indonesia'] + ]; + } + } diff --git a/Database/Seeders/MasterDatabaseSeeder.php b/Database/Seeders/MasterDatabaseSeeder.php index 4d50465..d005793 100644 --- a/Database/Seeders/MasterDatabaseSeeder.php +++ b/Database/Seeders/MasterDatabaseSeeder.php @@ -41,6 +41,7 @@ Marital::class, RelationshipSeeder::class, CardSeeder::class, + CountrySeeder::class, ]); } diff --git a/Http/Controllers/CountryController.php b/Http/Controllers/CountryController.php index 25569be..0a28202 100644 --- a/Http/Controllers/CountryController.php +++ b/Http/Controllers/CountryController.php @@ -128,7 +128,7 @@ * * @return Renderable */ - public function update(UpdateCountryRequest $request, Country $company) + public function update(UpdateCountryRequest $request, Country $country) { 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 +140,7 @@ // Update the Country... if ($validated) { try { - $company->update($validated); + $country->update($validated); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' country updated successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' country updated failed.']); @@ -158,14 +158,14 @@ * * @return Renderable */ - public function destroy(Country $company) + public function destroy(Country $country) { 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(); + $country->delete(); echo json_encode(['status' => 'success', 'message' => $this->module->name . ' country deleted successfully.']); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $this->module->name . ' country deleted failed.']); diff --git a/Http/Requests/Country/StoreCountryRequest.php b/Http/Requests/Country/StoreCountryRequest.php index bb5c9c6..9488d70 100644 --- a/Http/Requests/Country/StoreCountryRequest.php +++ b/Http/Requests/Country/StoreCountryRequest.php @@ -2,13 +2,13 @@ namespace Modules\Master\Http\Requests\Country; - use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Exceptions\HttpResponseException; use Illuminate\Validation\ValidationException; use Illuminate\Validation\Validator; + use Modules\Master\Http\Requests\MasterRequest; use Symfony\Component\HttpFoundation\JsonResponse; - class StoreCountryRequest extends FormRequest + class StoreCountryRequest extends MasterRequest { /** * Determine if the user is authorized to make this request. @@ -28,8 +28,8 @@ : array { return [ - 'name' => 'required|string|max:50|unique:countrys,name', - 'status' => 'nullable|string|max:1', + 'name' => 'required|string|max:50|unique:countries,name', + 'status' => 'nullable|integer|max:1', ]; } diff --git a/Http/Requests/Country/UpdateCountryRequest.php b/Http/Requests/Country/UpdateCountryRequest.php index 82bae98..ddac3f0 100644 --- a/Http/Requests/Country/UpdateCountryRequest.php +++ b/Http/Requests/Country/UpdateCountryRequest.php @@ -2,13 +2,13 @@ namespace Modules\Master\Http\Requests\Country; - use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Exceptions\HttpResponseException; use Illuminate\Validation\ValidationException; use Illuminate\Validation\Validator; + use Modules\Master\Http\Requests\MasterRequest; use Symfony\Component\HttpFoundation\JsonResponse; - class UpdateCountryRequest extends FormRequest + class UpdateCountryRequest extends MasterRequest { /** * Determine if the user is authorized to make this request. @@ -28,8 +28,8 @@ : array { return [ - 'name' => 'required|string|max:50|unique:countrys,name', $this->country->id, - 'status' => 'nullable|string|max:1', + 'name' => 'required|string|max:50|unique:countries,name,' . $this->country->id, + 'status' => 'nullable|integer|max:1', ]; } diff --git a/Resources/views/country/_action.blade.php b/Resources/views/country/_action.blade.php new file mode 100644 index 0000000..a32eac2 --- /dev/null +++ b/Resources/views/country/_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/country/_form.blade.php b/Resources/views/country/_form.blade.php new file mode 100644 index 0000000..94647e5 --- /dev/null +++ b/Resources/views/country/_form.blade.php @@ -0,0 +1,64 @@ +@php + $route = explode('.', Route::currentRouteName()); +@endphp + + + + diff --git a/Resources/views/country/_status.blade.php b/Resources/views/country/_status.blade.php new file mode 100644 index 0000000..1b62790 --- /dev/null +++ b/Resources/views/country/_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/country/_table.blade.php b/Resources/views/country/_table.blade.php new file mode 100644 index 0000000..75ee5cc --- /dev/null +++ b/Resources/views/country/_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/country/index.blade.php b/Resources/views/country/index.blade.php new file mode 100644 index 0000000..a003fdd --- /dev/null +++ b/Resources/views/country/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 +