diff --git a/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.html
index d7dc9b6bb3..d706102304 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.html
@@ -47,8 +47,7 @@
@for (keyValControl of keyValsFormArray().controls; track keyValControl) {
-
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.ts b/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.ts
index e98f145724..ac8b62487e 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.ts
+++ b/ui-ngx/src/app/modules/home/components/rule-node/common/kv-map-config.component.ts
@@ -80,6 +80,8 @@ export class KvMapConfigComponent implements ControlValueAccessor, OnInit, Valid
@Input() hintText: string;
+ @Input() emptyText: string;
+
@Input() popupHelpLink: string;
@Input()
@@ -171,7 +173,7 @@ export class KvMapConfigComponent implements ControlValueAccessor, OnInit, Valid
};
writeValue(keyValMap: { [key: string]: string }): void {
- const keyValuesData = Object.keys(keyValMap).map(key => ({key, value: keyValMap[key]}));
+ const keyValuesData = Object.keys(keyValMap ?? {}).map(key => ({key, value: keyValMap[key]}));
if (this.keyValsFormArray().length === keyValuesData.length) {
this.keyValsFormArray().patchValue(keyValuesData, {emitEvent: false});
} else {
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/kafka-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/external/kafka-config.component.html
index 29e143a2f0..cc02018710 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/external/kafka-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/external/kafka-config.component.html
@@ -88,14 +88,15 @@
-
-
+ [keyText]="'rule-node-config.key' | translate"
+ [keyRequiredText]="'rule-node-config.key-required' | translate"
+ [valText]="'rule-node-config.value' | translate"
+ [valRequiredText]="'rule-node-config.value-required' | translate"
+ [emptyText]="'rule-node-config.other-properties-empty' | translate">
+
{{ 'rule-node-config.add-metadata-key-values-as-kafka-headers' | translate }}
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/pubsub-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/external/pubsub-config.component.html
index a96cd149a9..8bc4a9e70f 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/external/pubsub-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/external/pubsub-config.component.html
@@ -46,12 +46,13 @@
-
-
+ [keyText]="'rule-node-config.name' | translate"
+ [keyRequiredText]="'rule-node-config.name-required' | translate"
+ [valText]="'rule-node-config.value' | translate"
+ [valRequiredText]="'rule-node-config.value-required' | translate"
+ [emptyText]="'rule-node-config.message-attributes-empty' | translate">
+
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/rabbit-mq-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/external/rabbit-mq-config.component.html
index eb73a662a3..3c5b971eae 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/external/rabbit-mq-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/external/rabbit-mq-config.component.html
@@ -99,12 +99,13 @@
}
-
-
+ [keyText]="'rule-node-config.key' | translate"
+ [keyRequiredText]="'rule-node-config.key-required' | translate"
+ [valText]="'rule-node-config.value' | translate"
+ [valRequiredText]="'rule-node-config.value-required' | translate"
+ [emptyText]="'rule-node-config.client-properties-empty' | translate">
+
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/rest-api-call-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/external/rest-api-call-config.component.html
index 7fc23ce3e2..cd026e39ab 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/external/rest-api-call-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/external/rest-api-call-config.component.html
@@ -61,15 +61,16 @@
{{ 'rule-node-config.headers' | translate }}
-
+
-
+ [keyText]="'rule-node-config.header' | translate"
+ [keyRequiredText]="'rule-node-config.header-required' | translate"
+ [valText]="'rule-node-config.value' | translate"
+ [valRequiredText]="'rule-node-config.value-required' | translate"
+ [emptyText]="'rule-node-config.headers-empty' | translate">
+
diff --git a/ui-ngx/src/app/modules/home/components/rule-node/external/sqs-config.component.html b/ui-ngx/src/app/modules/home/components/rule-node/external/sqs-config.component.html
index 98ca8b93d8..373c7cd4d4 100644
--- a/ui-ngx/src/app/modules/home/components/rule-node/external/sqs-config.component.html
+++ b/ui-ngx/src/app/modules/home/components/rule-node/external/sqs-config.component.html
@@ -54,14 +54,15 @@
}
-
-
+ [keyText]="'rule-node-config.name' | translate"
+ [keyRequiredText]="'rule-node-config.name-required' | translate"
+ [valText]="'rule-node-config.value' | translate"
+ [valRequiredText]="'rule-node-config.value-required' | translate"
+ [emptyText]="'rule-node-config.message-attributes-empty' | translate">
+
rule-node-config.aws-access-key-id
diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json
index f738e94c70..fbee65f233 100644
--- a/ui-ngx/src/assets/locale/locale.constant-en_US.json
+++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json
@@ -5544,6 +5544,7 @@
"bootstrap-servers": "Bootstrap servers",
"bootstrap-servers-required": "Bootstrap servers value is required",
"other-properties": "Other properties",
+ "other-properties-empty": "No other properties configured",
"key": "Key",
"key-required": "Key is required",
"retries": "Automatically retry times if fails",
@@ -5581,6 +5582,7 @@
"handshake-timeout-ms": "Handshake timeout (ms)",
"min-handshake-timeout-ms-message": "Only 0 ms minimum value is allowed.",
"client-properties": "Client properties",
+ "client-properties-empty": "No client properties configured",
"queue-url-pattern": "Queue URL pattern",
"queue-url-pattern-required": "Queue URL pattern is required",
"delay-seconds": "Delay (seconds)",
@@ -5598,6 +5600,7 @@
"pubsub-topic-name": "Topic name",
"pubsub-topic-name-required": "Topic name is required",
"message-attributes": "Message attributes",
+ "message-attributes-empty": "No message attributes configured",
"message-attributes-hint": "Use ${metadataKey} for value from metadata, $[messageKey] for value from message body in name/value fields",
"connect-timeout": "Connection timeout (sec)",
"connect-timeout-required": "Connection timeout is required.",