From 7bc684e5d11383a9fe9bac360e94309ebdf78e77 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 23 Dec 2021 17:37:08 -0700 Subject: [PATCH] Update SpaController, persist web language changes --- app/Http/Controllers/SpaController.php | 20 ++++++++++++++++++++ routes/web.php | 1 + 2 files changed, 21 insertions(+) diff --git a/app/Http/Controllers/SpaController.php b/app/Http/Controllers/SpaController.php index ca4eb93b3..d92cdc37a 100644 --- a/app/Http/Controllers/SpaController.php +++ b/app/Http/Controllers/SpaController.php @@ -9,6 +9,7 @@ use League\CommonMark\CommonMarkConverter; use App\Services\AccountService; use App\Services\StatusService; use App\Services\SnowflakeService; +use App\Util\Localization\Localization; class SpaController extends Controller { @@ -68,6 +69,25 @@ class SpaController extends Controller return redirect('404'); } + public function updateLanguage(Request $request) + { + $this->validate($request, [ + 'v' => 'required|in:0.1,0.2', + 'l' => 'required|alpha_dash|max:5' + ]); + + $lang = $request->input('l'); + $user = $request->user(); + + abort_if(!in_array($lang, Localization::languages()), 400); + + $user->language = $lang; + $user->save(); + session()->put('locale', $lang); + + return ['language' => $lang]; + } + public function getPrivacy() { $body = $this->markdownToHtml('views/page/privacy.md'); diff --git a/routes/web.php b/routes/web.php index f342cff24..328823853 100644 --- a/routes/web.php +++ b/routes/web.php @@ -210,6 +210,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact }); Route::get('discover/accounts/popular', 'Api\ApiV1Controller@discoverAccountsPopular'); + Route::post('web/change-language.json', 'SpaController@updateLanguage'); }); Route::group(['prefix' => 'local'], function () {