mirror of https://github.com/nocodb/nocodb
bcakmakoglu
2 years ago
committed by
Pranav C
28 changed files with 6872 additions and 2487 deletions
@ -0,0 +1,10 @@
|
||||
const baseRules = { |
||||
'vue/no-setup-props-destructure': 0, |
||||
'no-console': 0, |
||||
'antfu/if-newline': 0, |
||||
} |
||||
|
||||
module.exports = { |
||||
extends: ['@antfu'], |
||||
rules: baseRules, |
||||
} |
@ -1,6 +1,6 @@
|
||||
<template> |
||||
<!-- <NuxtLayout>--> |
||||
<!-- <NuxtPage />--> |
||||
<!-- </NuxtLayout>--> |
||||
<NuxtPage/> |
||||
<!-- <NuxtLayout> --> |
||||
<!-- <NuxtPage /> --> |
||||
<!-- </NuxtLayout> --> |
||||
<NuxtPage /> |
||||
</template> |
||||
|
@ -1,44 +1,29 @@
|
||||
<template> |
||||
<div> |
||||
|
||||
|
||||
<v-tabs density="compact" v-model="activeTab"> |
||||
<script setup lang="ts"> |
||||
import { useTabs } from '~/composables/tabs' |
||||
|
||||
<v-tab v-for="(tab,i) in tabs" :key="i" :value="i" >{{tab.title}} </v-tab> |
||||
const { tabs, activeTab } = useTabs() |
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
<v-tabs v-model="activeTab" density="compact"> |
||||
<v-tab v-for="(tab, i) of tabs" :key="i" :value="i"> |
||||
{{ tab.title }} |
||||
</v-tab> |
||||
</v-tabs> |
||||
|
||||
<v-window v-model="activeTab"> |
||||
<v-window-item |
||||
v-for="(tab,i) in tabs" |
||||
v-for="(tab, i) of tabs" |
||||
:key="i" |
||||
:value="i" |
||||
> |
||||
<TabsSmartsheet :tab-meta="tab" /> |
||||
</v-window-item> |
||||
</v-window> |
||||
|
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
|
||||
import { useTabs } from "~/composables/tabs"; |
||||
|
||||
const { tabs, activeTab } = useTabs(); |
||||
|
||||
// const tabItems = computed(() => { |
||||
// return tabs.value.map(tab => { |
||||
// return { |
||||
// label: tab.title, |
||||
// // icon: tab.icon, |
||||
// closable: true |
||||
// } |
||||
// }) |
||||
// }) |
||||
|
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
||||
|
@ -1,71 +1,64 @@
|
||||
<script lang="ts" setup> |
||||
import { Api } from 'nocodb-sdk' |
||||
import { useNuxtApp } from '#app' |
||||
import { useUser } from '~/composables/user' |
||||
|
||||
const { tabMeta, meta } = defineProps({ |
||||
tabMeta: Object, |
||||
meta: Object, |
||||
}) |
||||
|
||||
const { project } = useProject() |
||||
const { user } = useUser() |
||||
const rows = ref() |
||||
|
||||
const { $api } = useNuxtApp() |
||||
|
||||
const loadData = async () => { |
||||
const response = await $api.dbTableRow.list('noco', |
||||
project.value.id, |
||||
meta.id, {}, { |
||||
headers: { |
||||
'xc-auth': user.token, |
||||
}, |
||||
}) |
||||
|
||||
rows.value = response.list |
||||
} |
||||
|
||||
onMounted(async () => { |
||||
await loadData() |
||||
}) |
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
|
||||
<div class="card"> |
||||
<v-table> |
||||
<thead> |
||||
<tr> |
||||
<th v-for="col in meta.columns"> |
||||
{{ col.title }} |
||||
</th> |
||||
</tr> |
||||
<tr> |
||||
<th v-for="col in meta.columns"> |
||||
{{ col.title }} |
||||
</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
|
||||
<tr v-for="(row,i) in rows" :key="i"> |
||||
<th v-for="col in meta.columns" :key="col.title"> |
||||
{{ row[col.title] }} |
||||
</th> |
||||
</tr> |
||||
|
||||
<tr v-for="(row, i) in rows" :key="i"> |
||||
<th v-for="col in meta.columns" :key="col.title"> |
||||
{{ row[col.title] }} |
||||
</th> |
||||
</tr> |
||||
</tbody> |
||||
<!-- <Column v-for="col in meta.columns" :key="col.id" :field="col.title" :header="col.title"> |
||||
<template v-if="col.uidt === 'LinkToAnotherRecord'" #body="{data:{[col.title]:d}}"> |
||||
{{ d && (Array.isArray(d) ? d : [d]).map(c1 => c1[Object.keys(c1)[1]]).join(', ') }} |
||||
</template> |
||||
</Column>--> |
||||
</Column> --> |
||||
</v-table> |
||||
</div> |
||||
|
||||
</div> |
||||
</template> |
||||
|
||||
<script lang="ts" setup> |
||||
import { useNuxtApp } from "#app"; |
||||
import { Api } from "nocodb-sdk"; |
||||
import { useUser } from "~/composables/user"; |
||||
|
||||
const { tabMeta, meta } = defineProps({ |
||||
tabMeta: Object, |
||||
meta: Object |
||||
}); |
||||
|
||||
const { project } = useProject(); |
||||
const { user } = useUser(); |
||||
const rows = ref(); |
||||
|
||||
const { $api } = useNuxtApp(); |
||||
|
||||
|
||||
const loadData = async () => { |
||||
const response = await $api.dbTableRow.list("noco", |
||||
project.value.id, |
||||
meta.id, {}, { |
||||
headers: { |
||||
"xc-auth": user.token |
||||
} |
||||
}); |
||||
|
||||
rows.value = response.list; |
||||
}; |
||||
|
||||
onMounted(async () => { |
||||
await loadData(); |
||||
}); |
||||
|
||||
|
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
||||
|
@ -1,36 +1,35 @@
|
||||
<template> |
||||
<div> |
||||
<template v-if="meta && tabMeta"> |
||||
<SmartsheetGrid :meta="meta" :tabMeta="tabMeta"></SmartsheetGrid> |
||||
</template> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import {useMetas} from "~/composables/metas"; |
||||
import {computed, onMounted, watch} from 'vue' |
||||
import { computed, onMounted, watch } from 'vue' |
||||
import { useMetas } from '~/composables/metas' |
||||
|
||||
const {tabMeta} = defineProps({ |
||||
tabMeta: Object |
||||
const { tabMeta } = defineProps({ |
||||
tabMeta: Object, |
||||
}) |
||||
|
||||
const {getMeta, metas} = useMetas() |
||||
const { getMeta, metas } = useMetas() |
||||
|
||||
const meta = computed(() => { |
||||
return metas.value?.[tabMeta?.id] |
||||
}) |
||||
|
||||
onMounted(async () => { |
||||
await getMeta(tabMeta?.id) |
||||
await getMeta(tabMeta?.id) |
||||
}) |
||||
|
||||
watch(() => tabMeta && tabMeta?.id, async (newVal, oldVal) => { |
||||
if (newVal !== oldVal) { |
||||
if (newVal !== oldVal) |
||||
await getMeta(newVal) |
||||
} |
||||
}) |
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
<template v-if="meta && tabMeta"> |
||||
<SmartsheetGrid :meta="meta" :tab-meta="tabMeta" /> |
||||
</template> |
||||
</div> |
||||
</template> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
||||
|
@ -1,27 +1,26 @@
|
||||
<script> |
||||
export default { |
||||
name: 'Default', |
||||
} |
||||
</script> |
||||
|
||||
<template> |
||||
<div class=""> |
||||
<!-- <div class="topbar">--> |
||||
<!-- </div>--> |
||||
<!-- <div class="sidebar">--> |
||||
<!-- </div>--> |
||||
<!-- <div class="content">--> |
||||
|
||||
<!-- <div class="topbar"> --> |
||||
<!-- </div> --> |
||||
<!-- <div class="sidebar"> --> |
||||
<!-- </div> --> |
||||
<!-- <div class="content"> --> |
||||
|
||||
<v-layout> |
||||
<v-app-bar color=""></v-app-bar> |
||||
<slot></slot> |
||||
<v-app-bar color="" /> |
||||
<slot /> |
||||
</v-layout> |
||||
|
||||
<!-- </div>--> |
||||
<!-- </div> --> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "default" |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
||||
|
@ -1,35 +1,17 @@
|
||||
import {defineNuxtConfig} from 'nuxt' |
||||
import { defineNuxtConfig } from 'nuxt' |
||||
|
||||
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
||||
export default defineNuxtConfig({ |
||||
// modules: ['@nuxtjs/tailwindcss'],
|
||||
// buildModules: [
|
||||
// 'nuxt-vite'
|
||||
// ],
|
||||
modules: ['nuxt3-store'], |
||||
ssr:false, |
||||
plugins: [ |
||||
// '~/plugins/vuetify.ts',
|
||||
// '~/plugins/api.ts',
|
||||
], |
||||
ssr: false, |
||||
css: ['vuetify/lib/styles/main.sass'], |
||||
build: { |
||||
transpile: ['vuetify'] |
||||
transpile: ['vuetify'], |
||||
}, |
||||
|
||||
// css: [
|
||||
// 'primevue/resources/themes/saga-blue/theme.css',
|
||||
// 'primevue/resources/primevue.css',
|
||||
// 'primeicons/primeicons.css',
|
||||
// 'primeflex/primeflex.css',
|
||||
// ],
|
||||
// build: {
|
||||
// transpile: ['primevue']
|
||||
// },
|
||||
|
||||
vite: { |
||||
define: { |
||||
'process.env.DEBUG': 'false', |
||||
} |
||||
} |
||||
}, |
||||
}, |
||||
}) |
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,17 +1,15 @@
|
||||
<template> |
||||
<div class="container"> |
||||
|
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import {useRouter} from "#app"; |
||||
import { useRouter } from '#app' |
||||
|
||||
const $router = useRouter() |
||||
const router = useRouter() |
||||
|
||||
$router.replace('/projects') |
||||
router.replace('/projects') |
||||
</script> |
||||
|
||||
<template> |
||||
<div class="container" /> |
||||
</template> |
||||
|
||||
<style lang="scss"> |
||||
|
||||
</style> |
||||
|
@ -1,18 +1,17 @@
|
||||
<template> |
||||
<div> |
||||
<Sidebar :visible="true" position="left" :dismissable="false"> |
||||
Content |
||||
|
||||
</Sidebar> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "dashboard" |
||||
name: 'Dashboard', |
||||
} |
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
<Sidebar :visible="true" position="left" :dismissable="false"> |
||||
Content |
||||
</Sidebar> |
||||
</div> |
||||
</template> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
||||
|
@ -1,35 +1,23 @@
|
||||
import { useNuxtApp } from "#app"; |
||||
import { Api } from "nocodb-sdk"; |
||||
import { defineNuxtPlugin } from "nuxt3/app"; |
||||
import { Api } from 'nocodb-sdk' |
||||
import { defineNuxtPlugin } from 'nuxt3/app' |
||||
|
||||
export default defineNuxtPlugin((nuxtApp) => { |
||||
const api = getApi(null, null) |
||||
|
||||
|
||||
// Doing something with nuxtApp
|
||||
|
||||
const api = getApi(null, null); |
||||
|
||||
// nuxtApp.provide("api", api);
|
||||
|
||||
return { |
||||
provide: { |
||||
api |
||||
} |
||||
}; |
||||
}); |
||||
|
||||
nuxtApp.provide('api', api) |
||||
}) |
||||
|
||||
export function getApi($store, $axios) { |
||||
const api = new Api({ |
||||
baseURL: "http://localhost:8080", |
||||
baseURL: 'http://localhost:8080', |
||||
headers: { |
||||
"xc-auth": $store?.state?.users?.token |
||||
} |
||||
}); |
||||
'xc-auth': $store?.state?.users?.token, |
||||
}, |
||||
}) |
||||
|
||||
if ($axios) { |
||||
// overwrite with nuxt axios instance
|
||||
api.instance = $axios; |
||||
api.instance = $axios |
||||
} |
||||
return api; |
||||
return api |
||||
} |
||||
|
@ -1,21 +1,12 @@
|
||||
import { createVuetify } from 'vuetify' |
||||
// import {
|
||||
// VApp,
|
||||
// VAppBar,
|
||||
// VBtn
|
||||
// } from 'vuetify/components'
|
||||
import {defineNuxtPlugin} from "nuxt/app"; |
||||
import { defineNuxtPlugin } from 'nuxt/app' |
||||
|
||||
// Import everything
|
||||
import * as components from 'vuetify/components' |
||||
|
||||
export default defineNuxtPlugin((nuxtApp) => { |
||||
const vuetify = createVuetify({ |
||||
components/*: { |
||||
VApp, |
||||
VAppBar, |
||||
VBtn*/ |
||||
// }
|
||||
components, |
||||
}) |
||||
nuxtApp.vueApp.use(vuetify) |
||||
}) |
||||
|
Loading…
Reference in new issue