Skip to content

Commit 436bc11

Browse files
fix[frontend](parsing_filters): added add entries params on filter form (#2327)
* fix[frontend](parsing_filters): added add entries params on filter form * fix[frontend](parsing_filters): added a dedicated section to add params and missing translations
1 parent 173cbbc commit 436bc11

9 files changed

Lines changed: 48 additions & 10 deletions

File tree

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

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,20 @@ function StepFields({
285285
onPatternCreated?: (p: RegexPattern) => void
286286
onChange: (config: Record<string, unknown>) => void
287287
}) {
288+
const { t } = useTranslation()
288289
const set = (key: string, val: unknown) => onChange({ ...config, [key]: val })
289290
const str = (key: string) => (typeof config[key] === 'string' ? (config[key] as string) : '')
290291
const list = (key: string) =>
291292
Array.isArray(config[key]) ? (config[key] as unknown[]).map((x) => String(x)) : []
293+
const obj = (key: string): Record<string, unknown> =>
294+
config[key] && typeof config[key] === 'object' && !Array.isArray(config[key])
295+
? (config[key] as Record<string, unknown>)
296+
: {}
297+
const objStr = (key: string, sub: string) => {
298+
const v = obj(key)[sub]
299+
return typeof v === 'string' ? v : ''
300+
}
301+
const setObj = (key: string, sub: string, val: string) => set(key, { ...obj(key), [sub]: val })
292302

293303
switch (kind) {
294304
case 'grok':
@@ -335,7 +345,13 @@ function StepFields({
335345
return (
336346
<>
337347
<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)} />
348+
<div className="space-y-1.5 rounded-md border border-border/60 bg-background/30 p-2">
349+
<div className="font-mono text-[11px] text-foreground/70">{t('parsingFilters.visual.parameters')}</div>
350+
<div className="grid grid-cols-2 gap-3">
351+
<TextField label={t('parsingFilters.visual.paramsKey')} required value={objStr('params', 'key')} readOnly={readOnly} onChange={(v) => setObj('params', 'key', v)} />
352+
<TextField label={t('parsingFilters.visual.paramsValue')} required value={objStr('params', 'value')} readOnly={readOnly} onChange={(v) => setObj('params', 'value', v)} />
353+
</div>
354+
</div>
339355
<WhereField value={str('where')} readOnly={readOnly} onChange={(v) => set('where', v)} />
340356
</>
341357
)
@@ -399,7 +415,7 @@ function WhereField({
399415
)
400416
}
401417

402-
/** Editable list of strings (rename.from, add.params). */
418+
/** Editable list of strings (rename.from). */
403419
function ListField({
404420
label,
405421
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:

frontend/src/shared/i18n/locales/de.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4459,7 +4459,10 @@
44594459
"patternCreated": "Muster „{{name}}“ erstellt",
44604460
"patternCreateError": "Muster konnte nicht erstellt werden",
44614461
"patternIdInvalid": "Die Muster-ID muss mit einem Buchstaben oder _ beginnen und nur Buchstaben, Ziffern oder _ verwenden",
4462-
"patternDefRequired": "Definition ist erforderlich"
4462+
"patternDefRequired": "Definition ist erforderlich",
4463+
"parameters": "Parameter",
4464+
"paramsKey": "Schlüssel",
4465+
"paramsValue": "Wert"
44634466
},
44644467
"allDataTypes": "Alle Datentypen"
44654468
},

frontend/src/shared/i18n/locales/en.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4419,7 +4419,10 @@
44194419
"patternCreated": "Pattern \"{{name}}\" created",
44204420
"patternCreateError": "Failed to create pattern",
44214421
"patternIdInvalid": "Pattern ID must start with a letter or _ and use only letters, digits or _",
4422-
"patternDefRequired": "Definition is required"
4422+
"patternDefRequired": "Definition is required",
4423+
"parameters": "Parameters",
4424+
"paramsKey": "Key",
4425+
"paramsValue": "Value"
44234426
},
44244427
"allDataTypes": "All data types"
44254428
},

frontend/src/shared/i18n/locales/es.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4343,7 +4343,10 @@
43434343
"patternCreated": "Patrón \"{{name}}\" creado",
43444344
"patternCreateError": "No se pudo crear el patrón",
43454345
"patternIdInvalid": "El ID debe empezar con letra o _ y usar solo letras, dígitos o _",
4346-
"patternDefRequired": "La definición es obligatoria"
4346+
"patternDefRequired": "La definición es obligatoria",
4347+
"parameters": "Parámetros",
4348+
"paramsKey": "Clave",
4349+
"paramsValue": "Valor"
43474350
},
43484351
"allDataTypes": "Todos los tipos de dato"
43494352
},

frontend/src/shared/i18n/locales/fr.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4459,7 +4459,10 @@
44594459
"patternCreated": "Motif « {{name}} » créé",
44604460
"patternCreateError": "Échec de la création du motif",
44614461
"patternIdInvalid": "L'ID du motif doit commencer par une lettre ou _ et n'utiliser que des lettres, chiffres ou _",
4462-
"patternDefRequired": "La définition est requise"
4462+
"patternDefRequired": "La définition est requise",
4463+
"parameters": "Paramètres",
4464+
"paramsKey": "Clé",
4465+
"paramsValue": "Valeur"
44634466
},
44644467
"allDataTypes": "Tous les types de données"
44654468
},

frontend/src/shared/i18n/locales/it.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4459,7 +4459,10 @@
44594459
"patternCreated": "Pattern \"{{name}}\" creato",
44604460
"patternCreateError": "Creazione del pattern non riuscita",
44614461
"patternIdInvalid": "L'ID del pattern deve iniziare con una lettera o _ e usare solo lettere, cifre o _",
4462-
"patternDefRequired": "La definizione è obbligatoria"
4462+
"patternDefRequired": "La definizione è obbligatoria",
4463+
"parameters": "Parametri",
4464+
"paramsKey": "Chiave",
4465+
"paramsValue": "Valore"
44634466
},
44644467
"allDataTypes": "Tutti i tipi di dati"
44654468
},

frontend/src/shared/i18n/locales/pt.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4343,7 +4343,10 @@
43434343
"patternCreated": "Padrão \"{{name}}\" criado",
43444344
"patternCreateError": "Falha ao criar o padrão",
43454345
"patternIdInvalid": "O ID deve começar com letra ou _ e usar apenas letras, dígitos ou _",
4346-
"patternDefRequired": "A definição é obrigatória"
4346+
"patternDefRequired": "A definição é obrigatória",
4347+
"parameters": "Parâmetros",
4348+
"paramsKey": "Chave",
4349+
"paramsValue": "Valor"
43474350
},
43484351
"allDataTypes": "Todos os tipos de dado"
43494352
},

frontend/src/shared/i18n/locales/ru.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4269,7 +4269,10 @@
42694269
"patternCreated": "Шаблон «{{name}}» создан",
42704270
"patternCreateError": "Не удалось создать шаблон",
42714271
"patternIdInvalid": "ID шаблона должен начинаться с буквы или _ и содержать только буквы, цифры или _",
4272-
"patternDefRequired": "Определение обязательно"
4272+
"patternDefRequired": "Определение обязательно",
4273+
"parameters": "Параметры",
4274+
"paramsKey": "Ключ",
4275+
"paramsValue": "Значение"
42734276
},
42744277
"allDataTypes": "Все типы данных"
42754278
},

0 commit comments

Comments
 (0)