From 5a289c72cb444de0e0cb19ed78c196d9b6f3f6f8 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 18 Aug 2023 12:23:46 +0000
Subject: [PATCH] let sidebar buttons extend from button.as-link instead of
 requiring the class set on the button, re #1474

Merge request studip/studip!2053
---
 lib/classes/sidebar/LinkElement.php            | 2 +-
 lib/classes/sidebar/OptionsWidget.php          | 4 ++--
 resources/assets/stylesheets/scss/sidebar.scss | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/classes/sidebar/LinkElement.php b/lib/classes/sidebar/LinkElement.php
index a6bbe961b5f..fccb9fae1a0 100644
--- a/lib/classes/sidebar/LinkElement.php
+++ b/lib/classes/sidebar/LinkElement.php
@@ -226,7 +226,7 @@ class LinkElement extends WidgetElement implements ArrayAccess
     protected function renderButton()
     {
         return sprintf(
-            '<button formaction="%s" class="as-link" %s>%s</button>',
+            '<button formaction="%s" %s>%s</button>',
             htmlReady($this->url),
             arrayToHtmlAttributes((array) $this->attributes),
             htmlReady($this->label)
diff --git a/lib/classes/sidebar/OptionsWidget.php b/lib/classes/sidebar/OptionsWidget.php
index f50625c3129..a3660b5cc8c 100644
--- a/lib/classes/sidebar/OptionsWidget.php
+++ b/lib/classes/sidebar/OptionsWidget.php
@@ -34,7 +34,7 @@ class OptionsWidget extends ListWidget
         $toggle_url_off = isset($toggle_url_off) ? html_entity_decode($toggle_url_off) : null;
 
         $content = sprintf(
-            '<button formaction="%s" role="checkbox" aria-checked="%s" class="as-link options-checkbox options-%s" %s>%s</button>',
+            '<button formaction="%s" role="checkbox" aria-checked="%s" class="options-checkbox options-%s" %s>%s</button>',
             htmlReady($state && $toggle_url_off !== null ? $toggle_url_off : $toggle_url),
             $state ? 'true' : 'false',
             $state ? 'checked' : 'unchecked',
@@ -55,7 +55,7 @@ class OptionsWidget extends ListWidget
         $url = html_entity_decode($url);
 
         $content = sprintf(
-            '<button formaction="%s" role="radio" aria-checked="%s" class="as-link options-radio options-%s" %s>%s</button>',
+            '<button formaction="%s" role="radio" aria-checked="%s" class="options-radio options-%s" %s>%s</button>',
             htmlReady($url),
             $checked ? 'true' : 'false',
             $checked ? 'checked' : 'unchecked',
diff --git a/resources/assets/stylesheets/scss/sidebar.scss b/resources/assets/stylesheets/scss/sidebar.scss
index 493049c4e39..b67a49e744d 100644
--- a/resources/assets/stylesheets/scss/sidebar.scss
+++ b/resources/assets/stylesheets/scss/sidebar.scss
@@ -125,6 +125,7 @@ ul.widget-list {
     }
 
     button {
+        @extend .as-link;
         text-align: left;
         width: 100%;
     }
-- 
GitLab