Some improvements on settings controller

Closes 989

Signed-off-by: Graham Campbell <graham@alt-three.com>
This commit is contained in:
Davide Bellini
2015-10-05 18:10:04 +01:00
committed by Graham Campbell
parent 1ba807c724
commit 4793617f9b

View File

@@ -18,6 +18,7 @@ use GrahamCampbell\Binput\Facades\Binput;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\View;
class SettingsController extends Controller
@@ -30,25 +31,25 @@ class SettingsController extends Controller
$this->subMenu = [
'setup' => [
'title' => trans('dashboard.settings.app-setup.app-setup'),
'url' => '/dashboard/settings/setup',
'url' => route('dashboard.settings.setup'),
'icon' => 'ion-gear-b',
'active' => false,
],
'security' => [
'title' => trans('dashboard.settings.security.security'),
'url' => '/dashboard/settings/security',
'url' => route('dashboard.settings.security'),
'icon' => 'ion-lock-combination',
'active' => false,
],
'theme' => [
'title' => trans('dashboard.settings.theme.theme'),
'url' => '/dashboard/settings/theme',
'url' => route('dashboard.settings.theme'),
'icon' => 'ion-paintbrush',
'active' => false,
],
'stylesheet' => [
'title' => trans('dashboard.settings.stylesheet.stylesheet'),
'url' => '/dashboard/settings/stylesheet',
'url' => route('dashboard.settings.stylesheet'),
'icon' => 'ion-paintbucket',
'active' => false,
],
@@ -68,6 +69,8 @@ class SettingsController extends Controller
{
$this->subMenu['setup']['active'] = true;
Session::flash('redirect_to', $this->subMenu['setup']['url']);
return View::make('dashboard.settings.app-setup')
->withPageTitle('Application Setup - Dashboard')
->withSubMenu($this->subMenu);
@@ -82,6 +85,8 @@ class SettingsController extends Controller
{
$this->subMenu['theme']['active'] = true;
Session::flash('redirect_to', $this->subMenu['theme']['url']);
return View::make('dashboard.settings.theme')
->withPageTitle('Theme - Dashboard')
->withSubMenu($this->subMenu);
@@ -98,6 +103,8 @@ class SettingsController extends Controller
$unsecureUsers = User::whereNull('google_2fa_secret')->orWhere('google_2fa_secret', '')->get();
Session::flash('redirect_to', $this->subMenu['security']['url']);
return View::make('dashboard.settings.security')
->withPageTitle('Security - Dashboard')
->withSubMenu($this->subMenu)
@@ -113,6 +120,8 @@ class SettingsController extends Controller
{
$this->subMenu['stylesheet']['active'] = true;
Session::flash('redirect_to', $this->subMenu['stylesheet']['url']);
return View::make('dashboard.settings.stylesheet')
->withPageTitle('Stylesheet - Dashboard')
->withSubMenu($this->subMenu);
@@ -125,6 +134,8 @@ class SettingsController extends Controller
*/
public function postSettings()
{
$redirectUrl = Session::get('redirect_to', route('dashboard.settings.setup'));
if (Binput::get('remove_banner') === '1') {
$setting = Setting::where('name', 'app_banner');
$setting->delete();
@@ -138,15 +149,15 @@ class SettingsController extends Controller
$maxSize = $file->getMaxFilesize();
if ($file->getSize() > $maxSize) {
return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.app-setup.too-big', ['size' => $maxSize]));
return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.app-setup.too-big', ['size' => $maxSize]));
}
if (!$file->isValid() || $file->getError()) {
return Redirect::route('dashboard.settings.setup')->withErrors($file->getErrorMessage());
return Redirect::to($redirectUrl)->withErrors($file->getErrorMessage());
}
if (strpos($file->getMimeType(), 'image/') !== 0) {
return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.app-setup.images-only'));
if (!starts_with($file->getMimeType(), 'image/')) {
return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.app-setup.images-only'));
}
// Store the banner.
@@ -165,14 +176,13 @@ class SettingsController extends Controller
Setting::firstOrCreate(['name' => $settingName])->update(['value' => $settingValue]);
}
} catch (Exception $e) {
return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.edit.failure'));
return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.edit.failure'));
}
if (Binput::has('app_locale')) {
Lang::setLocale(Binput::get('app_locale'));
}
return Redirect::route('dashboard.settings.setup')
->withSuccess(trans('dashboard.settings.edit.success'));
return Redirect::to($redirectUrl)->withSuccess(trans('dashboard.settings.edit.success'));
}
}