diff --git a/resources/vue/components/StudipActionMenu.vue b/resources/vue/components/StudipActionMenu.vue index 8696392472376402d8b82379074cfc54c02992c2..99fced89fa9761c72b7dc283350ab62b30688cda 100644 --- a/resources/vue/components/StudipActionMenu.vue +++ b/resources/vue/components/StudipActionMenu.vue @@ -17,6 +17,16 @@ {{ item.label }} </a> + <label v-else-if="item.icon" class="undecorated" v-bind="linkAttributes(item)" v-on="linkEvents(item)"> + <studip-icon :shape="item.icon.shape" :role="item.icon.role" :name="item.name" :title="item.label" v-bind="item.attributes ?? {}"></studip-icon> + {{ item.label }} + </label> + <template v-else> + <span class="action-menu-no-icon"></span> + <button :name="item.name" v-bind="Object.assign(item.attributes ?? {}, linkAttributes(item))" v-on="linkEvents(item)"> + {{ item.label }} + </button> + </template> </li> </ul> </div> @@ -79,7 +89,7 @@ export default { computed: { navigationItems () { return this.items.map((item) => { - let classes = item.classes || ''; + let classes = item.classes ?? ''; if (item.disabled) { classes += " action-menu-item-disabled"; } @@ -93,6 +103,7 @@ export default { role: item.disabled ? 'inactive' : 'clickable' } : false, type: item.type || 'link', + name: item.name ?? null, classes: classes.trim(), attributes: item.attributes || {}, disabled: item.disabled,