antares/src/renderer/components/WorkspaceTabPropsTableConte...

87 lines
3.0 KiB
Vue
Raw Normal View History

2020-11-13 16:19:59 +01:00
<template>
<BaseContextMenu
:context-event="contextEvent"
@close-context="closeContext"
>
2020-12-01 16:48:20 +01:00
<div class="context-element">
<span class="d-flex"><i class="mdi mdi-18px mdi-key-plus text-light pr-1" /> {{ $t('message.createNewIndex') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
v-for="index in indexTypes"
:key="index"
class="context-element"
:class="{'disabled': index === 'PRIMARY' && hasPrimary}"
@click="addNewIndex(index)"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-key column-key pr-1" :class="`key-${index}`" /> {{ index }}</span>
</div>
</div>
</div>
2020-12-03 16:15:10 +01:00
<div v-if="indexes.length" class="context-element">
2020-12-01 16:48:20 +01:00
<span class="d-flex"><i class="mdi mdi-18px mdi-key-arrow-right text-light pr-1" /> {{ $t('message.addToIndex') }}</span>
<i class="mdi mdi-18px mdi-chevron-right text-light pl-1" />
<div class="context-submenu">
<div
v-for="index in indexes"
:key="index.name"
class="context-element"
:class="{'disabled': index.fields.includes(selectedField.name)}"
@click="addToIndex(index._id)"
>
<span class="d-flex"><i class="mdi mdi-18px mdi-key column-key pr-1" :class="`key-${index.type}`" /> {{ index.name }}</span>
</div>
</div>
</div>
<div class="context-element" @click="duplicateField">
<span class="d-flex"><i class="mdi mdi-18px mdi-content-duplicate text-light pr-1" /> {{ $t('word.duplicate') }}</span>
</div>
2020-11-13 16:19:59 +01:00
<div class="context-element" @click="deleteField">
<span class="d-flex"><i class="mdi mdi-18px mdi-delete text-light pr-1" /> {{ $t('message.deleteField') }}</span>
</div>
</BaseContextMenu>
</template>
<script>
import BaseContextMenu from '@/components/BaseContextMenu';
export default {
2021-08-12 09:54:13 +02:00
name: 'WorkspaceTabQueryTableContext',
2020-11-13 16:19:59 +01:00
components: {
BaseContextMenu
},
props: {
contextEvent: MouseEvent,
2020-12-01 16:48:20 +01:00
indexes: Array,
indexTypes: Array,
selectedField: Object
2020-11-13 16:19:59 +01:00
},
computed: {
2020-12-01 16:48:20 +01:00
hasPrimary () {
return this.indexes.some(index => index.type === 'PRIMARY');
}
2020-11-13 16:19:59 +01:00
},
methods: {
closeContext () {
this.$emit('close-context');
},
duplicateField () {
this.$emit('duplicate-selected');
this.closeContext();
},
2020-11-13 16:19:59 +01:00
deleteField () {
this.$emit('delete-selected');
this.closeContext();
2020-12-01 16:48:20 +01:00
},
addNewIndex (index) {
this.$emit('add-new-index', { field: this.selectedField.name, index });
this.closeContext();
},
addToIndex (index) {
this.$emit('add-to-index', { field: this.selectedField.name, index });
this.closeContext();
2020-11-13 16:19:59 +01:00
}
}
};
</script>