From 219e7445e4e213f1d7f947ef639825ebf85cb6ab Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 10 Feb 2022 09:09:12 +0100 Subject: [PATCH] open json, array from cell links --- packages/web/src/datagrid/DataGridCell.svelte | 29 +++++++++++++++++++ packages/web/src/icons/FontIcon.svelte | 1 + 2 files changed, 30 insertions(+) diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index 1eb4b5e2f..82552b541 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -40,6 +40,8 @@ import { arrayToHexString } from 'dbgate-tools'; import { showModal } from '../modals/modalTools'; import DictionaryLookupModal from '../modals/DictionaryLookupModal.svelte'; + import { openJsonDocument } from '../tabs/JsonTab.svelte'; +import openNewTab from '../utility/openNewTab'; export let rowIndex; export let col; @@ -80,6 +82,8 @@ } $: style = computeStyle(maxWidth, col); + + $: isJson = _.isPlainObject(value) && !(value?.type == 'Buffer' && _.isArray(value.data)) && !value.$oid; {/if} + {#if isJson} + openJsonDocument(value)} /> + {/if} + + {#if _.isArray(value)} + + openNewTab( + { + title: 'Data #', + icon: 'img free-table', + tabComponent: 'FreeTableTab', + props: {}, + }, + { + editor: { + rows: value, + structure: { __isDynamicStructure: true, columns: [] }, + }, + } + )} + /> + {/if} + {#if isAutoFillMarker}
{/if} diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte index 8b17149ae..297aa1e32 100644 --- a/packages/web/src/icons/FontIcon.svelte +++ b/packages/web/src/icons/FontIcon.svelte @@ -27,6 +27,7 @@ 'icon pin': 'mdi mdi-pin', 'icon arrange': 'mdi mdi-arrange-send-to-back', 'icon app': 'mdi mdi-layers-triple', + 'icon open-in-new': 'mdi mdi-open-in-new', 'icon columns': 'mdi mdi-view-column', 'icon columns-outline': 'mdi mdi-view-column-outline',