|
10 | 10 | use Illuminate\Support\Facades\Request;
|
11 | 11 | use Illuminate\Support\Facades\Response;
|
12 | 12 | use Illuminate\Support\Facades\Route;
|
13 |
| -use Illuminate\Support\Facades\Session; |
14 | 13 | use Illuminate\Support\Facades\View;
|
15 | 14 | use Symfony\Component\HttpFoundation\ParameterBag;
|
16 | 15 | use Vsch\TranslationManager\Events\TranslationsPublished;
|
@@ -111,7 +110,18 @@ private function loadCookieData()
|
111 | 110 | $this->displayLocales = $displayLocales;
|
112 | 111 |
|
113 | 112 | // $this->webUIState = json_decode(Cookie::get($this->cookieName(self::COOKIE_WEB_UI_STATE), "{}"), true);
|
114 |
| - $this->webUIState = Session::get($this->manager->config(Manager::PERSISTENT_PREFIX_KEY) . Manager::WEB_UI_SETTINGS_PERSISTENT_SUFFIX, null); |
| 113 | +// $this->webUIState = Session::get($this->manager->config(Manager::PERSISTENT_PREFIX_KEY) . Manager::WEB_UI_SETTINGS_PERSISTENT_SUFFIX, null); |
| 114 | + $this->webUIState = null; |
| 115 | + $userId = Auth::id(); |
| 116 | + if ($userId !== null) { |
| 117 | + $userLocalesModel = new UserLocales(); |
| 118 | + $userLocalesModel->setConnection($connectionName); |
| 119 | + $userLocalesResult = $userLocalesModel->query()->where('user_id', $userId)->first(); |
| 120 | + if ($userLocalesResult && $userLocalesResult->ui_settings) { |
| 121 | + $this->webUIState = json_decode($userLocalesResult->ui_settings, true); |
| 122 | + } |
| 123 | + } |
| 124 | + |
115 | 125 | if (!$this->webUIState) {
|
116 | 126 | // put defaults in it
|
117 | 127 | $this->webUIState = [];
|
@@ -170,7 +180,7 @@ private function normalizeLocaleDataRaw()
|
170 | 180 | $userLocalesModel = new UserLocales();
|
171 | 181 | $userLocalesModel->setConnection($connectionName);
|
172 | 182 | $userLocalesResult = $userLocalesModel->query()->where('user_id', $userId)->first();
|
173 |
| - if ($userLocalesResult && trim($userLocalesResult->locales)) { |
| 183 | + if ($userLocalesResult && $userLocalesResult->locales && trim($userLocalesResult->locales)) { |
174 | 184 | $userLocales = explode(',', $userLocalesResult->locales);
|
175 | 185 | }
|
176 | 186 | }
|
@@ -694,10 +704,18 @@ private function processUISettings($json)
|
694 | 704 | }
|
695 | 705 | }
|
696 | 706 |
|
697 |
| - if ($hadWebUIState) { |
698 |
| - Session::put($this->manager->config(Manager::PERSISTENT_PREFIX_KEY) . Manager::WEB_UI_SETTINGS_PERSISTENT_SUFFIX, $this->webUIState); |
699 |
| - } else { |
700 |
| - Session::remove($this->manager->config(Manager::PERSISTENT_PREFIX_KEY) . Manager::WEB_UI_SETTINGS_PERSISTENT_SUFFIX); |
| 707 | + $userId = Auth::id(); |
| 708 | + if ($userId !== null) { |
| 709 | + if ($hadWebUIState) { |
| 710 | + $userLocalesModel = new UserLocales(); |
| 711 | + $userLocalesModel->setConnection($this->getConnectionName()); |
| 712 | + $userLocalesResult = $userLocalesModel->query()->where('user_id', $userId)->firstOrNew([]); |
| 713 | + $json_encode = json_encode($this->webUIState, JSON_PRETTY_PRINT); |
| 714 | + $userLocalesResult->ui_settings = $json_encode; |
| 715 | + $userLocalesResult->user_id = $userLocalesResult->user_id ?: $userId; |
| 716 | + $userLocalesResult->locales = $userLocalesResult->locales ?: ''; |
| 717 | + $userLocalesResult->save(); |
| 718 | + } |
701 | 719 | }
|
702 | 720 |
|
703 | 721 | // do all the init processing so the returned results are adjusted for display locales and the rest
|
|
0 commit comments