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.
69 lines
1.9 KiB
69 lines
1.9 KiB
<script lang="ts" setup> |
|
import { |
|
computed, |
|
useExpandedFormStoreOrThrow, |
|
useSmartsheetRowStoreOrThrow, |
|
useSmartsheetStoreOrThrow, |
|
useUIPermission, |
|
} from '#imports' |
|
import MdiDoorOpen from '~icons/mdi/door-open' |
|
import MdiDoorClosed from '~icons/mdi/door-closed' |
|
|
|
const emit = defineEmits(['cancel']) |
|
|
|
const { meta } = useSmartsheetStoreOrThrow() |
|
|
|
const { commentsDrawer, primaryValue, save: _save } = useExpandedFormStoreOrThrow() |
|
|
|
const { isNew, syncLTARRefs } = useSmartsheetRowStoreOrThrow() |
|
|
|
const { isUIAllowed } = useUIPermission() |
|
|
|
const save = async () => { |
|
if (isNew.value) { |
|
const data = await _save() |
|
await syncLTARRefs(data) |
|
} else { |
|
await _save() |
|
} |
|
} |
|
|
|
const drawerToggleIcon = computed(() => (commentsDrawer.value ? MdiDoorOpen : MdiDoorClosed)) |
|
|
|
// todo: accept as a prop / inject |
|
const iconColor = '#1890ff' |
|
</script> |
|
|
|
<template> |
|
<div class="flex p-2 align-center gap-2 p-4"> |
|
<h5 class="text-lg font-weight-medium flex align-center gap-1 mb-0 min-w-0 overflow-x-hidden truncate"> |
|
<mdi-table-arrow-right :style="{ color: iconColor }" /> |
|
|
|
<template v-if="meta"> |
|
{{ meta.title }} |
|
</template> |
|
<template v-else> |
|
{{ table }} |
|
</template> |
|
<template v-if="primaryValue">: {{ primaryValue }}</template> |
|
</h5> |
|
<div class="flex-grow" /> |
|
<mdi-reload class="cursor-pointer select-none" /> |
|
<component |
|
:is="drawerToggleIcon" |
|
v-if="isUIAllowed('rowComments')" |
|
class="cursor-pointer select-none" |
|
@click="commentsDrawer = !commentsDrawer" |
|
/>> |
|
<a-button class="!text" @click="emit('cancel')"> |
|
<!-- Cancel --> |
|
{{ $t('general.cancel') }} |
|
</a-button> |
|
<a-button :disabled="!isUIAllowed('tableRowUpdate')" type="primary" @click="save"> |
|
<!-- Save Row --> |
|
{{ $t('activity.saveRow') }} |
|
</a-button> |
|
</div> |
|
</template> |
|
|
|
<style scoped></style>
|
|
|