Browse Source

Added user profile update

pull/3/head
Nafies Luthfi 9 years ago
parent
commit
d407c603e5
  1. 26
      app/Http/Controllers/UsersController.php
  2. 4
      database/migrations/2014_10_12_000000_create_users_table.php
  3. 51
      resources/views/users/edit.blade.php
  4. 1
      resources/views/users/show.blade.php
  5. 2
      routes/web.php
  6. 36
      tests/Feature/UsersProfileTest.php

26
app/Http/Controllers/UsersController.php

@ -102,7 +102,7 @@ class UsersController extends Controller
*/
public function edit(User $user)
{
//
return view('users.edit', compact('user'));
}
/**
@ -114,7 +114,29 @@ class UsersController extends Controller
*/
public function update(Request $request, User $user)
{
//
$user->nickname = $request->nickname;
$user->name = $request->get('name');
$user->gender_id = $request->get('gender_id');
$user->dob = $request->get('dob');
$user->dod = $request->get('dod');
if ($request->get('dod'))
$user->yod = substr($request->get('dod'), 0, 4);
else
$user->yod = $request->get('yod');
$user->phone = $request->get('phone');
$user->address = $request->get('address');
$user->city = $request->get('city');
$user->email = $request->get('email');
if ($request->get('email')) {
$user->password = bcrypt($request->get('email'));
}
$user->save();
return redirect()->route('users.show', $user->id);
}
/**

4
database/migrations/2014_10_12_000000_create_users_table.php

@ -21,11 +21,13 @@ class CreateUsersTable extends Migration
$table->unsignedInteger('father_id')->nullable();
$table->unsignedInteger('mother_id')->nullable();
$table->unsignedInteger('parent_id')->nullable();
$table->date('dof')->nullable();
$table->date('dob')->nullable();
$table->date('dod')->nullable();
$table->date('yod')->nullable();
$table->string('email')->unique()->nullable();
$table->string('password')->nullable();
$table->string('address')->nullable();
$table->string('city')->nullable();
$table->string('phone')->nullable();
$table->rememberToken();
$table->timestamps();

51
resources/views/users/edit.blade.php

@ -0,0 +1,51 @@
@extends('layouts.app')
@section('content')
<div class="pull-right">
{{ link_to_route('users.chart', 'Lihat Chart Keluarga '.$user->name, [$user->id], ['class' => 'btn btn-default']) }}
</div>
<h3 class="page-header text-center">Edit Profil {{ $user->profileLink() }}</h3>
{{ Form::model($user, ['route' => ['users.update', $user->id], 'method' =>'patch']) }}
<div class="row">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">Edit Profil</h3></div>
<div class="panel-body">
{!! FormField::text('name', ['label' => 'Nama']) !!}
{!! FormField::text('nickname', ['label' => 'Nama Panggilan']) !!}
<div class="row">
<div class="col-md-6">{!! FormField::radios('gender_id', [1 => 'L', 'P'], ['label' => 'Jenis Kelamin']) !!}</div>
<div class="col-md-6">{!! FormField::text('dob', ['label' => 'Tanggal Lahir', 'placeholder' => 'Misal: 1959-07-20']) !!}</div>
</div>
<div class="row">
<div class="col-md-6">{!! FormField::text('yod', ['label' => 'Tahun Meninggal', 'placeholder' => 'Misal: 2003']) !!}</div>
<div class="col-md-6">{!! FormField::text('dod', ['label' => 'Tanggal Meninggal', 'placeholder' => 'Misal: 2003-10-17']) !!}</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">Edit Alamat dan Kontak</h3></div>
<div class="panel-body">
{!! FormField::textarea('address', ['label' => 'Alamat']) !!}
{!! FormField::text('city', ['label' => 'Kota']) !!}
{!! FormField::text('phone', ['label' => 'Telp', 'placeholder' => 'Misal: 081234567890']) !!}
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">Akun Login</h3></div>
<div class="panel-body">
{!! FormField::email('email', ['label' => 'Email', 'placeholder' => 'Misal: nama@mail.com']) !!}
{!! FormField::text('password', ['label' => 'Password', 'placeholder' => '******']) !!}
</div>
</div>
</div>
</div>
<div class="pull-right">
{{ Form::submit('Update', ['class' => 'btn btn-primary']) }}
</div>
{{ Form::close() }}
@endsection

1
resources/views/users/show.blade.php

@ -2,6 +2,7 @@
@section('content')
<div class="pull-right">
{{ link_to_route('users.edit', 'Edit Data '.$currentUser->name, [$currentUser->id], ['class' => 'btn btn-warning']) }}
{{ link_to_route('users.chart', 'Lihat Chart Keluarga '.$currentUser->name, [$currentUser->id], ['class' => 'btn btn-default']) }}
</div>
<h3 class="page-header text-center">{{ $currentUser->profileLink() }}</h3>

2
routes/web.php

@ -27,4 +27,6 @@ Route::post('family-actions/{user}/add-husband', 'FamilyActionsController@addHus
Route::post('family-actions/{user}/set-parent', 'FamilyActionsController@setParent')->name('family-actions.set-parent');
Route::get('users/{user}', 'UsersController@show')->name('users.show');
Route::get('users/{user}/edit', 'UsersController@edit')->name('users.edit');
Route::patch('users/{user}', 'UsersController@update')->name('users.update');
Route::get('users/{user}/chart', 'UsersController@chart')->name('users.chart');

36
tests/Feature/UsersProfileTest.php

@ -17,4 +17,40 @@ class UsersProfileTest extends TestCase
$this->visit(route('users.show', $user->id));
$this->see($user->name);
}
/** @test */
public function user_can_edit_profile()
{
$user = factory(User::class)->create();
$this->visit(route('users.edit', $user->id));
$this->seePageIs(route('users.edit', $user->id));
$this->submitForm('Update', [
'nickname' => 'Nama Panggilan',
'name' => 'Nama User',
'gender_id' => 1,
'dob' => '1959-06-09',
'dod' => '2003-10-17',
'yod' => '',
'address' => 'Jln. Angkasa, No. 70',
'city' => 'Nama Kota',
'phone' => '081234567890',
'email' => '',
'password' => '',
]);
$this->seeInDatabase('users', [
'nickname' => 'Nama Panggilan',
'name' => 'Nama User',
'gender_id' => 1,
'dob' => '1959-06-09',
'dod' => '2003-10-17',
'yod' => '2003',
'address' => 'Jln. Angkasa, No. 70',
'city' => 'Nama Kota',
'phone' => '081234567890',
'email' => null,
'password' => null,
]);
}
}
Loading…
Cancel
Save