diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/abstract/gateway-connector-version-processor.abstract.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/abstract/gateway-connector-version-processor.abstract.ts index 579ad6a45b..b2062e428b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/abstract/gateway-connector-version-processor.abstract.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/abstract/gateway-connector-version-processor.abstract.ts @@ -1,4 +1,4 @@ -import { GatewayConnector } from '@home/components/widget/lib/gateway/gateway-widget.models'; +import { GatewayConnector, GatewayVersion } from '@home/components/widget/lib/gateway/gateway-widget.models'; export abstract class GatewayConnectorVersionProcessor { gatewayVersion: number; @@ -11,7 +11,7 @@ export abstract class GatewayConnectorVersionProcessor { getProcessedByVersion(): GatewayConnector { if (this.isVersionUpdateNeeded()) { - return !this.configVersion || this.configVersion < this.gatewayVersion + return this.isVersionUpgradeNeeded() ? this.getUpgradedVersion() : this.getDowngradedVersion(); } @@ -27,6 +27,10 @@ export abstract class GatewayConnectorVersionProcessor { return this.configVersion !== this.gatewayVersion; } + private isVersionUpgradeNeeded(): boolean { + return (!this.configVersion || this.configVersion < this.gatewayVersion) && this.gatewayVersionStr === GatewayVersion.Current; + } + private parseVersion(version: string): number { return Number(version?.replace(/\./g, '')); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/dialog/add-connector-dialog.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/dialog/add-connector-dialog.component.ts index 0168cf86af..c8235cb697 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/dialog/add-connector-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/dialog/add-connector-dialog.component.ts @@ -29,6 +29,7 @@ import { GatewayConnector, GatewayConnectorDefaultTypesTranslatesMap, GatewayLogLevel, + GatewayVersion, GatewayVersionedDefaultConfig, noLeadTrailSpacesRegex } from '@home/components/widget/lib/gateway/gateway-widget.models'; @@ -102,7 +103,7 @@ export class AddConnectorDialogComponent if (gatewayVersion) { value.configVersion = gatewayVersion; } - value.configurationJson = (gatewayVersion + value.configurationJson = (gatewayVersion === GatewayVersion.Current ? defaultConfig[this.data.gatewayVersion] : defaultConfig.legacy) ?? defaultConfig; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.html index 63a18ad3d2..f0459496df 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.html @@ -178,7 +178,7 @@ diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts index cbaeed8888..9be5b550ce 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts @@ -59,6 +59,7 @@ import { GatewayConnectorDefaultTypesTranslatesMap, GatewayLogLevel, noLeadTrailSpacesRegex, + GatewayVersion, } from './gateway-widget.models'; import { MatDialog } from '@angular/material/dialog'; import { AddConnectorDialogComponent } from '@home/components/widget/lib/gateway/dialog/add-connector-dialog.component'; @@ -101,6 +102,7 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie readonly displayedColumns = ['enabled', 'key', 'type', 'syncStatus', 'errors', 'actions']; readonly GatewayConnectorTypesTranslatesMap = GatewayConnectorDefaultTypesTranslatesMap; readonly ConnectorConfigurationModes = ConfigurationModes; + readonly GatewayVersion = GatewayVersion; pageLink: PageLink; dataSource: MatTableDataSource; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts index 94d8ce7d2a..f7acac12e6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-widget.models.ts @@ -188,6 +188,11 @@ export interface ConnectorSecurity { mode?: ModeType; } +export enum GatewayVersion { + Current = '3.5.1', + Legacy = 'legacy' +} + export type ConnectorMapping = DeviceConnectorMapping | RequestMappingValue | ConverterConnectorMapping; export type ConnectorMappingFormValue = DeviceConnectorMapping | RequestMappingFormValue | ConverterMappingFormValue;