diff --git a/client/web/compose/src/components/PageBlocks/TabsBase.vue b/client/web/compose/src/components/PageBlocks/TabsBase.vue index 8052748c4..8e827bdcb 100644 --- a/client/web/compose/src/components/PageBlocks/TabsBase.vue +++ b/client/web/compose/src/components/PageBlocks/TabsBase.vue @@ -10,7 +10,7 @@ class="d-flex h-100 align-items-center justify-content-center" >
- {{ $t('tabs.noTabs') }} + {{ $t('noTabs') }}
@@ -53,7 +53,7 @@ >- {{ $t('tabs.noBlock') }} + {{ $t('noBlock') }}
@@ -110,6 +135,7 @@ import { fetchID } from 'corteza-webapp-compose/src/lib/block' export default { i18nOptions: { namespaces: 'block', + keyPrefix: 'tabs', }, name: 'TabBase', @@ -170,12 +196,26 @@ export default { methods: { editTabbedBlock (tab) { - const blockIndex = this.blocks.findIndex(block => fetchID(block) === tab.block.blockID) + const blockIndex = this.blocks.findIndex(block => fetchID(block) === fetchID(tab.block)) if (blockIndex > -1) { this.$emit('edit-block', blockIndex) } }, + cloneTabbedBlock (tab) { + const tabbedBlockIndex = this.blocks.findIndex(block => fetchID(block) === fetchID(tab.block)) + if (tabbedBlockIndex > -1) { + this.$emit('clone-block', { tabbedBlockIndex, tabBlockIndex: this.blockIndex, title: tab.title }) + } + }, + + copyTabbedBlock (tab) { + const tabbedBlockIndex = this.blocks.findIndex(block => fetchID(block) === fetchID(tab.block)) + if (tabbedBlockIndex > -1) { + this.$emit('copy-block', tabbedBlockIndex) + } + }, + deleteTab (tabIndex) { this.$emit('delete-tab', { tabIndex, blockIndex: this.blockIndex }) }, @@ -187,7 +227,7 @@ export default { getTabTitle ({ title, block = {} }, tabIndex) { const { title: blockTitle, kind } = block - return title || blockTitle || kind || `${this.$t('tabs.tab')} ${tabIndex + 1}` + return title || blockTitle || kind || `${this.$t('tab')} ${tabIndex + 1}` }, isTabLazy ({ block = {} }) { @@ -201,7 +241,7 @@ export default {