From 2ffb6d94aa2093be0356574f89100a6908dfc592 Mon Sep 17 00:00:00 2001
From: Ron Lucke <lucke@elan-ev.de>
Date: Mon, 4 Apr 2022 09:33:50 +0000
Subject: [PATCH] fix #825

---
 lib/classes/sidebar/LinkElement.php           |  2 +-
 .../assets/stylesheets/scss/courseware.scss   |  2 ++
 .../assets/stylesheets/scss/sidebar.scss      | 30 ++++++++---------
 .../courseware/CoursewareActionWidget.vue     | 32 +++++++++----------
 .../courseware/CoursewareExportWidget.vue     |  8 ++---
 .../courseware/CoursewareRibbon.vue           | 11 +++----
 .../courseware/CoursewareRibbonToolbar.vue    |  5 ++-
 .../courseware/CoursewareViewWidget.vue       | 12 +++----
 8 files changed, 50 insertions(+), 52 deletions(-)

diff --git a/lib/classes/sidebar/LinkElement.php b/lib/classes/sidebar/LinkElement.php
index 1d977f15b1c..b38a1453eab 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(
-            '<form action="%1$s" method="post" %2$s class="link-form">%3$s<button type="submit">%4$s</button></form>',
+            '<form action="%1$s" method="post" %2$s>%3$s<button type="submit">%4$s</button></form>',
             htmlReady($this->url),
             arrayToHtmlAttributes((array) $this->attributes),
             CSRFProtection::tokenTag(),
diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss
index 318214c40e4..b631b411625 100755
--- a/resources/assets/stylesheets/scss/courseware.scss
+++ b/resources/assets/stylesheets/scss/courseware.scss
@@ -338,6 +338,7 @@ $consum_ribbon_width: calc(100% - 58px);
         background-repeat: no-repeat;
         background-position: center;
         background-size: 24px;
+        cursor: pointer;
 
         &.cw-ribbon-button-menu {
             @include background-icon(table-of-contents, clickable, 24);
@@ -439,6 +440,7 @@ $consum_ribbon_width: calc(100% - 58px);
                 padding: 0 4px;
                 right: 0;
                 top: 12px;
+                cursor: pointer;
 
                 @include background-icon(decline, clickable, 24);
                 background-repeat: no-repeat;
diff --git a/resources/assets/stylesheets/scss/sidebar.scss b/resources/assets/stylesheets/scss/sidebar.scss
index 4f96cb81627..79d51071df5 100644
--- a/resources/assets/stylesheets/scss/sidebar.scss
+++ b/resources/assets/stylesheets/scss/sidebar.scss
@@ -163,9 +163,9 @@ div#sidebar-navigation {
         margin-left: -5px;
         box-shadow: inset 0 0 0 1px $activity-color;
         @include arrow-right-border(14px, $activity-color-40, 1px, $activity-color, -5px);
-        a {
+        a, button {
             color: $base-color;
-            padding-left: 4px;
+            padding-left: 5px;
         }
     }
     &.sidebar-navigation > li,
@@ -190,20 +190,18 @@ div#sidebar-navigation {
         }
     }
 
