diff --git a/app/Http/Composers/InitialStateComposer.php b/app/Http/Composers/InitialStateComposer.php index ea98cab2a1..6a0e4f71b0 100644 --- a/app/Http/Composers/InitialStateComposer.php +++ b/app/Http/Composers/InitialStateComposer.php @@ -38,7 +38,7 @@ private function initialState(): array ], ], $this->registerUserModel(), - $this->registerFollowers() + $this->registerFollowers(), ); } @@ -63,6 +63,7 @@ private function registerUserModel(): array if (empty($this->request->user())) { return []; } + /** @var User $user */ $user = $this->request->user(); return [ 'user' => [ @@ -75,6 +76,7 @@ private function registerUserModel(): array 'created_at' => $user->created_at->toIso8601String(), 'photo' => (string)$user->photo->url(), 'is_sponsor' => $user->is_sponsor, + 'postCommentStyle' => $user->guest->settings['postCommentStyle'] ?? 'legacy', ], ]; } diff --git a/app/Http/Controllers/Adm/UsersController.php b/app/Http/Controllers/Adm/UsersController.php index c5703967ea..4f9e6028eb 100644 --- a/app/Http/Controllers/Adm/UsersController.php +++ b/app/Http/Controllers/Adm/UsersController.php @@ -74,8 +74,9 @@ public function edit(User $user): View $this->breadcrumb->push("@$user->name", route('adm.users.show', [$user->id])); $this->breadcrumb->push('Ustawienia konta', route('adm.users.save', [$user->id])); return $this->view('adm.users.save', [ - 'user' => $user, - 'form' => $this->getForm($user), + 'user' => $user, + 'form' => $this->getForm($user), + 'userSettings' => \json_encode($user->guest?->settings, \JSON_PRETTY_PRINT), ]); } @@ -98,6 +99,12 @@ public function save(User $user): RedirectResponse $user->groups()->sync((array)$data['groups']); stream(Update::class, new Person($user)); event($user->deleted_at ? new UserDeleted($user) : new UserSaved($user)); + + if ($this->request->has('local-settings-action')) { + $modern = $this->request->get('local-settings-action') === 'post-comments-modern'; + $user->guest->setSetting('postCommentStyle', $modern ? 'modern' : 'legacy'); + $user->guest->save(); + } }); return back()->with('success', 'Zmiany zostały poprawie zapisane'); diff --git a/app/Models/User.php b/app/Models/User.php index 764896a074..14a9411598 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -14,6 +14,7 @@ use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasManyThrough; @@ -81,6 +82,7 @@ * @property User[] $followers * @property Tag[] $skills * @property string|null $gdpr + * @property Guest|null $guest */ class User extends Model implements AuthenticatableContract, AuthorizableContract, CanResetPasswordContract { @@ -188,6 +190,11 @@ public function actkey(): HasMany return $this->hasMany(Actkey::class); } + public function guest(): BelongsTo + { + return $this->belongsTo(Guest::class); + } + public function skills(): MorphToMany { return $this->morphToMany(Tag::class, 'resource', 'tag_resources') diff --git a/resources/js/components/forum/comment.vue b/resources/js/components/forum/comment.vue index 75b20d7cca..8383697cab 100644 --- a/resources/js/components/forum/comment.vue +++ b/resources/js/components/forum/comment.vue @@ -2,8 +2,30 @@
-