Some improvements on settings controller
Closes 989 Signed-off-by: Graham Campbell <graham@alt-three.com>
This commit is contained in:
committed by
Graham Campbell
parent
1ba807c724
commit
4793617f9b
@@ -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'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user