-    .link-form {
-        button {
-            background: transparent;
-            border: 0;
-            color: $base-color;
-            margin: 0;
-            padding: 0;
-            text-align: left;
-            width: 100%;
-
-            &:hover {
-                color: $active-color;
-                cursor: pointer;
-            }
+    button {
+        background: transparent;
+        border: 0;
+        color: $base-color;
+        margin: 0;
+        padding: 0;
+        text-align: left;
+        width: 100%;
+
+        &:hover {
+            color: $active-color;
+            cursor: pointer;
         }
     }
 }
diff --git a/resources/vue/components/courseware/CoursewareActionWidget.vue b/resources/vue/components/courseware/CoursewareActionWidget.vue
index a718a648e0a..fcac6864b24 100644
--- a/resources/vue/components/courseware/CoursewareActionWidget.vue
+++ b/resources/vue/components/courseware/CoursewareActionWidget.vue
@@ -1,44 +1,44 @@
 <template>
     <ul class="widget-list widget-links cw-action-widget" v-if="structuralElement">
         <li class="cw-action-widget-show-toc">
-            <a href="#" @click="toggleTOC">
+            <button @click="toggleTOC">
                 {{ tocText }}
-            </a>
+            </button>
         </li>
         <li class="cw-action-widget-show-consume-mode">
-            <a href="#" @click="showConsumeMode">
+            <button @click="showConsumeMode">
                 <translate>Vollbild einschalten</translate>
-            </a>
+            </button>
         </li>
         <li v-if="canEdit" class="cw-action-widget-edit">
-            <a href="#" @click="editElement">
+            <button @click="editElement">
                 <translate>Seite bearbeiten</translate>
-            </a>
+            </button>
         </li>
         <li v-if="canEdit" class="cw-action-widget-sort">
-            <a href="#" @click="sortContainers">
+            <button @click="sortContainers">
                 <translate>Abschnitte sortieren</translate>
-            </a>
+            </button>
         </li>
         <li v-if="canEdit" class="cw-action-widget-add">
-            <a href="#" @click="addElement">
+            <button @click="addElement">
                 <translate>Seite hinzufügen</translate>
-            </a>
+            </button>
         </li>
         <li class="cw-action-widget-info">
-            <a href="#" @click="showElementInfo">
+            <button @click="showElementInfo">
                 <translate>Informationen anzeigen</translate>
-            </a>
+            </button>
         </li>
         <li class="cw-action-widget-star">
-            <a href="#" @click="createBookmark">
+            <button @click="createBookmark">
                 <translate>Lesezeichen setzen</translate>
-            </a>
+            </button>
         </li>
         <li v-if="!isRoot && canEdit" class="cw-action-widget-trash">
-            <a href="#" @click="deleteElement">
+            <button @click="deleteElement">
                 <translate>Seite löschen</translate>
-            </a>
+            </button>
         </li>
     </ul>
 </template>
diff --git a/resources/vue/components/courseware/CoursewareExportWidget.vue b/resources/vue/components/courseware/CoursewareExportWidget.vue
index a4023b0ff46..cd712acdd21 100644
--- a/resources/vue/components/courseware/CoursewareExportWidget.vue
+++ b/resources/vue/components/courseware/CoursewareExportWidget.vue
@@ -1,9 +1,9 @@
 <template>
     <ul class="widget-list widget-links cw-export-widget" v-if="structuralElement">
         <li v-if="showExportArchiv" class="cw-export-widget-export">
-            <a href="#" @click="exportElement">
+            <button @click="exportElement">
                 <translate>Seite exportieren</translate>
-            </a>
+            </button>
         </li>
         <li v-if="showExportPdf" class="cw-export-widget-export-pdf">
             <a :href="pdfExportURL" target="_blank">
@@ -11,9 +11,9 @@
             </a>
         </li>
         <li v-if="showOer" class="cw-export-widget-oer">
-            <a href="#" @click="oerElement">
+            <button @click="oerElement">
                 <translate>Seite auf %{oerTitle} veröffentlichen</translate>
-            </a>
+            </button>
         </li>
         <li v-if="!showExportArchiv && !showExportPdf && !showOer">
             <translate>Keine Exportoptionen verfügbar</translate>
diff --git a/resources/vue/components/courseware/CoursewareRibbon.vue b/resources/vue/components/courseware/CoursewareRibbon.vue
index da6580705f2..051ae436104 100755
--- a/resources/vue/components/courseware/CoursewareRibbon.vue
+++ b/resources/vue/components/courseware/CoursewareRibbon.vue
@@ -14,21 +14,20 @@
                 </nav>
             </div>
             <div class="cw-ribbon-wrapper-right">
-                <a
-                    href="#"
+                <button
                     class="cw-ribbon-button cw-ribbon-button-menu"
                     :title="textRibbon.toolbar"
                     @click="activeToolbar"
                 >
-                </a>
-                <a
-                    href="#"
+                </button>
+                <button
                     ref="consumeModeSwitch"
                     class="cw-ribbon-button"
                     :class="[consumeMode ? 'cw-ribbon-button-zoom-out' : 'cw-ribbon-button-zoom']"
                     :title="consumeMode ? textRibbon.fullscreen_off : textRibbon.fullscreen_on"
                      @click="toggleConsumeMode"
-                ></a>
+                >
+                </button>
                 <slot name="menu" />
             </div>
             <div v-if="consumeMode" class="cw-ribbon-consume-bottom"></div>
diff --git a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
index 8fc73f5bb6a..5f3e3c2085d 100755
--- a/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
+++ b/resources/vue/components/courseware/CoursewareRibbonToolbar.vue
@@ -47,13 +47,12 @@
                             />
                         </courseware-tab>
                     </courseware-tabs>
-                    <a 
-                        href="#"
+                    <button
                         :title="$gettext('schließen')"
                         class="cw-tools-hide-button"
                         ref="closeTools"
                         @click="$emit('deactivate')">
-                    </a>
+                    </button>
                 </div>
             </div>
         </div>
diff --git a/resources/vue/components/courseware/CoursewareViewWidget.vue b/resources/vue/components/courseware/CoursewareViewWidget.vue
index cfd97c7fc90..86c157a1364 100755
--- a/resources/vue/components/courseware/CoursewareViewWidget.vue
+++ b/resources/vue/components/courseware/CoursewareViewWidget.vue
@@ -1,25 +1,25 @@
 <template>
     <ul class="widget-list widget-links sidebar-views cw-view-widget">
         <li :class="{ active: readView }">
-            <a href="#" @click="setReadView">
+            <button @click="setReadView">
                 <translate>Lesen</translate>
-            </a>
+            </button>
         </li>
         <li
             v-if="canEdit"
             :class="{ active: editView }"
         >
-            <a href="#" @click="setEditView">
+            <button @click="setEditView">
                 <translate>Bearbeiten</translate>
-            </a>
+            </button>
         </li>
         <li 
             v-if="context.type === 'courses' && canVisit"
             :class="{ active: discussView }"
         >
-            <a href="#" @click="setDiscussView">
+            <button @click="setDiscussView">
                 <translate>Kommentieren</translate>
-            </a>
+            </button>
         </li>
     </ul>
 </template>
-- 
GitLab