From f4f6834e28d06f9515f0fb07f8846e9887f249f8 Mon Sep 17 00:00:00 2001 From: IceToast Date: Fri, 14 Jan 2022 18:06:24 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Added=20System=20Settings?= =?UTF-8?q?=20&=20Added=20open=20correct=20tab=20after=20settings=20save?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Classes/Settings/Invoices.php | 7 +-- app/Classes/Settings/Language.php | 7 +-- app/Classes/Settings/Misc.php | 7 +-- app/Classes/Settings/Payments.php | 7 +-- app/Classes/Settings/System.php | 48 +++++++++++++++++++ .../views/admin/settings/index.blade.php | 5 ++ .../admin/settings/tabs/invoices.blade.php | 2 - .../views/admin/settings/tabs/misc.blade.php | 15 ------ .../admin/settings/tabs/system.blade.php | 16 +++++++ routes/web.php | 10 ++-- 10 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 app/Classes/Settings/System.php create mode 100644 resources/views/admin/settings/tabs/system.blade.php diff --git a/app/Classes/Settings/Invoices.php b/app/Classes/Settings/Invoices.php index 36323f30..4cca06b5 100644 --- a/app/Classes/Settings/Invoices.php +++ b/app/Classes/Settings/Invoices.php @@ -8,16 +8,13 @@ use Illuminate\Support\Facades\Cache; class Invoices { - public $tabTitle = 'Invoice Settings'; - public $invoiceSettings; - public function __construct() { return; } - public function updateInvoiceSettings(Request $request) + public function updateSettings(Request $request) { $request->validate([ 'logo' => 'nullable|max:10000|mimes:jpg,png,jpeg', @@ -49,6 +46,6 @@ class Invoices } - return redirect()->route('admin.settings.index')->with('success', 'Invoice settings updated!'); + return redirect(route('admin.settings.index') . '#invoices')->with('success', 'Invoice settings updated!'); } } diff --git a/app/Classes/Settings/Language.php b/app/Classes/Settings/Language.php index c240973b..55818b1d 100644 --- a/app/Classes/Settings/Language.php +++ b/app/Classes/Settings/Language.php @@ -9,16 +9,13 @@ use Illuminate\Support\Facades\Session; class Language { - public $tabTitle = 'Language Settings'; - public $languageSettings; - public function __construct() { return; } - public function updateLanguageSettings(Request $request) + public function updateSettings(Request $request) { $values = [ @@ -42,6 +39,6 @@ class Language } - return redirect()->route('admin.settings.index')->with('success', 'Language settings updated!'); + return redirect(route('admin.settings.index') . '#language')->with('success', 'Language settings updated!'); } } diff --git a/app/Classes/Settings/Misc.php b/app/Classes/Settings/Misc.php index 3f056e43..9f551def 100644 --- a/app/Classes/Settings/Misc.php +++ b/app/Classes/Settings/Misc.php @@ -10,9 +10,6 @@ use Illuminate\Support\Facades\Session; class Misc { - public $tabTitle = 'Misc Settings'; - public $miscSettings; - public function __construct() { return; @@ -20,7 +17,7 @@ class Misc - public function updateMiscSettings(Request $request) + public function updateSettings(Request $request) { $request->validate([ 'icon' => 'nullable|max:10000|mimes:jpg,png,jpeg', @@ -61,6 +58,6 @@ class Misc } - return redirect()->route('admin.settings.index')->with('success', 'Misc settings updated!'); + return redirect(route('admin.settings.index') . '#misc')->with('success', 'Misc settings updated!'); } } diff --git a/app/Classes/Settings/Payments.php b/app/Classes/Settings/Payments.php index cb391005..7442f2b8 100644 --- a/app/Classes/Settings/Payments.php +++ b/app/Classes/Settings/Payments.php @@ -9,16 +9,13 @@ use Illuminate\Support\Facades\Session; class Payments { - public $tabTitle = 'Payment Settings'; - public $paymentSettings; - public function __construct() { return; } - public function updatePaymentSettings(Request $request) + public function updateSettings(Request $request) { $values = [ @@ -46,6 +43,6 @@ class Payments } - return redirect()->route('admin.settings.index')->with('success', 'Payment settings updated!'); + return redirect(route('admin.settings.index') . '#payment')->with('success', 'Payment settings updated!'); } } diff --git a/app/Classes/Settings/System.php b/app/Classes/Settings/System.php new file mode 100644 index 00000000..0a9c3672 --- /dev/null +++ b/app/Classes/Settings/System.php @@ -0,0 +1,48 @@ +validate([ + 'icon' => 'nullable|max:10000|mimes:jpg,png,jpeg', + 'favicon' => 'nullable|max:10000|mimes:ico', + ]); + + + $values = [ + //SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form) + "SETTINGS::MISC:PHPMYADMIN:URL" => "phpmyadmin-url", + + + ]; + + + foreach ($values as $key => $value) { + $param = $request->get($value); + if (!$param) { + $param = ""; + } + Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]); + Cache::forget("setting" . ':' . $key); + } + + return redirect(route('admin.settings.index') . '#system')->with('success', 'System settings updated!'); + } +} diff --git a/resources/views/admin/settings/index.blade.php b/resources/views/admin/settings/index.blade.php index 9ff11a06..b3fd4e18 100644 --- a/resources/views/admin/settings/index.blade.php +++ b/resources/views/admin/settings/index.blade.php @@ -67,11 +67,16 @@ diff --git a/resources/views/admin/settings/tabs/invoices.blade.php b/resources/views/admin/settings/tabs/invoices.blade.php index cf972d11..383dc1be 100644 --- a/resources/views/admin/settings/tabs/invoices.blade.php +++ b/resources/views/admin/settings/tabs/invoices.blade.php @@ -1,5 +1,3 @@ -@inject('Invoices', 'App\Classes\Settings\Invoices') -
diff --git a/resources/views/admin/settings/tabs/misc.blade.php b/resources/views/admin/settings/tabs/misc.blade.php index 300a811b..b34ff386 100644 --- a/resources/views/admin/settings/tabs/misc.blade.php +++ b/resources/views/admin/settings/tabs/misc.blade.php @@ -6,21 +6,6 @@
- - - - - -
-
- - -
-
-
+ + @csrf + @method('PATCH') + +
+
+ + +
+
+ +
diff --git a/routes/web.php b/routes/web.php index f44a84d6..936ea04a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -27,6 +27,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use App\Classes\Settings\Language; use App\Classes\Settings\Invoices; +use App\Classes\Settings\System; /* |-------------------------------------------------------------------------- @@ -134,10 +135,11 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () { Route::patch('settings/updatevalue', [SettingsController::class, 'updatevalue'])->name('settings.updatevalue'); #settings - Route::patch('settings/update/invoice-settings', [Invoices::class, 'updateInvoiceSettings'])->name('settings.update.invoicesettings'); - Route::patch('settings/update/language', [Language::class, 'updateLanguageSettings'])->name('settings.update.languagesettings'); - Route::patch('settings/update/payment', [Payments::class, 'updatePaymentSettings'])->name('settings.update.paymentsettings'); - Route::patch('settings/update/misc', [Misc::class, 'updateMiscSettings'])->name('settings.update.miscsettings'); + Route::patch('settings/update/invoice-settings', [Invoices::class, 'updateSettings'])->name('settings.update.invoicesettings'); + Route::patch('settings/update/language', [Language::class, 'updateSettings'])->name('settings.update.languagesettings'); + Route::patch('settings/update/payment', [Payments::class, 'updateSettings'])->name('settings.update.paymentsettings'); + Route::patch('settings/update/misc', [Misc::class, 'updateSettings'])->name('settings.update.miscsettings'); + Route::patch('settings/update/system', [System::class, 'updateSettings'])->name('settings.update.systemsettings'); Route::resource('settings', SettingsController::class)->only('index'); #invoices