From 89ec124092c7d9dffa3875516629ee783a503775 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Wed, 31 Dec 2014 10:38:59 +0000 Subject: [PATCH] Separate all of the settings into their own pages. --- app/assets/sass/partials/_sidebar.scss | 16 +-- app/controllers/DashSettingsController.php | 109 ++++++++++++++++-- app/lang/en/cachet.php | 2 + app/routes/dashboard.php | 5 +- .../dashboard/settings-app-setup.blade.php | 56 +++++++++ .../dashboard/settings-security.blade.php | 51 ++++++++ .../dashboard/settings-stylesheet.blade.php | 48 ++++++++ ...ngs.blade.php => settings-theme.blade.php} | 64 ++-------- .../dashboard/sidebar-settings.blade.php | 9 -- .../partials/dashboard/sidebar.blade.php | 4 +- .../partials/dashboard/sub-sidebar.blade.php | 8 ++ .../{all-3a96db65.css => all-ba7bbe3d.css} | 14 +-- public/build/css/all.css | 14 +-- public/build/rev-manifest.json | 2 +- 14 files changed, 302 insertions(+), 100 deletions(-) create mode 100644 app/views/dashboard/settings-app-setup.blade.php create mode 100644 app/views/dashboard/settings-security.blade.php create mode 100644 app/views/dashboard/settings-stylesheet.blade.php rename app/views/dashboard/{settings.blade.php => settings-theme.blade.php} (53%) delete mode 100644 app/views/partials/dashboard/sidebar-settings.blade.php create mode 100644 app/views/partials/dashboard/sub-sidebar.blade.php rename public/build/css/{all-3a96db65.css => all-ba7bbe3d.css} (99%) diff --git a/app/assets/sass/partials/_sidebar.scss b/app/assets/sass/partials/_sidebar.scss index a3d79822..f0332480 100644 --- a/app/assets/sass/partials/_sidebar.scss +++ b/app/assets/sass/partials/_sidebar.scss @@ -138,14 +138,14 @@ body.dashboard { } } } - } - .content-panel { - top: 0; - position: relative; - width: 78%; - margin-left: 22%; - padding: 24px 50px; - padding-bottom: 80px; + + .content-panel { + top: 0; + position: relative; + width: 78%; + margin-left: 22%; + padding: 24px 50px; + padding-bottom: 80px; + } } } diff --git a/app/controllers/DashSettingsController.php b/app/controllers/DashSettingsController.php index c5091699..f7acadfa 100644 --- a/app/controllers/DashSettingsController.php +++ b/app/controllers/DashSettingsController.php @@ -2,15 +2,98 @@ class DashSettingsController extends Controller { + protected $subMenu = []; + protected $subTitle = 'Settings'; + + public function __construct() { + $this->subMenu = [ + 'setup' => [ + 'title' => 'Application Setup', + 'url' => '/dashboard/settings/setup', + 'icon' => 'ion-gear-b', + 'active' => false, + ], + 'security' => [ + 'title' => 'Security', + 'url' => '/dashboard/settings/security', + 'icon' => 'ion-lock-combination', + 'active' => false, + ], + 'theme' => [ + 'title' => 'Theme', + 'url' => '/dashboard/settings/theme', + 'icon' => 'ion-paintbrush', + 'active' => false, + ], + 'stylesheet' => [ + 'title' => 'Stylesheet', + 'url' => '/dashboard/settings/stylesheet', + 'icon' => 'ion-paintbucket', + 'active' => false, + ] + ]; + + View::share('subTitle', $this->subTitle); + View::share('subMenu', $this->subMenu); + } + /** - * Shows the settings view. + * Shows the settings setup view. * * @return \Illuminate\View\View */ - public function showSettings() + public function showSetupView() { - return View::make('dashboard.settings')->with([ - 'pageTitle' => 'Settings - Dashboard', + $this->subMenu['setup']['active'] = true; + + return View::make('dashboard.settings-app-setup')->with([ + 'pageTitle' => 'Application Setup - Dashboard', + 'subMenu' => $this->subMenu + ]); + } + + /** + * Shows the settings theme view. + * + * @return \Illuminate\View\View + */ + public function showThemeView() + { + $this->subMenu['theme']['active'] = true; + + return View::make('dashboard.settings-theme')->with([ + 'pageTitle' => 'Theme - Dashboard', + 'subMenu' => $this->subMenu + ]); + } + + /** + * Shows the settings security view. + * + * @return \Illuminate\View\View + */ + public function showSecurityView() + { + $this->subMenu['security']['active'] = true; + + return View::make('dashboard.settings-security')->with([ + 'pageTitle' => 'Security - Dashboard', + 'subMenu' => $this->subMenu + ]); + } + + /** + * Shows the settings stylesheet view. + * + * @return \Illuminate\View\View + */ + public function showStylesheetView() + { + $this->subMenu['stylesheet']['active'] = true; + + return View::make('dashboard.settings-stylesheet')->with([ + 'pageTitle' => 'Stylesheet - Dashboard', + 'subMenu' => $this->subMenu ]); } @@ -24,14 +107,18 @@ class DashSettingsController extends Controller // Fetch all of the settings we've been POSTed. $settings = Input::all(); - foreach ($settings as $settingName => $settingValue) { - $setting = Setting::firstOrCreate([ - 'name' => $settingName, - ])->update([ - 'value' => $settingValue, - ]); + try { + foreach ($settings as $settingName => $settingValue) { + $setting = Setting::firstOrCreate([ + 'name' => $settingName, + ])->update([ + 'value' => $settingValue, + ]); + } + } catch (Exception $e) { + return Redirect::back()->withSaved(false); } - return Redirect::back(); + return Redirect::back()->withSaved(true); } } diff --git a/app/lang/en/cachet.php b/app/lang/en/cachet.php index 402cb31d..e053a298 100644 --- a/app/lang/en/cachet.php +++ b/app/lang/en/cachet.php @@ -51,6 +51,8 @@ return [ 'user' => 'User', 'help' => 'Help', 'logged_incidents' => '{0} There are no incidents, good work.|You have logged one incident.|You have reported :count incidents.', + 'settings_saved' => 'Settings saved.', + 'settings_not_saved' => 'Settings could not be saved.', ], // Forms 'forms' => [ diff --git a/app/routes/dashboard.php b/app/routes/dashboard.php index 7c499603..049526cd 100644 --- a/app/routes/dashboard.php +++ b/app/routes/dashboard.php @@ -27,7 +27,10 @@ Route::group(['before' => 'auth', 'prefix' => 'dashboard'], function () { Route::get('notifications', ['as' => 'dashboard.notifications', 'uses' => 'DashboardController@showNotifications']); // Settings - Route::get('settings', ['as' => 'dashboard.settings', 'uses' => 'DashSettingsController@showSettings']); + Route::get('settings/setup', ['as' => 'dashboard.settings.setup', 'uses' => 'DashSettingsController@showSetupView']); + Route::get('settings/security', ['as' => 'dashboard.settings.security', 'uses' => 'DashSettingsController@showSecurityView']); + Route::get('settings/theme', ['as' => 'dashboard.settings.theme', 'uses' => 'DashSettingsController@showThemeView']); + Route::get('settings/stylesheet', ['as' => 'dashboard.settings.stylesheet', 'uses' => 'DashSettingsController@showStylesheetView']); Route::post('settings', 'DashSettingsController@postSettings'); // User Settings diff --git a/app/views/dashboard/settings-app-setup.blade.php b/app/views/dashboard/settings-app-setup.blade.php new file mode 100644 index 00000000..8912f6d5 --- /dev/null +++ b/app/views/dashboard/settings-app-setup.blade.php @@ -0,0 +1,56 @@ +@extends('layout.dashboard') + +@section('content') + @if(isset($subMenu)) + @include('partials.dashboard.sub-sidebar') + @endif +
+
+ + {{ Lang::get('cachet.dashboard.settings') }} + +
+
+
+
+
+

Application Setup

+ + @if($saved = Session::get('saved')) +
{{ Lang::get('cachet.dashboard.settings_saved') }}
+ @elseif(Session::has('saved')) +
{{ Lang::get('cachet.dashboard.settings_not_saved') }}
+ @endif + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+@stop diff --git a/app/views/dashboard/settings-security.blade.php b/app/views/dashboard/settings-security.blade.php new file mode 100644 index 00000000..21a5483d --- /dev/null +++ b/app/views/dashboard/settings-security.blade.php @@ -0,0 +1,51 @@ +@extends('layout.dashboard') + +@section('content') + @if(isset($subMenu)) + @include('partials.dashboard.sub-sidebar') + @endif +
+
+ + {{ Lang::get('cachet.dashboard.settings') }} + +
+
+
+
+
+

Security

+ + @if($saved = Session::get('saved')) +
{{ Lang::get('cachet.dashboard.settings_saved') }}
+ @elseif(Session::has('saved')) +
{{ Lang::get('cachet.dashboard.settings_not_saved') }}
+ @endif + +
+
+
+
+ + +
+ The domain set above is automatically allowed by default. +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+@stop diff --git a/app/views/dashboard/settings-stylesheet.blade.php b/app/views/dashboard/settings-stylesheet.blade.php new file mode 100644 index 00000000..d4ecd7ea --- /dev/null +++ b/app/views/dashboard/settings-stylesheet.blade.php @@ -0,0 +1,48 @@ +@extends('layout.dashboard') + +@section('content') + @if(isset($subMenu)) + @include('partials.dashboard.sub-sidebar') + @endif +
+
+ + {{ Lang::get('cachet.dashboard.settings') }} + +
+
+
+
+
+

Stylesheet

+ + @if($saved = Session::get('saved')) +
{{ Lang::get('cachet.dashboard.settings_saved') }}
+ @elseif(Session::has('saved')) +
{{ Lang::get('cachet.dashboard.settings_not_saved') }}
+ @endif + +
+
+
+
+ + +
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+@stop diff --git a/app/views/dashboard/settings.blade.php b/app/views/dashboard/settings-theme.blade.php similarity index 53% rename from app/views/dashboard/settings.blade.php rename to app/views/dashboard/settings-theme.blade.php index 1388c246..c84cb8e1 100644 --- a/app/views/dashboard/settings.blade.php +++ b/app/views/dashboard/settings-theme.blade.php @@ -1,7 +1,9 @@ @extends('layout.dashboard') @section('content') - @include('partials.dashboard.sidebar-settings') + @if(isset($subMenu)) + @include('partials.dashboard.sub-sidebar') + @endif
@@ -12,48 +14,14 @@
-

Application Setup

-
-
-
-
- - -
-
-
-
-
-
- - -
-
-
-
- - - -

Security

-
-
-
-
- - -
- The domain set above is automatically allowed by default. -
-
-
-
-
- - -

Theme

+ + @if($saved = Session::get('saved')) +
{{ Lang::get('cachet.dashboard.settings_saved') }}
+ @elseif(Session::has('saved')) +
{{ Lang::get('cachet.dashboard.settings_not_saved') }}
+ @endif +
@@ -91,18 +59,6 @@
-

Stylesheet

-
-
-
-
- - -
-
-
-
-
diff --git a/app/views/partials/dashboard/sidebar-settings.blade.php b/app/views/partials/dashboard/sidebar-settings.blade.php deleted file mode 100644 index f11ec5b2..00000000 --- a/app/views/partials/dashboard/sidebar-settings.blade.php +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/app/views/partials/dashboard/sidebar.blade.php b/app/views/partials/dashboard/sidebar.blade.php index 492e9216..d187e93e 100644 --- a/app/views/partials/dashboard/sidebar.blade.php +++ b/app/views/partials/dashboard/sidebar.blade.php @@ -59,8 +59,8 @@ {{ Lang::get('cachet.dashboard.notifications') }} --}} -
  • - +
  • + {{ Lang::get('cachet.dashboard.settings') }}
  • diff --git a/app/views/partials/dashboard/sub-sidebar.blade.php b/app/views/partials/dashboard/sub-sidebar.blade.php new file mode 100644 index 00000000..c606ab48 --- /dev/null +++ b/app/views/partials/dashboard/sub-sidebar.blade.php @@ -0,0 +1,8 @@ +
    +

    {{ $subTitle }}

    + +
    diff --git a/public/build/css/all-3a96db65.css b/public/build/css/all-ba7bbe3d.css similarity index 99% rename from public/build/css/all-3a96db65.css rename to public/build/css/all-ba7bbe3d.css index 5fec7eca..e021e6b3 100644 --- a/public/build/css/all-3a96db65.css +++ b/public/build/css/all-ba7bbe3d.css @@ -4718,13 +4718,13 @@ body.dashboard .sub-sidebar { color: #6787DA; } body.dashboard .sub-sidebar ul.menu li a:hover { color: #6787DA; } -body.dashboard .content-panel { - top: 0; - position: relative; - width: 78%; - margin-left: 22%; - padding: 24px 50px; - padding-bottom: 80px; } + body.dashboard .sub-sidebar + .content-panel { + top: 0; + position: relative; + width: 78%; + margin-left: 22%; + padding: 24px 50px; + padding-bottom: 80px; } body.dashboard .content { position: relative; diff --git a/public/build/css/all.css b/public/build/css/all.css index 5fec7eca..e021e6b3 100644 --- a/public/build/css/all.css +++ b/public/build/css/all.css @@ -4718,13 +4718,13 @@ body.dashboard .sub-sidebar { color: #6787DA; } body.dashboard .sub-sidebar ul.menu li a:hover { color: #6787DA; } -body.dashboard .content-panel { - top: 0; - position: relative; - width: 78%; - margin-left: 22%; - padding: 24px 50px; - padding-bottom: 80px; } + body.dashboard .sub-sidebar + .content-panel { + top: 0; + position: relative; + width: 78%; + margin-left: 22%; + padding: 24px 50px; + padding-bottom: 80px; } body.dashboard .content { position: relative; diff --git a/public/build/rev-manifest.json b/public/build/rev-manifest.json index aaf3e857..4ba5104a 100644 --- a/public/build/rev-manifest.json +++ b/public/build/rev-manifest.json @@ -1,4 +1,4 @@ { - "css/all.css": "css/all-3a96db65.css", + "css/all.css": "css/all-ba7bbe3d.css", "js/all.js": "js/all-4554a981.js" } \ No newline at end of file