FEATURE: refactorize settings
This commit is contained in:
@@ -2,15 +2,15 @@
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\CMS\Repositories\Settings\Settings as SettingsRepository;
|
||||
use App\Http\Requests;
|
||||
use App\Models\Settings as SettingsModel;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||
|
||||
class Settings extends Controller
|
||||
{
|
||||
/**
|
||||
* @var SettingsModel
|
||||
* @var SettingsRepository
|
||||
*/
|
||||
protected $settings;
|
||||
|
||||
@@ -19,14 +19,13 @@ class Settings extends Controller
|
||||
*
|
||||
* @param SettingsModel $settings
|
||||
*/
|
||||
public function __construct(SettingsModel $settings)
|
||||
public function __construct(SettingsRepository $settings)
|
||||
{
|
||||
$this->settings = $settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get overview (with form) for editing settings
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function getOverview()
|
||||
@@ -45,7 +44,6 @@ class Settings extends Controller
|
||||
|
||||
/**
|
||||
* Save all settings (ignore empty ones)
|
||||
*
|
||||
* When settings used to be non-empty string and user deletes it, key is also deleted from database
|
||||
*
|
||||
* @param Requests\SaveSettingsRequest $request
|
||||
@@ -54,25 +52,7 @@ class Settings extends Controller
|
||||
*/
|
||||
public function saveSettings(Requests\SaveSettingsRequest $request)
|
||||
{
|
||||
$data = $request->all();
|
||||
$commonSettings = isset($data['commonSettings']) ? $data['commonSettings'] : [];
|
||||
|
||||
// remove CSRF token field
|
||||
unset($data['_token'], $data['commonSettings']);
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
// select language for this setting key
|
||||
$language = isset($commonSettings[$key]) ? null : LaravelLocalization::getCurrentLocale();
|
||||
$setting = SettingsModel::firstOrNew(['language' => $language, 'key' => $key]);
|
||||
|
||||
if ($setting->value == $value) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// set value and save or delete
|
||||
$setting->value = $value;
|
||||
empty($value) ? $setting->delete() : $setting->save();
|
||||
}
|
||||
$this->settings->save($request->except(['_token']));
|
||||
|
||||
return redirect()
|
||||
->route('settings.overview')
|
||||
|
||||
Reference in New Issue
Block a user