Browse Source

geodata: code cleanup

pull/4749/head
Daniel Spaude 2 years ago
parent
commit
46e0eab839
No known key found for this signature in database
GPG Key ID: 654A3D1FA4F35FFE
  1. 1
      packages/nc-gui/components.d.ts
  2. 47
      packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue
  3. 5
      packages/nc-gui/composables/useViewColumns.ts

1
packages/nc-gui/components.d.ts vendored

@ -235,6 +235,7 @@ declare module '@vue/runtime-core' {
MdiTable: typeof import('~icons/mdi/table')['default']
MdiTableColumnPlusAfter: typeof import('~icons/mdi/table-column-plus-after')['default']
MdiTableColumnPlusBefore: typeof import('~icons/mdi/table-column-plus-before')['default']
MdiTableKey: typeof import('~icons/mdi/table-key')['default']
MdiTableLarge: typeof import('~icons/mdi/table-large')['default']
MdiText: typeof import('~icons/mdi/text')['default']
MdiThumbUp: typeof import('~icons/mdi/thumb-up')['default']

47
packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue

@ -55,10 +55,7 @@ const { eventBus } = useSmartsheetStoreOrThrow()
eventBus.on((event) => {
if (event === SmartsheetStoreEvents.FIELD_RELOAD) {
loadViewColumns()
}
else if (event === SmartsheetStoreEvents.MAPPED_BY_COLUMN_CHANGE) {
// alert('SmartsheetStoreEvents.MAPPED_BY_COLUMN_CHANGE')
debugger
} else if (event === SmartsheetStoreEvents.MAPPED_BY_COLUMN_CHANGE) {
loadViewColumns()
}
})
@ -125,13 +122,13 @@ const coverImageColumnId = computed({
...activeView.value?.view,
fk_cover_image_col_id: val,
})
; (activeView.value.view as GalleryType).fk_cover_image_col_id = val
;(activeView.value.view as GalleryType).fk_cover_image_col_id = val
} else if (activeView.value?.type === ViewTypes.KANBAN) {
await $api.dbView.kanbanUpdate(activeView.value?.id, {
...activeView.value?.view,
fk_cover_image_col_id: val,
})
; (activeView.value.view as KanbanType).fk_cover_image_col_id = val
;(activeView.value.view as KanbanType).fk_cover_image_col_id = val
}
reloadViewMetaHook?.trigger()
}
@ -168,11 +165,21 @@ useMenuCloseOnEsc(open)
<template #overlay>
<div
class="p-3 min-w-[280px] bg-gray-50 shadow-lg nc-table-toolbar-menu max-h-[max(80vh,500px)] overflow-auto !border"
data-testid="nc-fields-menu" @click.stop>
<a-card v-if="activeView.type === ViewTypes.GALLERY || activeView.type === ViewTypes.KANBAN" size="small"
title="Cover image">
<a-select v-model:value="coverImageColumnId" class="w-full" :options="coverOptions"
dropdown-class-name="nc-dropdown-cover-image" @click.stop />
data-testid="nc-fields-menu"
@click.stop
>
<a-card
v-if="activeView.type === ViewTypes.GALLERY || activeView.type === ViewTypes.KANBAN"
size="small"
title="Cover image"
>
<a-select
v-model:value="coverImageColumnId"
class="w-full"
:options="coverOptions"
dropdown-class-name="nc-dropdown-cover-image"
@click.stop
/>
</a-card>
<div class="p-1" @click.stop>
@ -182,10 +189,20 @@ useMenuCloseOnEsc(open)
<div class="nc-fields-list py-1">
<Draggable v-model="fields" item-key="id" @change="onMove($event)">
<template #item="{ element: field, index: index }">
<div v-show="filteredFieldList.includes(field)" :key="field.id" class="px-2 py-1 flex items-center"
:data-testid="`nc-fields-menu-${field.title}`" @click.stop>
<a-checkbox v-model:checked="field.show" v-e="['a:fields:show-hide']" class="shrink"
:disabled="field.isViewEssentialField" @change="saveOrUpdate(field, index)">
<div
v-show="filteredFieldList.includes(field)"
:key="field.id"
class="px-2 py-1 flex items-center"
:data-testid="`nc-fields-menu-${field.title}`"
@click.stop
>
<a-checkbox
v-model:checked="field.show"
v-e="['a:fields:show-hide']"
class="shrink"
:disabled="field.isViewEssentialField"
@change="saveOrUpdate(field, index)"
>
<div class="flex items-center">
<component :is="getIcon(metaColumnById[field.fk_column_id])" />

5
packages/nc-gui/composables/useViewColumns.ts

@ -26,7 +26,8 @@ export function useViewColumns(
)
const isColumnViewEssential = (column: ColumnType) => {
// TODO: delegate this via a cleaner design pattern to map view specific check logic
// TODO: consider at some point ti delegate this via a cleaner design pattern to view specific check logic
// which could be inside of a view specific helper class (and generalized via an interface)
// (on the other hand, the logic complexity is still very low atm - might be overkill)
return view.value?.type === ViewTypes.MAP && (view.value?.view as MapType)?.fk_geo_data_col_id === column.id
}
@ -45,8 +46,6 @@ export function useViewColumns(
const loadViewColumns = async () => {
debugger
if (!meta || !view) return
let order = 1

Loading…
Cancel
Save