mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-02 06:43:59 +00:00
json view in redis
This commit is contained in:
@@ -1,8 +1,14 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { safeJsonParse } from 'dbgate-tools';
|
||||||
|
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
import SelectField from '../forms/SelectField.svelte';
|
||||||
|
import JsonTree from '../jsontree/JSONTree.svelte';
|
||||||
|
|
||||||
import AceEditor from '../query/AceEditor.svelte';
|
import AceEditor from '../query/AceEditor.svelte';
|
||||||
|
|
||||||
|
let display = 'text';
|
||||||
|
|
||||||
export let dbKeyFields;
|
export let dbKeyFields;
|
||||||
export let item;
|
export let item;
|
||||||
export let onChangeItem = null;
|
export let onChangeItem = null;
|
||||||
@@ -10,21 +16,39 @@
|
|||||||
|
|
||||||
<div class="props">
|
<div class="props">
|
||||||
{#each dbKeyFields as column}
|
{#each dbKeyFields as column}
|
||||||
<div class="colname">{_.startCase(column.name)}</div>
|
<div class="colnamewrap">
|
||||||
<div class="colvalue">
|
<div class="colname">{_.startCase(column.name)}</div>
|
||||||
<AceEditor
|
<SelectField
|
||||||
readOnly={!onChangeItem}
|
isNative
|
||||||
value={item && item[column.name]}
|
value={display}
|
||||||
on:input={e => {
|
on:change={e => {
|
||||||
if (onChangeItem) {
|
display = e.detail;
|
||||||
onChangeItem({
|
|
||||||
...item,
|
|
||||||
[column.name]: e.detail,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}}
|
}}
|
||||||
|
options={[
|
||||||
|
{ label: 'Text', value: 'text' },
|
||||||
|
{ label: 'JSON view', value: 'json' },
|
||||||
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="colvalue">
|
||||||
|
{#if display == 'text'}
|
||||||
|
<AceEditor
|
||||||
|
readOnly={!onChangeItem}
|
||||||
|
value={item && item[column.name]}
|
||||||
|
on:input={e => {
|
||||||
|
if (onChangeItem) {
|
||||||
|
onChangeItem({
|
||||||
|
...item,
|
||||||
|
[column.name]: e.detail,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if display == 'json'}
|
||||||
|
<JsonTree value={safeJsonParse(item[column.name]) || { error: 'Not valid JSON' }} expanded />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -36,7 +60,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.colname {
|
.colname {
|
||||||
margin-top: 20px;
|
|
||||||
color: var(--theme-font-3);
|
color: var(--theme-font-3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,4 +67,10 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.colnamewrap {
|
||||||
|
display: flex;
|
||||||
|
margin: 20px 5px 5px 5px;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
0
packages/web/src/dbkeyvalue/DbKeyValueDetail.svelte
Normal file
0
packages/web/src/dbkeyvalue/DbKeyValueDetail.svelte
Normal file
Reference in New Issue
Block a user