Add missing ActionBar.vue
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user