diff --git a/app/DJ.php b/app/DJ.php index bb661d9..30dc6ba 100644 --- a/app/DJ.php +++ b/app/DJ.php @@ -13,7 +13,7 @@ class DJ extends Model { * * @var array */ - protected $fillable = ['name', 'picture']; + protected $fillable = ['name', 'picture', 'realname']; protected $uploadDirectories = [ 'picture' => '/img/djs/', diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 38065c1..ba8b452 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -81,6 +81,17 @@ public function edit($id) return view('admin.users.edit', ['roles' => $roles, 'user' => $user]); } + public function update(Requests\UpdateRequest $request, $id) + { + $user = User::findOrFail($id); + $user->fill($request->all()); + $user->username = $request['email']; + $user->save(); + + return redirect()->route('admin.users.index') + ->with('success', 'User Saved!'); + } + /** * Remove the specified resource from storage. * diff --git a/app/Http/Requests/Admin/DJ/CreateRequest.php b/app/Http/Requests/Admin/DJ/CreateRequest.php index 3469f72..75fd2be 100644 --- a/app/Http/Requests/Admin/DJ/CreateRequest.php +++ b/app/Http/Requests/Admin/DJ/CreateRequest.php @@ -23,7 +23,8 @@ public function rules() { return [ 'picture' => 'sometimes|image', - 'name' => 'required' + 'name' => 'required', + 'realname' => 'required', ]; } diff --git a/app/Http/Requests/Admin/DJ/UpdateRequest.php b/app/Http/Requests/Admin/DJ/UpdateRequest.php index 3e9bb13..997a11d 100644 --- a/app/Http/Requests/Admin/DJ/UpdateRequest.php +++ b/app/Http/Requests/Admin/DJ/UpdateRequest.php @@ -23,7 +23,8 @@ public function rules() { return [ 'picture' => 'sometimes|image', - 'name' => 'required' + 'name' => 'required', + 'realname' => 'required', ]; } diff --git a/app/Http/Requests/Admin/User/UpdateRequest.php b/app/Http/Requests/Admin/User/UpdateRequest.php new file mode 100644 index 0000000..1adb757 --- /dev/null +++ b/app/Http/Requests/Admin/User/UpdateRequest.php @@ -0,0 +1,30 @@ + 'required', + 'email' => 'required|email' + ]; + } + +} diff --git a/app/Http/admin_routes.php b/app/Http/admin_routes.php index cc2f9f6..083b949 100644 --- a/app/Http/admin_routes.php +++ b/app/Http/admin_routes.php @@ -46,6 +46,7 @@ Route::get('/users/create', ['as' => 'admin.users.create', 'uses' => 'UserController@new_user']); Route::post('/users/create', ['as' => 'admin.users.create.save', 'uses' => 'UserController@create']); Route::get('users/{id}', ['as' => 'admin.users.edit', 'uses' => 'UserController@edit']); +Route::put('users/{id}', ['as' => 'admin.users.update', 'uses' => 'UserController@update']); Route::delete('users/{id}', ['as' => 'admin.users.delete', 'uses' => 'UserController@delete']); Route::get('/djs', ['as' => 'admin.djs.index', 'uses' => 'DJController@index']); diff --git a/database/migrations/2015_11_12_221320_create_djs_table.php b/database/migrations/2015_11_12_221320_create_djs_table.php index 7e133e5..9058867 100644 --- a/database/migrations/2015_11_12_221320_create_djs_table.php +++ b/database/migrations/2015_11_12_221320_create_djs_table.php @@ -19,6 +19,7 @@ public function up() { $table->increments('id'); $table->string('name'); + $table->string('realname'); $table->string('picture'); $table->timestamps(); }); @@ -30,6 +31,7 @@ public function up() 'id' => $user->id, 'name' => $user->dj_name, 'picture' => $user->picture, + 'realname' => $user->name ]); } diff --git a/resources/views/admin/djs/create.blade.php b/resources/views/admin/djs/create.blade.php index 378afad..dc5c6b0 100644 --- a/resources/views/admin/djs/create.blade.php +++ b/resources/views/admin/djs/create.blade.php @@ -10,7 +10,11 @@
{!! Form::label('name', 'Name:') !!} {!! Form::text('name') !!} -
+ +
+ {!! Form::label('realname', 'Real Name:') !!} + {!! Form::text('realname') !!} +
{!! Form::label('picture', 'Picture: (Note: Pictures should be of size 175x175)') !!} {!! Form::file('picture') !!} diff --git a/resources/views/admin/djs/edit.blade.php b/resources/views/admin/djs/edit.blade.php index a210130..443f905 100644 --- a/resources/views/admin/djs/edit.blade.php +++ b/resources/views/admin/djs/edit.blade.php @@ -11,6 +11,10 @@ {!! Form::label('name', 'Name:') !!} {!! Form::text('name') !!}
+
+ {!! Form::label('realname', 'Real Name:') !!} + {!! Form::text('realname') !!} +
{!! Form::label('picture', 'Picture: (Note: Pictures should be of size 175x175)') !!} {!! Form::file('picture') !!} diff --git a/resources/views/admin/djs/index.blade.php b/resources/views/admin/djs/index.blade.php index 44560c5..5fcbb90 100644 --- a/resources/views/admin/djs/index.blade.php +++ b/resources/views/admin/djs/index.blade.php @@ -9,7 +9,7 @@ diff --git a/resources/views/admin/users/edit.blade.php b/resources/views/admin/users/edit.blade.php index 05ac9b1..acf4dc8 100644 --- a/resources/views/admin/users/edit.blade.php +++ b/resources/views/admin/users/edit.blade.php @@ -4,14 +4,19 @@

Edit User

-
-
- Name: {{ $user->name }} -
-
- Email Address: {{ $user->email }} -
-
+ @include('shared.validation-messages') + {!! Form::model($user,['method' => 'put', 'route' => ['admin.users.update', $user->id]]) !!} +
+
+ {!! Form::label('name', 'Name:') !!} + {!! Form::text('name') !!} +
+
+ {!! Form::label('email', 'Email:') !!} + {!! Form::text('email') !!} +
+ {!! Form::submit('Update User') !!} + {!! Form::close() !!} {!! Form::open(['method' => 'delete', 'route' => ['admin.users.delete', $user->id], 'class' => 'delete-form']) !!} {!! Form::submit('Delete User') !!} diff --git a/tests/factories/factories.php b/tests/factories/factories.php index 44074b7..9d99cab 100644 --- a/tests/factories/factories.php +++ b/tests/factories/factories.php @@ -82,5 +82,6 @@ $factory('WITR\DJ', [ 'name' => $faker->name, - 'picture' => 'default.jpg' + 'picture' => 'default.jpg', + 'realname' => $faker->name ]); diff --git a/tests/integration/DJControllerTest.php b/tests/integration/DJControllerTest.php index b680815..843d2f4 100644 --- a/tests/integration/DJControllerTest.php +++ b/tests/integration/DJControllerTest.php @@ -64,7 +64,8 @@ public function it_validates_a_create_request() { $form = TestDummy::attributesFor('WITR\DJ', [ 'picture' => __DIR__ . '/files/non-dj.pdf', - 'name' => '' + 'name' => '', + 'realname' => '' ]); unset($form['updated_at']); unset($form['created_at']); @@ -74,6 +75,7 @@ public function it_validates_a_create_request() ->onPage('/admin/djs/create') ->submitForm('Save DJ', $form) ->andSee('The name field is required') + ->andSee('The realname field is required') ->andSee('The picture must be an image') ->onPage('/admin/djs/create'); } @@ -84,6 +86,7 @@ public function it_updates_an_dj() Carbon::setTestNow(Carbon::create(2014, 5, 21, 12)); $dj = TestDummy::create('WITR\DJ'); $dj->name = 'THIS VALUE HAS BEEN UPDATED'; + $dj->realname = 'THIS VALUE HAS BEEN UPDATED'; $form = $dj->toArray(); unset($form['id']); unset($form['updated_at']); diff --git a/tests/integration/UserControllerTest.php b/tests/integration/UserControllerTest.php index 906ebdf..5d89a31 100644 --- a/tests/integration/UserControllerTest.php +++ b/tests/integration/UserControllerTest.php @@ -34,7 +34,6 @@ public function it_allows_authorized_access() $this->visit('/admin/users') ->onPage('/admin/users'); } - /** @test */ public function it_creates_a_user() @@ -70,6 +69,39 @@ public function it_validates_a_create_request() ->onPage('/admin/users/create'); } + /** @test */ + public function it_updates_a_user() + { + $user = TestDummy::create('WITR\User'); + $form = ['name' => 'THIS UPDATED VALUE', 'email' => 'test@example.com']; + + $this->beAdmin(); + $this->visit('/admin/users/' . $user->id) + ->onPage('/admin/users/' . $user->id) + ->submitForm('Update User', $form) + ->andSee('User Saved!') + ->onPage('/admin/users') + ->verifyInDatabase('user', $form); + } + + /** @test */ + public function it_validates_an_update_request() + { + $user = TestDummy::create('WITR\User'); + $form = [ + 'name' => '', + 'email' => 'asdfasdf', + ]; + + $this->beAdmin(); + $this->visit('/admin/users/' . $user->id) + ->onPage('/admin/users/' . $user->id) + ->submitForm('Update User', $form) + ->andSee('The name field is required') + ->andSee('The email must be a valid email address') + ->onPage('/admin/users/' . $user->id); + } + /** @test */ public function it_deletes_a_user() {