From 4a917f3ac5b33a3efaea815eba8f3be024c6a624 Mon Sep 17 00:00:00 2001 From: Linsted Date: Thu, 15 Jan 2026 14:53:15 +0100 Subject: [PATCH 1/3] HCK-14318:update UI config; add vaalidation --- .../entity_level/entityLevelConfig.json | 215 +++++++++++++++++- 1 file changed, 208 insertions(+), 7 deletions(-) diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index e0e70b4..cd59d64 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -1,5 +1,5 @@ /* -* Copyright © 2016-2019 by IntegrIT S.A. dba Hackolade. All rights reserved. +* Copyright © 2016-2026 by IntegrIT S.A. dba Hackolade. All rights reserved. * * The copyright to the computer software herein is the property of IntegrIT S.A. * The software may be used and/or copied only with the written permission of @@ -113,7 +113,6 @@ making sure that you maintain a proper JSON format. } */ - [ { "lowerTab": "Details", @@ -139,7 +138,42 @@ making sure that you maintain a proper JSON format. { "propertyName": "External", "propertyKeyword": "externalTable", - "propertyType": "checkbox" + "propertyType": "checkbox", + "disabledOnCondition": { + "key": "streamingTable", + "value": true + }, + "propertyTooltip": { + "disabled": [ + { + "tooltip": "External tables cannot be Streaming tables.", + "dependency": { + "key": "streamingTable", + "value": true + } + } + ] + } + }, + { + "propertyName": "Streaming", + "propertyKeyword": "streamingTable", + "propertyType": "checkbox", + "disabledOnCondition": { + "key": "externalTable", + "value": true + }, + "propertyTooltip": { + "disabled": [ + { + "tooltip": "Streaming tables cannot be External.", + "dependency": { + "key": "externalTable", + "value": true + } + } + ] + } }, { "propertyName": "Table role", @@ -172,6 +206,23 @@ making sure that you maintain a proper JSON format. "disabledOnCondition": { "key": "tableIfNotExists", "value": true + }, + "dependency": { + "key": "streamingTable", + "value": false + } + }, + { + "propertyName": "Or refresh", + "propertyKeyword": "orRefresh", + "propertyType": "checkbox", + "disabledOnCondition": { + "key": "tableIfNotExists", + "value": true + }, + "dependency": { + "key": "streamingTable", + "value": true } }, { @@ -180,10 +231,154 @@ making sure that you maintain a proper JSON format. "propertyTooltip": "if the specified table already exists, the command should make no changes and return a message that the table exists, rather than terminating with an error. ", "propertyType": "checkbox", "disabledOnCondition": { - "key": "orReplace", - "value": true + "type": "or", + "values": [ + { + "key": "orReplace", + "value": true + }, + { + "key": "orRefresh", + "value": true + } + ] } }, + { + "propertyName": "Schedule/Trigger", + "propertyKeyword": "scheduleGroup", + "propertyType": "group", + "groupItemLimit": 1, + "dependency": { + "key": "streamingTable", + "value": true + }, + "structure": [ + { + "propertyName": "Type", + "propertyKeyword": "scheduleType", + "propertyType": "select", + "options": ["None", "Cron", "Every", "Trigger on Update (Beta)"] + }, + { + "propertyName": "Cron String", + "propertyKeyword": "scheduleCronString", + "propertyType": "text", + "dependency": { + "key": "scheduleType", + "value": "Cron" + } + }, + { + "propertyName": "Time Zone", + "propertyKeyword": "scheduleTimeZone", + "propertyType": "text", + "dependency": { + "key": "scheduleType", + "value": "Cron" + } + }, + { + "propertyName": "Every Unit", + "propertyKeyword": "scheduleEveryUnit", + "propertyType": "select", + "options": ["HOURS", "DAYS", "WEEKS"], + "dependency": { + "key": "scheduleType", + "value": "Every" + } + }, + { + "propertyName": "Value (1-72)", + "propertyKeyword": "scheduleEveryValueHours", + "propertyType": "numeric", + "allowNegative": false, + "validation": { + "regex": "^([1-9]|[1-6][0-9]|7[0-2])$" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "scheduleType", + "value": "Every" + }, + { + "key": "scheduleEveryUnit", + "value": "HOURS" + } + ] + } + }, + { + "propertyName": "Value (1-31)", + "propertyKeyword": "scheduleEveryValueDays", + "propertyType": "numeric", + "allowNegative": false, + "validation": { + "regex": "^([1-9]|[1-2][0-9]|3[0-1])$" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "scheduleType", + "value": "Every" + }, + { + "key": "scheduleEveryUnit", + "value": "DAYS" + } + ] + } + }, + { + "propertyName": "Value (1-8)", + "propertyKeyword": "scheduleEveryValueWeeks", + "propertyType": "numeric", + "allowNegative": false, + "validation": { + "regex": "^[1-8]$" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "scheduleType", + "value": "Every" + }, + { + "key": "scheduleEveryUnit", + "value": "WEEKS" + } + ] + } + }, + { + "propertyName": "Trigger Unit", + "propertyKeyword": "triggerIntervalUnit", + "propertyType": "select", + "options": ["MINUTE", "MINUTES", "HOUR", "HOURS", "DAY", "DAYS", "WEEK", "WEEKS"], + "dependency": { + "key": "scheduleType", + "value": "Trigger on Update (Beta)" + } + }, + { + "propertyName": "Trigger Interval", + "propertyKeyword": "triggerIntervalValue", + "propertyType": "numeric", + "allowNegative": false, + "validation": { + "regex": "^[1-9][0-9]*$" + }, + "dependency": { + "key": "scheduleType", + "value": "Trigger on Update (Beta)" + } + } + ] + }, { "propertyName": "Using", "propertyKeyword": "using", @@ -414,8 +609,14 @@ making sure that you maintain a proper JSON format. "propertyType": "fieldList", "template": "orderedList", "attributeList": [ - { "name": "ascending", "abbr": "\u2191" }, - { "name": "descending", "abbr": "\u2193" } + { + "name": "ascending", + "abbr": "\u2191" + }, + { + "name": "descending", + "abbr": "\u2193" + } ] }, { From bba030e93973154deac978cc19c7b8423708dab1 Mon Sep 17 00:00:00 2001 From: ivan-m-dev Date: Fri, 16 Jan 2026 10:40:05 +0100 Subject: [PATCH 2/3] HCK-14318: fix "Or replace" --- properties_pane/entity_level/entityLevelConfig.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index cd59d64..7e2e59f 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -208,8 +208,17 @@ making sure that you maintain a proper JSON format. "value": true }, "dependency": { - "key": "streamingTable", - "value": false + "type": "or", + "values": [ + { + "key": "streamingTable", + "value": false + }, + { + "key": "streamingTable", + "exist": false + } + ] } }, { From 43cb6b54b102a05ecc2667454b13ff075baf7621 Mon Sep 17 00:00:00 2001 From: ivan-m-dev Date: Fri, 16 Jan 2026 12:01:36 +0100 Subject: [PATCH 3/3] HCK-14318: update numeric validation; Temporary field --- .../entity_level/entityLevelConfig.json | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index 7e2e59f..9d3d219 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -133,7 +133,11 @@ making sure that you maintain a proper JSON format. { "propertyName": "Temporary", "propertyKeyword": "temporaryTable", - "propertyType": "checkbox" + "propertyType": "checkbox", + "disabledOnCondition": { + "key": "streamingTable", + "value": true + } }, { "propertyName": "External", @@ -160,8 +164,17 @@ making sure that you maintain a proper JSON format. "propertyKeyword": "streamingTable", "propertyType": "checkbox", "disabledOnCondition": { - "key": "externalTable", - "value": true + "type": "or", + "values": [ + { + "key": "externalTable", + "value": true + }, + { + "key": "temporaryTable", + "value": true + } + ] }, "propertyTooltip": { "disabled": [ @@ -302,9 +315,8 @@ making sure that you maintain a proper JSON format. "propertyKeyword": "scheduleEveryValueHours", "propertyType": "numeric", "allowNegative": false, - "validation": { - "regex": "^([1-9]|[1-6][0-9]|7[0-2])$" - }, + "minValue": 1, + "maxValue": 72, "dependency": { "type": "and", "values": [ @@ -324,9 +336,8 @@ making sure that you maintain a proper JSON format. "propertyKeyword": "scheduleEveryValueDays", "propertyType": "numeric", "allowNegative": false, - "validation": { - "regex": "^([1-9]|[1-2][0-9]|3[0-1])$" - }, + "minValue": 1, + "maxValue": 31, "dependency": { "type": "and", "values": [ @@ -346,9 +357,8 @@ making sure that you maintain a proper JSON format. "propertyKeyword": "scheduleEveryValueWeeks", "propertyType": "numeric", "allowNegative": false, - "validation": { - "regex": "^[1-8]$" - }, + "minValue": 1, + "maxValue": 8, "dependency": { "type": "and", "values": [ @@ -378,9 +388,7 @@ making sure that you maintain a proper JSON format. "propertyKeyword": "triggerIntervalValue", "propertyType": "numeric", "allowNegative": false, - "validation": { - "regex": "^[1-9][0-9]*$" - }, + "minValue": 1, "dependency": { "key": "scheduleType", "value": "Trigger on Update (Beta)"