From 04716e9fef18b2335dc5f11af13b02abef004d2c Mon Sep 17 00:00:00 2001 From: Martin Hradil Date: Mon, 8 Jul 2019 09:49:34 +0000 Subject: [PATCH] Dialogs - call initField from refreshFieldCallback, JSON.parse in setupField only when string initField needs to be called from refreshFieldCallback so that we don't run the initialization only on initial load, but also on every refresh from server - this makes initial loads and refreshes consistent setupField should only try to parse json multivalues when not already converted Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1693294 --- src/dialog-user/components/dialog-user/dialogUser.ts | 2 ++ src/dialog-user/services/dialogData.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dialog-user/components/dialog-user/dialogUser.ts b/src/dialog-user/components/dialog-user/dialogUser.ts index d3b1a8472b..09f73a1bad 100644 --- a/src/dialog-user/components/dialog-user/dialogUser.ts +++ b/src/dialog-user/components/dialog-user/dialogUser.ts @@ -230,6 +230,8 @@ export class DialogUserController extends DialogClass implements IDialogs { */ private refreshFieldCallback(field, data) { + this.initField(data); + this.dialogFields[field] = this.updateDialogFieldData(field, data); this.dialogValues[field] = data.default_value; diff --git a/src/dialog-user/services/dialogData.ts b/src/dialog-user/services/dialogData.ts index 30b7e40ae3..9bc78d308e 100644 --- a/src/dialog-user/services/dialogData.ts +++ b/src/dialog-user/services/dialogData.ts @@ -93,7 +93,9 @@ export default class DialogDataService { defaultValue = data.default_value ? new Date(data.default_value) : new Date(); } - if (data.type === 'DialogFieldDropDownList' && data.options.force_multi_value && data.default_value) { + // FIXME maybe better make sure it's never not string (must come from double call) + if (data.type === 'DialogFieldDropDownList' && data.options.force_multi_value + && data.default_value && _.isString(data.default_value)) { defaultValue = JSON.parse(data.default_value); }