mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
5.1 KiB
180 lines
5.1 KiB
4 years ago
|
<template>
|
||
|
<v-container class="pa-0 ma-0 h-100" fluid>
|
||
|
<v-tabs :key="!nodes.newView || created ? 'old' : 'new'" height="28" class="view-tab" color="pink">
|
||
|
|
||
|
<!-- <v-tab class="caption text-capitalize">
|
||
|
|
||
|
<v-icon small>mdi-table-column</v-icon>
|
||
|
Columns
|
||
|
</v-tab>
|
||
|
<v-tab-item>
|
||
|
<ViewColumns
|
||
|
:nodes="nodes"
|
||
|
></ViewColumns>
|
||
|
</v-tab-item>
|
||
|
|
||
|
<template v-if="!isMvc && !isMetaTable">
|
||
|
<template v-if="isRest">
|
||
|
<v-tab ripple >
|
||
|
<v-icon small>mdi-nodejs</v-icon>
|
||
|
<span class="caption text-capitalize">APIs</span>
|
||
|
</v-tab>
|
||
|
|
||
|
|
||
|
<v-tab-item :transition="false">
|
||
|
|
||
|
<logic-rest
|
||
|
ref="tabs0"
|
||
|
:nodes="nodes"
|
||
|
:newTable="newTableCopy"
|
||
|
/>
|
||
|
</v-tab-item>
|
||
|
</template>
|
||
|
<template v-if="isGraphql">
|
||
|
|
||
|
<v-tab ripple class="divider" style="border-right:1px solid grey;">
|
||
|
<v-icon small>mdi-graphql</v-icon>
|
||
|
<span class="caption text-capitalize">Schema & Resolvers</span>
|
||
|
</v-tab>
|
||
|
|
||
|
|
||
|
<v-tab-item :transition="false">
|
||
|
|
||
|
<logic-gql
|
||
|
ref="tabs0"
|
||
|
is-view
|
||
|
:nodes="nodes"
|
||
|
:newTable="newTableCopy"
|
||
|
/>
|
||
|
</v-tab-item>
|
||
|
</template>
|
||
|
<template v-if="isGrpc">
|
||
|
<v-tab ripple class="divider" style="border-right:1px solid grey;">
|
||
|
<v-icon small>mdi-nodejs</v-icon>
|
||
|
<span class="caption text-capitalize">APIs</span>
|
||
|
</v-tab>
|
||
|
|
||
|
|
||
|
<v-tab-item :transition="false">
|
||
|
|
||
|
<logic-grpc
|
||
|
ref="tabs0"
|
||
|
:nodes="nodes"
|
||
|
:newTable="newTableCopy"
|
||
|
/>
|
||
|
</v-tab-item>
|
||
|
</template>
|
||
|
</template>-->
|
||
|
|
||
|
|
||
|
<!-- <v-tab class="caption text-capitalize">
|
||
|
<v-icon small>mdi-shield-edit-outline</v-icon>
|
||
|
ACL
|
||
|
</v-tab>
|
||
|
<v-tab-item>
|
||
|
<table-acl
|
||
|
:nodes="nodes"
|
||
|
/>
|
||
|
</v-tab-item>-->
|
||
|
<template v-if="!nodes.newView || created">
|
||
|
<v-tab class="caption text-capitalize">
|
||
|
<v-icon small>mdi-table-row</v-icon>
|
||
|
Spreadsheet
|
||
|
</v-tab>
|
||
|
<v-tab-item>
|
||
|
<!-- <rows-->
|
||
|
<!-- ref="tabs3"-->
|
||
|
<!-- :nodes="nodes"-->
|
||
|
<!-- />-->
|
||
|
<spreadsheet
|
||
|
class="h-100"
|
||
|
:nodes="nodes"
|
||
|
></spreadsheet>
|
||
|
</v-tab-item>
|
||
|
</template>
|
||
|
|
||
|
|
||
|
<template v-if="_isUIAllowed('view-create')">
|
||
|
<v-tab class="caption text-capitalize">
|
||
|
|
||
|
<v-icon small>mdi-database-edit</v-icon>
|
||
|
SQL
|
||
|
</v-tab>
|
||
|
<v-tab-item>
|
||
|
<view-query
|
||
|
@created="created = true"
|
||
|
:nodes="nodes"></view-query>
|
||
|
</v-tab-item>
|
||
|
</template>
|
||
|
|
||
|
</v-tabs>
|
||
|
</v-container>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
|
||
|
import ViewQuery from "./viewTabs/viewQuery";
|
||
|
import ViewColumns from "./viewTabs/viewColumns";
|
||
|
import {mapGetters} from "vuex";
|
||
|
import Spreadsheet from "@/components/project/viewTabs/viewSpreadsheet";
|
||
|
|
||
|
export default {
|
||
|
components: {Spreadsheet, ViewColumns, ViewQuery},
|
||
|
props: ["nodes"],
|
||
|
data: () => ({created: false, newTableCopy: null, isMetaTable: null}),
|
||
|
computed: {
|
||
|
...mapGetters({
|
||
|
sqlMgr: "sqlMgr/sqlMgr",
|
||
|
isGraphql: "project/GtrProjectIsGraphql",
|
||
|
isNoApis: "project/GtrProjectIsNoApis",
|
||
|
isMvc: 'project/GtrProjectIsMvc',
|
||
|
isDocker: 'project/GtrProjectIsDocker',
|
||
|
isPackage: 'project/GtrProjectIsPackage',
|
||
|
isTs: 'project/GtrProjectIsTs',
|
||
|
isRest: 'project/GtrProjectIsRest',
|
||
|
isGrpc: 'project/GtrProjectIsGrpc',
|
||
|
}),
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
<style scoped>
|
||
|
.view-tab {
|
||
|
height: 100%;
|
||
|
}
|
||
|
|
||
|
/deep/ .view-tab .v-window {
|
||
|
height: calc(100% - 28px);
|
||
|
}
|
||
|
|
||
|
/deep/ .view-tab .v-window > .v-window__container {
|
||
|
height: 100%;
|
||
|
}
|
||
|
|
||
|
/deep/ .v-window-item {
|
||
|
height: 100%
|
||
|
}</style>
|
||
|
<!--
|
||
|
/**
|
||
|
* @copyright Copyright (c) 2021, Xgene Cloud Ltd
|
||
|
*
|
||
|
* @author Naveen MR <oof1lab@gmail.com>
|
||
|
* @author Pranav C Balan <pranavxc@gmail.com>
|
||
|
*
|
||
|
* @license GNU AGPL version 3 or any later version
|
||
|
*
|
||
|
* This program is free software: you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU Affero General Public License as
|
||
|
* published by the Free Software Foundation, either version 3 of the
|
||
|
* License, or (at your option) any later version.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU Affero General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU Affero General Public License
|
||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
*
|
||
|
*/
|
||
|
-->
|