1
1
mirror of https://github.com/Fabio286/antares.git synced 2025-06-05 21:59:22 +02:00

feat: table fields deletion

This commit is contained in:
2020-11-13 16:19:59 +01:00
parent 07654039b6
commit 242ddec744
7 changed files with 61 additions and 20 deletions

View File

@ -7,7 +7,7 @@
ref="tabWrap" ref="tabWrap"
class="tab tab-block column col-12" class="tab tab-block column col-12"
> >
<li class="tab-item"> <li class="tab-item d-none">
<a class="tab-link workspace-tools-link"> <a class="tab-link workspace-tools-link">
<i class="mdi mdi-24px mdi-tools" /> <i class="mdi mdi-24px mdi-tools" />
</a> </a>

View File

@ -32,15 +32,15 @@
<span>{{ $t('word.add') }}</span> <span>{{ $t('word.add') }}</span>
<i class="mdi mdi-24px mdi-playlist-plus ml-1" /> <i class="mdi mdi-24px mdi-playlist-plus ml-1" />
</button> </button>
<button class="btn btn-dark btn-sm"> <button class="btn btn-dark btn-sm d-none">
<span>{{ $t('word.indexes') }}</span> <span>{{ $t('word.indexes') }}</span>
<i class="mdi mdi-24px mdi-key mdi-rotate-45 ml-1" /> <i class="mdi mdi-24px mdi-key mdi-rotate-45 ml-1" />
</button> </button>
<button class="btn btn-dark btn-sm"> <button class="btn btn-dark btn-sm d-none">
<span>{{ $t('word.foreignKeys') }}</span> <span>{{ $t('word.foreignKeys') }}</span>
<i class="mdi mdi-24px mdi-key-link ml-1" /> <i class="mdi mdi-24px mdi-key-link ml-1" />
</button> </button>
<button class="btn btn-dark btn-sm"> <button class="btn btn-dark btn-sm d-none">
<span>{{ $t('word.options') }}</span> <span>{{ $t('word.options') }}</span>
<i class="mdi mdi-24px mdi-cogs ml-1" /> <i class="mdi mdi-24px mdi-cogs ml-1" />
</button> </button>
@ -57,6 +57,7 @@
:table="table" :table="table"
:schema="schema" :schema="schema"
mode="table" mode="table"
@remove-field="removeField"
/> />
</div> </div>
</div> </div>
@ -193,7 +194,7 @@ export default {
const orgName = originalField.name; const orgName = originalField.name;
if (JSON.stringify(originalField) !== JSON.stringify(this.localFields[lI]) || originalSibling !== localSibling) if (JSON.stringify(originalField) !== JSON.stringify(this.localFields[lI]) || originalSibling !== localSibling)
changes.push({ ...this.localFields[lI], after, orgName }); if (this.localFields[lI]) changes.push({ ...this.localFields[lI], after, orgName });
}); });
const params = { const params = {

View File

@ -7,8 +7,8 @@
<TableContext <TableContext
v-if="isContext" v-if="isContext"
:context-event="contextEvent" :context-event="contextEvent"
:selected-rows="selectedRows" :selected-field="selectedField"
@delete-selected="deleteSelected" @delete-selected="removeField"
@close-context="isContext = false" @close-context="isContext = false"
/> />
<div ref="propTable" class="table table-hover"> <div ref="propTable" class="table table-hover">
@ -100,6 +100,7 @@
:key="row._id" :key="row._id"
:row="row" :row="row"
:data-types="dataTypes" :data-types="dataTypes"
@contextmenu="contextMenu"
/> />
</draggable> </draggable>
</div> </div>
@ -110,11 +111,13 @@
import { mapActions, mapGetters } from 'vuex'; import { mapActions, mapGetters } from 'vuex';
import draggable from 'vuedraggable'; import draggable from 'vuedraggable';
import TableRow from '@/components/WorkspacePropsTableRow'; import TableRow from '@/components/WorkspacePropsTableRow';
import TableContext from '@/components/WorkspacePropsTableContext';
export default { export default {
name: 'WorkspacePropsTable', name: 'WorkspacePropsTable',
components: { components: {
TableRow, TableRow,
TableContext,
draggable draggable
}, },
props: { props: {
@ -131,8 +134,7 @@ export default {
localResults: [], localResults: [],
isContext: false, isContext: false,
contextEvent: null, contextEvent: null,
selectedCell: null, selectedField: null,
selectedRows: [],
scrollElement: null scrollElement: null
}; };
}, },
@ -186,12 +188,13 @@ export default {
refreshScroller () { refreshScroller () {
this.resizeResults(); this.resizeResults();
}, },
contextMenu (event, cell) { contextMenu (event, uid) {
this.selectedCell = cell; this.selectedField = uid;
if (!this.selectedRows.includes(cell.id))
this.selectedRows = [cell.id];
this.contextEvent = event; this.contextEvent = event;
this.isContext = true; this.isContext = true;
},
removeField () {
this.$emit('remove-field', this.selectedField);
} }
} }
}; };

View File

@ -0,0 +1,41 @@
<template>
<BaseContextMenu
:context-event="contextEvent"
@close-context="closeContext"
>
<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 {
name: 'WorkspaceQueryTableContext',
components: {
BaseContextMenu
},
props: {
contextEvent: MouseEvent,
selectedField: String
},
data () {
return {
isConfirmModal: false
};
},
computed: {
},
methods: {
closeContext () {
this.$emit('close-context');
},
deleteField () {
this.$emit('delete-selected');
this.closeContext();
}
}
};
</script>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="tr"> <div class="tr" @contextmenu.prevent="$emit('contextmenu', $event, localRow._id)">
<div class="td"> <div class="td">
<div class="row-draggable"> <div class="row-draggable">
<i class="mdi mdi-drag-horizontal row-draggable-icon" /> <i class="mdi mdi-drag-horizontal row-draggable-icon" />

View File

@ -27,7 +27,6 @@
</template> </template>
<script> <script>
import { mapActions } from 'vuex';
import BaseContextMenu from '@/components/BaseContextMenu'; import BaseContextMenu from '@/components/BaseContextMenu';
import ConfirmModal from '@/components/BaseConfirmModal'; import ConfirmModal from '@/components/BaseConfirmModal';
@ -49,10 +48,6 @@ export default {
computed: { computed: {
}, },
methods: { methods: {
...mapActions({
deleteConnection: 'connections/deleteConnection',
showEditModal: 'application/showEditConnModal'
}),
showConfirmModal () { showConfirmModal () {
this.isConfirmModal = true; this.isConfirmModal = true;
}, },

View File

@ -98,7 +98,8 @@ module.exports = {
allowNull: 'Allow NULL', allowNull: 'Allow NULL',
zeroFill: 'Zero fill', zeroFill: 'Zero fill',
customValue: 'Custom value', customValue: 'Custom value',
onUpdate: 'On update' onUpdate: 'On update',
deleteField: 'Delete field'
}, },
// Date and Time // Date and Time
short: { short: {