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')));
+ }
+}