diff --git a/plugins/ProfileColor/Controller/ProfileColor.php b/plugins/ProfileColor/Controller/ProfileColor.php index 5d7cd35668..6b86e47059 100644 --- a/plugins/ProfileColor/Controller/ProfileColor.php +++ b/plugins/ProfileColor/Controller/ProfileColor.php @@ -23,6 +23,8 @@ namespace Plugin\ProfileColor\Controller; use App\Core\DB\DB; use App\Core\Form; +use App\Util\Exception\DuplicateFoundException; +use App\Util\Exception\NotFoundException; use App\Util\Exception\ServerException; use function App\Core\I18n\_m; use App\Util\Common; @@ -56,14 +58,15 @@ class ProfileColor */ public static function profileColorSettings(Request $request) { - $user = Common::user(); - $actor_id = $user->getId(); - $pcolor = DB::findOneBy('profile_color', ['actor_id' => $actor_id]); + $actor = Common::actor(); + $actor_id = $actor->getId(); + + $current_profile_color = DB::find('profile_color', ['actor_id' => $actor_id]); $form = Form::create([ ['color', ColorType::class, [ 'html5' => true, - 'data' => "#000000", + 'data' => $current_profile_color ? $current_profile_color->getColor() : "#000000", 'label' => _m('Profile Color'), 'help' => _m('Choose your Profile Color')] ], @@ -75,14 +78,14 @@ class ProfileColor if ($form->isSubmitted() && $form->isValid()) { - if ($pcolor !== null) { - DB::remove($pcolor); + if ($current_profile_color !== null) { + DB::remove($current_profile_color); DB::flush(); } $data = $form->getData(); - $pcolor = Entity\ProfileColor::create(['actor_id' => $actor_id, 'color' => $data['color']]); - DB::persist($pcolor); + $current_profile_color = Entity\ProfileColor::create(['actor_id' => $actor_id, 'color' => $data['color']]); + DB::persist($current_profile_color); DB::flush(); throw new RedirectException(); diff --git a/plugins/ProfileColor/ProfileColor.php b/plugins/ProfileColor/ProfileColor.php index f5f20f40a0..a25b71a6e3 100644 --- a/plugins/ProfileColor/ProfileColor.php +++ b/plugins/ProfileColor/ProfileColor.php @@ -25,6 +25,8 @@ use App\Core\Event; use App\Core\Modules\Plugin; use App\Core\Router\RouteLoader; use App\Util\Common; +use App\Util\Exception\DuplicateFoundException; +use App\Util\Exception\NotFoundException; use App\Util\Exception\RedirectException; use App\Util\Exception\ServerException; use App\Util\Formatting; @@ -83,13 +85,18 @@ class ProfileColor extends Plugin * @param $res * @return bool */ - public function onAppendCardProfile($vars, &$res): bool + public function onAppendCardProfile(&$res): bool { - $actor = $vars['actor']; + $actor = Common::actor(); if ($actor !== null) { $actor_id = $actor->getId(); - $color = DB::find('profile_color', ['actor_id' => $actor_id]); + try { + $color = DB::findOneBy('profile_color', ['actor_id' => $actor_id]); + } catch (NotFoundException $e) { + return Event::next; + } + if ($color !== null) { $res[] = Formatting::twigRenderFile('/profileColor/profileColorView.html.twig', ['profile_color' => $color, 'actor' => $actor_id]); } diff --git a/public/assets/css/base.css b/public/assets/css/base.css index f04009c10b..aaa9037130 100644 --- a/public/assets/css/base.css +++ b/public/assets/css/base.css @@ -659,6 +659,13 @@ input[type=checkbox] { mask-image: url("../icons/check-off.svg") !important; } +input[type=color] { + border: unset; + padding: 2px; + width: 100%; + height: 3rem; +} + /* DISABLED STATE TEXT COLOR */ :is(:disabled, :disabled:active)::file-selector-button, button:is(:disabled, :disabled:active), diff --git a/templates/cards/profile/view.html.twig b/templates/cards/profile/view.html.twig index ad207ac3e4..b7ce61ab3f 100644 --- a/templates/cards/profile/view.html.twig +++ b/templates/cards/profile/view.html.twig @@ -35,7 +35,7 @@ {% endif %} - {% for block in handle_event('AppendCardProfile', {'actor': actor}) %} + {% for block in handle_event('AppendCardProfile') %} {{ block | raw }} {% endfor %}