Browse Source

Restructure user detail and add lang radio select on user edit page

pull/6/head
Nafies Luthfi 8 years ago
parent
commit
0a54a19afa
  1. 5
      app/Http/Controllers/Users/UsersController.php
  2. 3
      resources/lang/en/user.php
  3. 3
      resources/lang/id/user.php
  4. 17
      resources/views/layouts/user.blade.php
  5. 18
      resources/views/users/edit.blade.php
  6. 7
      resources/views/users/partials/nav-tabs.blade.php
  7. 18
      resources/views/users/show.blade.php
  8. 2
      tests/Feature/Users/ManageUsersTest.php

5
app/Http/Controllers/Users/UsersController.php

@ -68,7 +68,9 @@ class UsersController extends Controller
{ {
$this->authorize('update', $user); $this->authorize('update', $user);
return view('users.edit', compact('user'));
$langList = ['en' => trans('lang.en'), 'id' => trans('lang.id')];
return view('users.edit', compact('user', 'langList'));
} }
public function update(Request $request, User $user) public function update(Request $request, User $user)
@ -80,6 +82,7 @@ class UsersController extends Controller
'email' => 'required|email|unique:users,email,'.$request->segment(2), 'email' => 'required|email|unique:users,email,'.$request->segment(2),
'password' => 'nullable|required_with:password_confirmation|between:6,15', 'password' => 'nullable|required_with:password_confirmation|between:6,15',
'role' => 'required|array', 'role' => 'required|array',
'lang' => 'required|string|in:en,id',
]); ]);
$user->update($userData); $user->update($userData);

3
resources/lang/en/user.php

@ -5,12 +5,13 @@ return [
'user' => 'User', 'user' => 'User',
'list' => 'User List', 'list' => 'User List',
'user_id' => 'User ID', 'user_id' => 'User ID',
'profile' => 'User Profile',
'profile' => 'Profile',
'search' => 'Search User: ketik nama', 'search' => 'Search User: ketik nama',
'search' => 'Type user name then hit Enter..', 'search' => 'Type user name then hit Enter..',
'found' => 'User found.', 'found' => 'User found.',
'not_found' => 'User not found.', 'not_found' => 'User not found.',
'empty' => 'User list is empty.', 'empty' => 'User list is empty.',
'back_to_show' => 'Back to User Profile',
'back_to_index' => 'Back to User List', 'back_to_index' => 'Back to User List',
// Actions // Actions

3
resources/lang/id/user.php

@ -5,12 +5,13 @@ return [
'user' => 'User', 'user' => 'User',
'list' => 'Daftar User', 'list' => 'Daftar User',
'user_id' => 'User ID', 'user_id' => 'User ID',
'profile' => 'Profil User',
'profile' => 'Profil',
'search' => 'Cari User: ketik nama', 'search' => 'Cari User: ketik nama',
'search' => 'Ketik nama user lalu tekan Enter..', 'search' => 'Ketik nama user lalu tekan Enter..',
'found' => 'User ditemukan', 'found' => 'User ditemukan',
'not_found' => 'User tidak ditemukan', 'not_found' => 'User tidak ditemukan',
'empty' => 'Belum ada User', 'empty' => 'Belum ada User',
'back_to_show' => 'Kembali ke Profil User',
'back_to_index' => 'Kembali ke Daftar User', 'back_to_index' => 'Kembali ke Daftar User',
// Actions // Actions

17
resources/views/layouts/user.blade.php

@ -0,0 +1,17 @@
@extends('layouts.app')
@section('title')
{{ $user->name }} - @yield('subtitle', trans('user.profile'))
@endsection
@section('content')
<h1 class="page-header">
<div class="pull-right">
{!! link_to_route('users.edit', trans('user.edit'), [$user], ['id' => 'edit-user-' . $user->id, 'class' => 'btn btn-warning']) !!}
{!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!}
</div>
{{ $user->name }} <small>@yield('subtitle', trans('user.profile'))</small>
</h1>
@include('users.partials.nav-tabs')
@yield('content-user')
@endsection

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

@ -1,14 +1,13 @@
@inject('roles', 'App\Entities\Users\Role') @inject('roles', 'App\Entities\Users\Role')
@extends('layouts.dashboard')
@extends('layouts.user')
@section('title', trans('user.edit'))
@section('subtitle', trans('user.edit'))
@section('content-dashboard')
{!! Form::model($user, ['route'=>['users.update', $user->id], 'method' => 'patch']) !!}
@section('content-user')
{!! Form::model($user, ['route'=>['users.update', $user->id], 'method' => 'patch', 'autocomplete' => 'off']) !!}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ $user->name }} - {{ trans('user.edit') }}</h3></div>
<div class="panel-body"> <div class="panel-body">
{!! FormField::text('name', ['label' => trans('app.name')]) !!} {!! FormField::text('name', ['label' => trans('app.name')]) !!}
{!! FormField::email('email', ['label' => trans('user.email')]) !!} {!! FormField::email('email', ['label' => trans('user.email')]) !!}
@ -24,10 +23,11 @@
'class' => 'info', 'class' => 'info',
], ],
]) !!} ]) !!}
{!! FormField::radios('lang', $langList, ['label' => trans('lang.lang')]) !!}
</div> </div>
<div class="panel-footer"> <div class="panel-footer">
{!! Form::submit(trans('user.update'), ['class'=>'btn btn-warning']) !!} {!! Form::submit(trans('user.update'), ['class'=>'btn btn-warning']) !!}
{!! link_to_route('users.show', trans('app.show'), [$user->id], ['class' => 'btn btn-info']) !!}
{!! link_to_route('users.show', trans('user.back_to_show'), [$user->id], ['class' => 'btn btn-info']) !!}
{!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!} {!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!}
{!! link_to_route('users.delete', trans('app.delete'), [$user->id], ['class'=>'btn btn-danger pull-right']) !!} {!! link_to_route('users.delete', trans('app.delete'), [$user->id], ['class'=>'btn btn-danger pull-right']) !!}
</div> </div>
@ -36,3 +36,9 @@
</div> </div>
{!! Form::close() !!} {!! Form::close() !!}
@endsection @endsection
@section('script')
<script>
$('#password').attr('autocomplete', 'new-password');
</script>
@endsection

