From 17511f8c11eb56c753a024e347b68a234ba28908 Mon Sep 17 00:00:00 2001 From: mertmit Date: Thu, 18 Apr 2024 11:33:18 +0000 Subject: [PATCH] feat: details page for extensions --- .../nc-gui/components/extensions/Details.vue | 110 ++++++++++++++++++ .../components/extensions/Extension.vue | 9 +- .../nc-gui/components/extensions/Market.vue | 11 +- .../nc-gui/components/extensions/Pane.vue | 10 +- packages/nc-gui/composables/useExtensions.ts | 19 +++ .../extensions/csv-import/manifest.json | 2 +- 6 files changed, 152 insertions(+), 9 deletions(-) create mode 100644 packages/nc-gui/components/extensions/Details.vue diff --git a/packages/nc-gui/components/extensions/Details.vue b/packages/nc-gui/components/extensions/Details.vue new file mode 100644 index 0000000000..51760ed2f8 --- /dev/null +++ b/packages/nc-gui/components/extensions/Details.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/packages/nc-gui/components/extensions/Extension.vue b/packages/nc-gui/components/extensions/Extension.vue index 26cc3b837f..d9492f14cb 100644 --- a/packages/nc-gui/components/extensions/Extension.vue +++ b/packages/nc-gui/components/extensions/Extension.vue @@ -6,7 +6,8 @@ interface Prop { const { extensionId, error } = defineProps() -const { extensionList, extensionsLoaded, availableExtensions, getExtensionIcon, duplicateExtension } = useExtensions() +const { extensionList, extensionsLoaded, availableExtensions, getExtensionIcon, duplicateExtension, showExtensionDetails } = + useExtensions() const activeError = ref(error) @@ -120,7 +121,11 @@ const closeFullscreen = (e: MouseEvent) => { Duplicate - + Details diff --git a/packages/nc-gui/components/extensions/Market.vue b/packages/nc-gui/components/extensions/Market.vue index 122f3796ca..cbef0eebfb 100644 --- a/packages/nc-gui/components/extensions/Market.vue +++ b/packages/nc-gui/components/extensions/Market.vue @@ -11,7 +11,12 @@ const emit = defineEmits(['update:modelValue']) const vModel = useVModel(props, 'modelValue', emit) -const { availableExtensions, addExtension, getExtensionIcon } = useExtensions() +const { availableExtensions, addExtension, getExtensionIcon, showExtensionDetails } = useExtensions() + +const onExtensionClick = (extensionId: string) => { + showExtensionDetails(extensionId) + vModel.value = false +} const onAddExtension = (ext: any) => { addExtension(ext) @@ -40,14 +45,14 @@ const onAddExtension = (ext: any) => {
+ diff --git a/packages/nc-gui/composables/useExtensions.ts b/packages/nc-gui/composables/useExtensions.ts index 5899abb00a..bff5564836 100644 --- a/packages/nc-gui/composables/useExtensions.ts +++ b/packages/nc-gui/composables/useExtensions.ts @@ -341,6 +341,20 @@ export const useExtensions = createSharedComposable(() => { }) }) + // Extension details modal + const isDetailsVisible = ref(false) + const detailsExtensionId = ref() + const detailsFrom = ref<'market' | 'extension'>('market') + + const showExtensionDetails = (extensionId: string, from?: 'market' | 'extension') => { + detailsExtensionId.value = extensionId + isDetailsVisible.value = true + detailsFrom.value = from || 'market' + } + + // Extension market modal + const isMarketVisible = ref(false) + return { extensionsLoaded, availableExtensions, @@ -354,5 +368,10 @@ export const useExtensions = createSharedComposable(() => { clearKvStore, deleteExtension, getExtensionIcon, + isDetailsVisible, + detailsExtensionId, + detailsFrom, + showExtensionDetails, + isMarketVisible, } }) diff --git a/packages/nc-gui/extensions/csv-import/manifest.json b/packages/nc-gui/extensions/csv-import/manifest.json index 57dd0be5cc..553cf87fc8 100644 --- a/packages/nc-gui/extensions/csv-import/manifest.json +++ b/packages/nc-gui/extensions/csv-import/manifest.json @@ -1,7 +1,7 @@ { "id": "nc-csv-import", "title": "CSV Import", - "description": "Import CSV files into NocoDB", + "description": "The CSV Import extension for NocoDB empowers users with seamless integration, enabling effortless uploading of CSV files into existing tables. With its intuitive interface, users can effortlessly bind any column from their CSV files to corresponding columns within their NocoDB tables, facilitating efficient data management.\n\nThis versatile extension further enhances productivity by supporting upsert operations, allowing users to match records based on specified columns. Whether updating existing data or importing new information, the CSV Import extension streamlines the process, ensuring accuracy and consistency across datasets.\n\nKey Features:\n\n- Simplified CSV file uploading to NocoDB tables.\n- Flexible column binding for seamless data integration.\n- Upsert functionality for efficient record matching and updating.\n\nExperience unparalleled convenience and precision in data management with the CSV Import extension for NocoDB. Streamline your workflow and unlock the full potential of your datasets today.", "entry": "csv-import", "version": "0.1", "iconUrl": "csv-import/icon.png",