aboutsummaryrefslogtreecommitdiff
path: root/resources/vue/components/forum/SubscriptionDropdown.vue
diff options
context:
space:
mode:
authorMurtaza Sultani <sultani@data-quest.de>2025-07-30 09:48:20 +0200
committerDavid Siegfried <david.siegfried@uni-vechta.de>2025-07-30 07:48:20 +0000
commit8b5da1acae37d9bc983394c3f27508c24024d69b (patch)
tree93360533b83eeff9f6c78e60cedadeb026bcad8e /resources/vue/components/forum/SubscriptionDropdown.vue
parentd6ce47b2ea667524acafda4e539a81695158c07d (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.vue127
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>