From f48d18d651b70ef65c3ed09077212e97a0c33a86 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 29 Oct 2017 22:01:35 +0800 Subject: [PATCH] Rebuild partner create form, edit form, and delete partner --- .../Controllers/Partners/PartnersController.php | 38 +++++++- resources/lang/id/partner.php | 3 + resources/views/partners/create.blade.php | 44 +++++++++ resources/views/partners/edit.blade.php | 53 +++++++++++ resources/views/partners/forms.blade.php | 101 ++++++++------------- resources/views/partners/index.blade.php | 19 +--- resources/views/partners/show.blade.php | 13 ++- routes/web.php | 2 +- tests/Feature/ManagePartnersTest.php | 16 ++-- 9 files changed, 189 insertions(+), 100 deletions(-) create mode 100644 resources/views/partners/create.blade.php create mode 100644 resources/views/partners/edit.blade.php diff --git a/app/Http/Controllers/Partners/PartnersController.php b/app/Http/Controllers/Partners/PartnersController.php index 8bc7e9d..80d9ebd 100644 --- a/app/Http/Controllers/Partners/PartnersController.php +++ b/app/Http/Controllers/Partners/PartnersController.php @@ -36,6 +36,21 @@ class PartnersController extends Controller } /** + * Show the create partner form. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + $partnerTypes = [ + 1 => trans('partner.types.customer'), + 2 => trans('partner.types.vendor'), + ]; + + return view('partners.create', compact('partnerTypes')); + } + + /** * Store a newly created partner in storage. * * @param \Illuminate\Http\Request $request @@ -74,6 +89,22 @@ class PartnersController extends Controller } /** + * Show the edit partner form. + * + * @param \App\Entities\Partners\Partner $partner + * @return \Illuminate\Http\Response + */ + public function edit(Partner $partner) + { + $partnerTypes = [ + 1 => trans('partner.types.customer'), + 2 => trans('partner.types.vendor'), + ]; + + return view('partners.edit', compact('partnerTypes', 'partner')); + } + + /** * Update the specified partner in storage. * * @param \Illuminate\Http\Request $request @@ -93,12 +124,11 @@ class PartnersController extends Controller 'is_active' => 'required|boolean', ]); - $routeParam = request()->only('page', 'q'); - - $partner = $partner->update($partnerData); + $partner->update($partnerData); flash(trans('partner.updated'), 'success'); - return redirect()->route('partners.index', $routeParam); + + return redirect()->route('partners.show', $partner->id); } /** diff --git a/resources/lang/id/partner.php b/resources/lang/id/partner.php index bb2e4b6..1c2c72f 100644 --- a/resources/lang/id/partner.php +++ b/resources/lang/id/partner.php @@ -9,6 +9,9 @@ return [ 'empty' => 'Belum ada Partner', 'back_to_show' => 'Kembali ke detail Partner', 'back_to_index' => 'Kembali ke daftar Partner', + 'type' => 'Jenis Partner', + 'detail' => 'Detail Partner', + 'contact' => 'Kontak Partner', // Actions 'create' => 'Input Partner Baru', diff --git a/resources/views/partners/create.blade.php b/resources/views/partners/create.blade.php new file mode 100644 index 0000000..33f16c6 --- /dev/null +++ b/resources/views/partners/create.blade.php @@ -0,0 +1,44 @@ +@extends('layouts.app') + +@section('title', trans('partner.create')) + +@section('content') +

+
+ {{ link_to_route('partners.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} +
+ {{ trans('partner.create') }} +

+ +{!! Form::open(['route' => 'partners.store']) !!} +
+
+
+
+
+
+ @lang('partner.detail') + {!! FormField::text('name', ['required' => true]) !!} + {!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!} + {!! FormField::textarea('notes') !!} +
+
+ @lang('partner.contact') + {!! FormField::text('pic') !!} +
+
{!! FormField::email('email') !!}
+
{!! FormField::text('phone') !!}
+
+ {!! FormField::textarea('address') !!} +
+
+
+ +
+
+
+{!! Form::close() !!} +@endsection diff --git a/resources/views/partners/edit.blade.php b/resources/views/partners/edit.blade.php new file mode 100644 index 0000000..3f65b6d --- /dev/null +++ b/resources/views/partners/edit.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.app') + +@section('title', trans('partner.edit').' '.$partner->name) + +@section('content') +

+
+ {{ link_to_route('partners.show', trans('partner.back_to_show'), [$partner->id], ['class' => 'btn btn-default']) }} +
+ {{ $partner->name }} {{ trans('partner.edit') }} +

+ +@includeWhen(Request::has('action'), 'partners.forms') + +{!! Form::model($partner, ['route' => ['partners.update', $partner->id],'method' => 'patch']) !!} +
+
+
+
+
+
+ @lang('partner.detail') + {!! FormField::text('name', ['required' => true]) !!} +
+
{!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!}
+
{!! FormField::radios('is_active', ['Non Aktif', 'Aktif']) !!}
+
+ {!! FormField::textarea('notes') !!} +
+
+ @lang('partner.contact') + {!! FormField::text('pic') !!} +
+
{!! FormField::email('email') !!}
+
{!! FormField::text('phone') !!}
+
+ {!! FormField::textarea('address') !!} +
+
+
+ +
+
+
+{!! Form::close() !!} +@endsection diff --git a/resources/views/partners/forms.blade.php b/resources/views/partners/forms.blade.php index b7c1659..0110ab0 100644 --- a/resources/views/partners/forms.blade.php +++ b/resources/views/partners/forms.blade.php @@ -1,68 +1,39 @@ -@if (Request::get('action') == 'create') - {!! Form::open(['route' => 'partners.store']) !!} - {!! FormField::text('name', ['required' => true]) !!} - {!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!} - {!! FormField::email('email') !!} - {!! FormField::text('phone') !!} - {!! FormField::text('pic') !!} - {!! FormField::textarea('address') !!} - {!! FormField::textarea('notes') !!} - {!! Form::submit(trans('partner.create'), ['class' => 'btn btn-success']) !!} - {{ link_to_route('partners.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} - {!! Form::close() !!} -@endif -@if (Request::get('action') == 'edit' && $editablePartner) - {!! Form::model($editablePartner, ['route' => ['partners.update', $editablePartner->id],'method' => 'patch']) !!} - {!! FormField::text('name', ['required' => true]) !!} - {!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!} - {!! FormField::email('email') !!} - {!! FormField::text('phone') !!} - {!! FormField::text('pic') !!} - {!! FormField::textarea('address') !!} - {!! FormField::textarea('notes') !!} - {!! FormField::radios('is_active', ['Non Aktif', 'Aktif']) !!} - @if (request('q')) - {{ Form::hidden('q', request('q')) }} - @endif - @if (request('page')) - {{ Form::hidden('page', request('page')) }} - @endif - {!! Form::submit(trans('partner.update'), ['class' => 'btn btn-success']) !!} - {{ link_to_route('partners.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} - {!! Form::close() !!} -@endif -@if (Request::get('action') == 'delete' && $editablePartner) -
-

{{ trans('partner.delete') }}

-
- -

{{ $editablePartner->name }}

- -

{{ $editablePartner->email }}

- -

{{ $editablePartner->phone }}

- -

{{ $editablePartner->address }}

- -

{{ $editablePartner->is_active }}

- -

{{ $editablePartner->notes }}

- {!! $errors->first('partner_id', ':message') !!} -
-
-
{{ trans('app.delete_confirm') }}
-