place email buttons inside a tiered menu (dropdown for some) to save space in the ui;

This commit is contained in:
Johann Hoffmann
2026-02-10 14:25:45 +01:00
parent 6da19585ff
commit 609e226057
3 changed files with 33 additions and 10 deletions
+1
View File
@@ -27,6 +27,7 @@ $includesArray = array(
'vendor/npm-asset/primevue/timeline/timeline.min.js',
'vendor/npm-asset/primevue/inplace/inplace.min.js',
'vendor/npm-asset/primevue/message/message.min.js',
'vendor/npm-asset/primevue/tieredmenu/tieredmenu.js',
'vendor/moment/luxonjs/luxon.min.js'
),
'customJSModules' => array(
@@ -35,6 +35,7 @@ $includesArray = array(
'vendor/npm-asset/primevue/timeline/timeline.min.js',
'vendor/npm-asset/primevue/inplace/inplace.min.js',
'vendor/npm-asset/primevue/message/message.min.js',
'vendor/npm-asset/primevue/tieredmenu/tieredmenu.js',
'vendor/moment/luxonjs/luxon.min.js'
),
'customJSModules' => array(
@@ -30,6 +30,7 @@ export const AbgabetoolAssistenz = {
Inplace: primevue.inplace,
Textarea: primevue.textarea,
Timeline: primevue.timeline,
TieredMenu: primevue.tieredmenu,
VueDatePicker,
FhcOverlay
},
@@ -969,6 +970,25 @@ export const AbgabetoolAssistenz = {
}
},
computed: {
emailItems() {
const menu = []
if(this.ASSISTENZ_SAMMELMAIL_BUTTON_STUDENT){
menu.push({
label: this.$p.t('abgabetool/c4sendEmailStudierendev2', [this.uniqueStudentEmailCount]),
command: this.sammelMailStudent
})
}
if(this.ASSISTENZ_SAMMELMAIL_BUTTON_BETREUER) {
menu.push({
label: this.$p.t('abgabetool/c4sendEmailBetreuerv2', [this.uniqueBetreuerEmailCount]),
command: this.sammelMailBetreuer
})
}
return menu
},
uniqueBetreuerEmailCount() {
const emails = new Set();
@@ -1344,16 +1364,6 @@ export const AbgabetoolAssistenz = {
:useSelectionSpan="false"
>
<template #actions>
<button v-if="ASSISTENZ_SAMMELMAIL_BUTTON_STUDENT"
role="button" class="btn btn-secondary ml-2"
@click="sammelMailStudent">
{{ $p.t('abgabetool/c4sendEmailStudierendev2', [uniqueStudentEmailCount]) }}
</button>
<button v-if="ASSISTENZ_SAMMELMAIL_BUTTON_BETREUER"
role="button" class="btn btn-secondary ml-2"
@click="sammelMailBetreuer">
{{ $p.t('abgabetool/c4sendEmailBetreuerv2', [uniqueBetreuerEmailCount]) }}
</button>
<Dropdown
@change="semesterChanged"
:placeholder="$capitalize($p.t('lehre/studiensemester'))"
@@ -1366,6 +1376,17 @@ export const AbgabetoolAssistenz = {
<div>{{ option.studiensemester_kurzbz }}</div>
</template>
</Dropdown>
<button
v-if="emailItems.length"
role="button"
@click="evt => $refs.menu.toggle(evt)"
class="btn btn-outline-secondary dropdown-toggle"
aria-haspopup="true"
>
<i class="fa fa-envelope"></i>
</button>
<tiered-menu ref="menu" :model="emailItems" popup/>
</template>
</core-filter-cmpt>
</div>