mirror of https://github.com/nocodb/nocodb
DarkPhoenix2704
8 months ago
11 changed files with 116 additions and 20 deletions
@ -0,0 +1,48 @@ |
|||||||
|
<script lang="ts" setup> |
||||||
|
import { |
||||||
|
ActiveViewInj, |
||||||
|
FieldsInj, |
||||||
|
IsPublicInj, |
||||||
|
MetaInj, |
||||||
|
ReadonlyInj, |
||||||
|
ReloadViewDataHookInj, |
||||||
|
useProvideCalendarViewStore, |
||||||
|
useProvideKanbanViewStore, |
||||||
|
} from '#imports' |
||||||
|
|
||||||
|
const { sharedView, meta, nestedFilters } = useSharedView() |
||||||
|
|
||||||
|
const reloadEventHook = createEventHook() |
||||||
|
|
||||||
|
provide(ReloadViewDataHookInj, reloadEventHook) |
||||||
|
|
||||||
|
provide(ReadonlyInj, ref(true)) |
||||||
|
|
||||||
|
provide(MetaInj, meta) |
||||||
|
|
||||||
|
provide(ActiveViewInj, sharedView) |
||||||
|
|
||||||
|
provide(FieldsInj, ref(meta.value?.columns || [])) |
||||||
|
|
||||||
|
provide(IsPublicInj, ref(true)) |
||||||
|
|
||||||
|
useProvideViewColumns(sharedView, meta, () => reloadEventHook?.trigger(), true) |
||||||
|
|
||||||
|
useProvideSmartsheetStore(sharedView, meta, true, ref([]), nestedFilters) |
||||||
|
useProvideKanbanViewStore(meta, sharedView) |
||||||
|
|
||||||
|
useProvideCalendarViewStore(meta, sharedView, true, nestedFilters) |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div class="nc-container h-full mt-1.5 px-12"> |
||||||
|
<div class="flex flex-col h-full flex-1 min-w-0"> |
||||||
|
<LazySmartsheetToolbar /> |
||||||
|
<div class="h-full flex-1 min-w-0 min-h-0 bg-gray-50"> |
||||||
|
<LazySmartsheetCalendar /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<style lang="scss" scoped></style> |
@ -0,0 +1,34 @@ |
|||||||
|
<script lang="ts" setup> |
||||||
|
import { message } from 'ant-design-vue' |
||||||
|
import { definePageMeta } from '#imports' |
||||||
|
|
||||||
|
definePageMeta({ |
||||||
|
public: true, |
||||||
|
requiresAuth: false, |
||||||
|
layout: 'shared-view', |
||||||
|
hasSidebar: false, |
||||||
|
}) |
||||||
|
|
||||||
|
const route = useRoute() |
||||||
|
|
||||||
|
const { loadSharedView } = useSharedView() |
||||||
|
|
||||||
|
const showPassword = ref(false) |
||||||
|
|
||||||
|
try { |
||||||
|
await loadSharedView(route.params.viewId as string) |
||||||
|
} catch (e: any) { |
||||||
|
if (e?.response?.status === 403) { |
||||||
|
showPassword.value = true |
||||||
|
} else { |
||||||
|
message.error(await extractSdkResponseErrorMsg(e)) |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div v-if="showPassword"> |
||||||
|
<LazySharedViewAskPassword v-model="showPassword" /> |
||||||
|
</div> |
||||||
|
<LazySharedViewCalendar v-else /> |
||||||
|
</template> |
Loading…
Reference in new issue