Skip to content

Commit 5fb43fe

Browse files
fix[frontend](parsing_filters): added add entries params on filter form
1 parent 2bc8106 commit 5fb43fe

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

frontend/src/features/parsing-filters/components/VisualFilterEditor.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,15 @@ function StepFields({
289289
const str = (key: string) => (typeof config[key] === 'string' ? (config[key] as string) : '')
290290
const list = (key: string) =>
291291
Array.isArray(config[key]) ? (config[key] as unknown[]).map((x) => String(x)) : []
292+
const obj = (key: string): Record<string, unknown> =>
293+
config[key] && typeof config[key] === 'object' && !Array.isArray(config[key])
294+
? (config[key] as Record<string, unknown>)
295+
: {}
296+
const objStr = (key: string, sub: string) => {
297+
const v = obj(key)[sub]
298+
return typeof v === 'string' ? v : ''
299+
}
300+
const setObj = (key: string, sub: string, val: string) => set(key, { ...obj(key), [sub]: val })
292301

293302
switch (kind) {
294303
case 'grok':
@@ -335,7 +344,10 @@ function StepFields({
335344
return (
336345
<>
337346
<TextField label="function" required value={str('function')} readOnly={readOnly} onChange={(v) => set('function', v)} />
338-
<ListField label="params" values={list('params')} readOnly={readOnly} onChange={(v) => set('params', v)} />
347+
<div className="grid grid-cols-2 gap-3">
348+
<TextField label="params.key" required value={objStr('params', 'key')} readOnly={readOnly} onChange={(v) => setObj('params', 'key', v)} />
349+
<TextField label="params.value" required value={objStr('params', 'value')} readOnly={readOnly} onChange={(v) => setObj('params', 'value', v)} />
350+
</div>
339351
<WhereField value={str('where')} readOnly={readOnly} onChange={(v) => set('where', v)} />
340352
</>
341353
)
@@ -399,7 +411,7 @@ function WhereField({
399411
)
400412
}
401413

402-
/** Editable list of strings (rename.from, add.params). */
414+
/** Editable list of strings (rename.from). */
403415
function ListField({
404416
label,
405417
values,

frontend/src/features/parsing-filters/lib/filter-model.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ function pruneEmpty(config: Record<string, unknown>): Record<string, unknown> {
121121
if (v == null) continue
122122
if (typeof v === 'string' && v.trim() === '') continue
123123
if (Array.isArray(v) && v.length === 0) continue
124+
if (isRecord(v) && Object.keys(v).length === 0) continue
124125
out[k] = v
125126
}
126127
return out
@@ -137,7 +138,7 @@ export function emptyStep(kind: StepKind): Step {
137138
case 'rename':
138139
return { kind, config: { to: '', from: [] } }
139140
case 'add':
140-
return { kind, config: { function: '', params: [] } }
141+
return { kind, config: { function: 'string', params: {} } }
141142
case 'drop':
142143
return { kind, config: {} }
143144
default:

0 commit comments

Comments
 (0)