diff options
| author | Murtaza Sultani <sultani@data-quest.de> | 2025-07-30 09:48:20 +0200 |
|---|---|---|
| committer | David Siegfried <david.siegfried@uni-vechta.de> | 2025-07-30 07:48:20 +0000 |
| commit | 8b5da1acae37d9bc983394c3f27508c24024d69b (patch) | |
| tree | 93360533b83eeff9f6c78e60cedadeb026bcad8e /resources/vue/components/forum/SubscriptionDropdown.vue | |
| parent | d6ce47b2ea667524acafda4e539a81695158c07d (diff) | |
Resolve "Forum in freien Veranstaltungen sind nicht aufrufbar"issue-5760
Closes #5699
Merge request studip/studip!4371
Diffstat (limited to 'resources/vue/components/forum/SubscriptionDropdown.vue')
| -rw-r--r-- | resources/vue/components/forum/SubscriptionDropdown.vue | 127 |
1 files changed, 65 insertions, 62 deletions
diff --git a/resources/vue/components/forum/SubscriptionDropdown.vue b/resources/vue/components/forum/SubscriptionDropdown.vue index 422c0ae..944805d 100644 --- a/resources/vue/components/forum/SubscriptionDropdown.vue +++ b/resources/vue/components/forum/SubscriptionDropdown.vue @@ -95,7 +95,7 @@ const unSubscribe = async () => { STUDIP.Report.success($gettext('Sie haben das Abonnement erfolgreich beendet.')); } catch (error) { - STUDIP.Report.error(error.statusText); + STUDIP.Report.error(error); } finally { isLoading.value = false; } @@ -133,6 +133,7 @@ const subscribe = async (notification_type = 'all') => { :title="title" class="button subscription-button" :class="subscriptionButtonLabel ? 'button--icon-label' : 'button--icon-only'" + :aria-pressed="isOpen" @click="isOpen = !isOpen" > <span v-if="subscriptionButtonLabel"> @@ -143,70 +144,72 @@ const subscribe = async (notification_type = 'all') => { </template> <template #items> - <li - tabindex="0" - :class="{ - '--active': subscription?.notification_type === SubscriptionNotificationType.All - }" - @keydown.enter="subscribe(SubscriptionNotificationType.All)" - @click="subscribe(SubscriptionNotificationType.All)" - > - <StudipIcon shape="subscription-all" :size="25" /> - <div class="subscription-option"> - <p class="option-title">{{ $gettext('Alle Benachrichtigungen') }}</p> - <StudipIcon - v-if="subscription?.notification_type === SubscriptionNotificationType.All" - shape="accept" - :size="20" - role="accept" /> - </div> + <li> + <button + type="button" + :class="{ + 'active': subscription?.notification_type === SubscriptionNotificationType.All + }" + @click="subscribe(SubscriptionNotificationType.All)" + > + <StudipIcon shape="subscription-all" :size="20" /> + <span class="subscription-option"> + <span class="option-title">{{ $gettext('Alle Benachrichtigungen') }}</span> + <StudipIcon + v-if="subscription?.notification_type === SubscriptionNotificationType.All" + shape="accept" + :size="20" + role="accept" /> + </span> + </button> </li> - <li - tabindex="0" - :class="{ - '--active': subscription?.notification_type === SubscriptionNotificationType.RepliesOnly - }" - @keydown.enter="subscribe(SubscriptionNotificationType.RepliesOnly)" - @click="subscribe(SubscriptionNotificationType.RepliesOnly)" - > - <StudipIcon shape="subscription-quotes" :size="25" /> - <div class="subscription-option"> - <p class="option-title">{{ $gettext('Nur Zitat') }}</p> - <StudipIcon - v-if="subscription?.notification_type === SubscriptionNotificationType.RepliesOnly" - shape="accept" - :size="20" - role="accept" /> - </div> + <li> + <button + type="button" + :class="{ + 'active': subscription?.notification_type === SubscriptionNotificationType.RepliesOnly + }" + @click="subscribe(SubscriptionNotificationType.RepliesOnly)" + > + <StudipIcon shape="subscription-quotes" :size="20" /> + <span class="subscription-option"> + <span class="option-title">{{ $gettext('Nur Zitat') }}</span> + <StudipIcon + v-if="subscription?.notification_type === SubscriptionNotificationType.RepliesOnly" + shape="accept" + :size="20" + role="accept" /> + </span> + </button> </li> - <li - tabindex="0" - :class="{ - '--active': subscription?.notification_type === SubscriptionNotificationType.None - }" - @keydown.enter="subscribe(SubscriptionNotificationType.None)" - @click="subscribe(SubscriptionNotificationType.None)" - > - <StudipIcon shape="subscription-none" :size="25" /> - <div class="subscription-option"> - <p class="option-title">{{ $gettext('Keine') }}</p> - <StudipIcon - v-if="subscription?.notification_type === SubscriptionNotificationType.None" - shape="accept" - :size="20" - role="accept" /> - </div> + <li> + <button + type="button" + :class="{ + 'active': subscription?.notification_type === SubscriptionNotificationType.None + }" + @click="subscribe(SubscriptionNotificationType.None)" + > + <StudipIcon shape="subscription-none" :size="20" /> + <span class="subscription-option"> + <span class="option-title">{{ $gettext('Keine') }}</span> + <StudipIcon + v-if="subscription?.notification_type === SubscriptionNotificationType.None" + shape="accept" + :size="20" + role="accept" /> + </span> + </button> </li> - <li - :tabindex="subscription ? 0 : -1" - :class="{ - '--disabled': !subscription?.notification_type - }" - @keydown.enter="unSubscribe" - @click="unSubscribe" - > - <StudipIcon shape="subscription-end" :size="25" /> - <p class="option-title">{{ $gettext('Abonnieren beenden') }}</p> + <li> + <button + type="button" + :disabled="!subscription?.notification_type" + @click="unSubscribe" + > + <StudipIcon shape="subscription-end" :size="20" /> + <p class="option-title">{{ $gettext('Abonnieren beenden') }}</p> + </button> </li> </template> </Dropdown> |