7
resources/views/users/partials/nav-tabs.blade.php

@ -0,0 +1,7 @@
<!-- Nav tabs -->
<ul class="nav nav-tabs">
<li class="{{ Request::segment(3) == null ? 'active' : '' }}">
{!! link_to_route('users.show', trans('user.profile'), [$user]) !!}
</li>
</ul>
<br>

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

@ -1,22 +1,16 @@
@extends('layouts.dashboard')
@extends('layouts.user')
@section('title', trans('user.show'))
@section('content-dashboard')
@section('content-user')
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ $user->name }} - {{ trans('user.show') }}</h3></div>
<div class="panel-body">
<table class="table table-condensed">
<tbody>
<tr><th>{{ trans('app.name') }}</th><td>{{ $user->name }}</td></tr>
<table class="table">
<tr><th class="col-xs-3">{{ trans('user.user_id') }}</th><td>{{ $user->id }}</td></tr>
<tr><th>{{ trans('user.name') }}</th><td>{{ $user->name }}</td></tr>
<tr><th>{{ trans('user.email') }}</th><td>{{ $user->email }}</td></tr> <tr><th>{{ trans('user.email') }}</th><td>{{ $user->email }}</td></tr>
<tr><th>{{ trans('user.role') }}</th><td>{!! $user->roleList() !!}</td></tr> <tr><th>{{ trans('user.role') }}</th><td>{!! $user->roleList() !!}</td></tr>
<tr><th>{{ trans('user.registered_at') }}</th><td>{{ $user->created_at }}</td></tr>
</tbody>
<tr><th>{{ trans('lang.lang') }}</th><td>{{ trans('lang.'.$user->lang) }}</td></tr>
</table> </table>
</div>
<div class="panel-footer"> <div class="panel-footer">
{!! link_to_route('users.edit', trans('user.edit'), [$user->id], ['class' => 'btn btn-warning']) !!} {!! link_to_route('users.edit', trans('user.edit'), [$user->id], ['class' => 'btn btn-warning']) !!}
{!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!} {!! link_to_route('users.index', trans('user.back_to_index'), [], ['class' => 'btn btn-default']) !!}

2
tests/Feature/Users/ManageUsersTest.php

@ -87,6 +87,7 @@ class ManageUsersTest extends TestCase
'email' => 'member@mail.dev', 'email' => 'member@mail.dev',
'password' => 'password', 'password' => 'password',
'role' => [1, 2], // Administrator, Worker 'role' => [1, 2], // Administrator, Worker
'lang' => 'id',
]); ]);
$this->seePageIs(route('users.edit', $user2->id)); $this->seePageIs(route('users.edit', $user2->id));
@ -97,6 +98,7 @@ class ManageUsersTest extends TestCase
'id' => $user2->id, 'id' => $user2->id,
'name' => 'Ganti nama User', 'name' => 'Ganti nama User',
'email' => 'member@mail.dev', 'email' => 'member@mail.dev',
'lang' => 'id',
]); ]);
$this->seeInDatabase('user_roles', [ $this->seeInDatabase('user_roles', [

Loading…
Cancel
Save