From 996aceadcf48f73f029446ae4fff4f89e545fabf Mon Sep 17 00:00:00 2001 From: Joseph Cohen Date: Fri, 9 Jan 2015 20:20:12 -0600 Subject: [PATCH] Strip out team methods to it's own controller --- app/routes/dashboard.php | 10 +-- src/Http/Controllers/DashTeamController.php | 98 +++++++++++++++++++++ 2 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 src/Http/Controllers/DashTeamController.php diff --git a/app/routes/dashboard.php b/app/routes/dashboard.php index 733a5bf3..2ad831f5 100644 --- a/app/routes/dashboard.php +++ b/app/routes/dashboard.php @@ -74,15 +74,15 @@ Route::group(['before' => 'auth', 'prefix' => 'dashboard', 'namespace' => 'Cache Route::group(['prefix' => 'team'], function () { Route::get('/', [ 'as' => 'dashboard.team', - 'uses' => 'DashboardController@showTeamView', + 'uses' => 'DashTeamController@showTeamView', ]); Route::get('add', [ 'as' => 'dashboard.team.add', - 'uses' => 'DashboardController@showAddTeamMemberView' + 'uses' => 'DashTeamController@showAddTeamMemberView' ]); - Route::get('{user}', 'DashboardController@showTeamMemberView'); - Route::post('add', 'DashboardController@postAddUser'); - Route::post('{user}', 'DashboardController@postUpdateUser'); + Route::get('{user}', 'DashTeamController@showTeamMemberView'); + Route::post('add', 'DashTeamController@postAddUser'); + Route::post('{user}', 'DashTeamController@postUpdateUser'); }); // Settings diff --git a/src/Http/Controllers/DashTeamController.php b/src/Http/Controllers/DashTeamController.php new file mode 100644 index 00000000..32ce498e --- /dev/null +++ b/src/Http/Controllers/DashTeamController.php @@ -0,0 +1,98 @@ +with([ + 'pageTitle' => trans('dashboard.team.team').' - '.trans('dashboard.dashboard'), + 'teamMembers' => $team, + ]); + } + + /** + * Shows the edit team member view. + * + * @return \Illuminate\View\View + */ + public function showTeamMemberView(User $user) + { + return View::make('dashboard.team.edit')->with([ + 'pageTitle' => trans('dashboard.team.edit.title').' - '.trans('dashboard.dashboard'), + 'user' => $user, + ]); + } + + /** + * Shows the add team member view. + * + * @return \Illuminate\View\View + */ + public function showAddTeamMemberView() + { + return View::make('dashboard.team.add')->with([ + 'pageTitle' => trans('dashboard.team.add.title').' - '.trans('dashboard.dashboard'), + ]); + } + + /** + * Creates a new team member. + * + * @return \Illuminate\Http\RedirectResponse + */ + public function postAddUser() + { + $user = User::create(Binput::all()); + + if (! $user->isValid()) { + return Redirect::back()->withInput(Binput::except('password')) + ->with('title', sprintf("%s %s", trans('dashboard.notifications.whoops'), trans('dashboard.team.add.failure'))) + ->with('errors', $user->getErrors()); + } + + return Redirect::back()->with('success', sprintf("%s %s", trans('dashboard.notifications.awesome'), trans('dashboard.team.add.success'))); + } + + /** + * Updates a user. + * + * @param \CachetHQ\Cachet\Models\User $user + * + * @return \Illuminate\View\View + */ + public function postUpdateUser(User $user) + { + $items = Binput::all(); + + $passwordChange = array_get($items, 'password'); + + if (trim($passwordChange) === '') { + unset($items['password']); + } + + $user->update($items); + + if (! $user->isValid()) { + return Redirect::back()->withInput(Binput::except('password')) + ->with('title', sprintf("%s %s", trans('dashboard.notifications.whoops'), trans('dashboard.team.edit.failure'))) + ->with('errors', $user->getErrors()); + } + + return Redirect::back()->with('success', sprintf("%s %s", trans('dashboard.notifications.awesome'), trans('dashboard.team.edit.success'))); + } +}