diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index bc16437f2c..9fdd263a74 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -148,7 +148,7 @@ ui: # Help parameters help: # Base url for UI help assets - base-url: "${UI_HELP_BASE_URL:https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-3.4.2}" + base-url: "${UI_HELP_BASE_URL:https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-3.4.3}" database: ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records diff --git a/dao/src/main/java/org/thingsboard/server/dao/service/ConstraintValidator.java b/dao/src/main/java/org/thingsboard/server/dao/service/ConstraintValidator.java index ee1e42f0dc..7f26c6e909 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/service/ConstraintValidator.java +++ b/dao/src/main/java/org/thingsboard/server/dao/service/ConstraintValidator.java @@ -53,8 +53,13 @@ public class ConstraintValidator { public static List getConstraintsViolations(Object data) { return fieldsValidator.validate(data).stream() .map(constraintViolation -> { - Path propertyPath = constraintViolation.getPropertyPath(); - String property = Iterators.getLast(propertyPath.iterator()).toString(); + String property; + if (constraintViolation.getConstraintDescriptor().getAttributes().containsKey("fieldName")) { + property = constraintViolation.getConstraintDescriptor().getAttributes().get("fieldName").toString(); + } else { + Path propertyPath = constraintViolation.getPropertyPath(); + property = Iterators.getLast(propertyPath.iterator()).toString(); + } return property + " " + constraintViolation.getMessage(); }) .distinct() diff --git a/msa/tb/pom.xml b/msa/tb/pom.xml index 46a2a632be..fe79951126 100644 --- a/msa/tb/pom.xml +++ b/msa/tb/pom.xml @@ -38,7 +38,7 @@ tb-postgres tb-cassandra /usr/share/${pkg.name} - 3.4.2 + 3.4.3 diff --git a/ui-ngx/src/app/core/api/widget-subscription.ts b/ui-ngx/src/app/core/api/widget-subscription.ts index d40dc95db7..332b8db14f 100644 --- a/ui-ngx/src/app/core/api/widget-subscription.ts +++ b/ui-ngx/src/app/core/api/widget-subscription.ts @@ -204,6 +204,7 @@ export class WidgetSubscription implements IWidgetSubscription { this.timeWindow = {}; this.useDashboardTimewindow = options.useDashboardTimewindow; this.useTimewindow = true; + this.onTimewindowChangeFunction = options.onTimewindowChangeFunction || ((timewindow) => timewindow); if (this.useDashboardTimewindow) { this.timeWindowConfig = deepClone(options.dashboardTimewindow); } else {