Add missing ActionBar.vue

This commit is contained in:
Johannes Zellner
2025-12-18 17:04:01 +01:00
parent aa30f6ef98
commit 7b46595503
+49
View File
@@ -0,0 +1,49 @@
<script setup>
import { computed, useTemplateRef } from 'vue';
import { Menu, Button } from '@cloudron/pankow';
const props = defineProps({
actions: {
type: Array,
default: () => [],
},
});
const quickActions = computed(() => {
return props.actions.filter(a => a.quickAction && !(typeof a.visible !== 'undefined' && !a.visible));
});
const menuElement = useTemplateRef('menuElement');
function onMenu(event) {
menuElement.value.open(event, event.currentTarget);
}
</script>
<template>
<div class="action-bar">
<Button tool plain secondary v-for="quickAction in quickActions" :key="quickAction" :icon="quickAction.icon" @click="quickAction.action()" class="quick-action"/>
<Menu ref="menuElement" :model="actions" />
<Button tool plain secondary @click.capture="onMenu($event)" icon="fa-solid fa-ellipsis" v-if="actions.length > 0" />
</div>
</template>
<style scoped>
.action-bar {
display: flex;
gap: 5px;
justify-content: end;
min-height: 30.5px;
}
.quick-action {
display: none;
}
tr:hover .quick-action {
display: block;
}
</style>