Browse Source

UI: Add new widhet type parameters supportsUnitConversion

pull/13282/head
Vladyslav_Prykhodko 1 year ago
parent
commit
76237337b2
  1. 4
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.html
  2. 7
      ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.ts
  3. 1
      ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.html
  4. 7
      ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.ts
  5. 1
      ui-ngx/src/app/modules/home/components/widget/config/datasource.component.html
  6. 4
      ui-ngx/src/app/modules/home/components/widget/config/datasource.component.ts
  7. 1
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config-dialog.component.html
  8. 1
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config-dialog.component.ts
  9. 1
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config.component.html
  10. 4
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config.component.ts
  11. 7
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-keys.component.ts
  12. 3
      ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts
  13. 1
      ui-ngx/src/app/modules/home/components/widget/widget-config.component.html
  14. 1
      ui-ngx/src/app/shared/models/widget.models.ts

4
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.html

@ -47,7 +47,9 @@
/> />
</mat-form-field> </mat-form-field>
<div class="tb-units-field"> <div class="tb-units-field">
<tb-unit-input formControlName="units"> <tb-unit-input
[allowConverted]="supportsUnitConversion"
formControlName="units">
</tb-unit-input> </tb-unit-input>
</div> </div>
<div class="tb-decimals-field"> <div class="tb-decimals-field">

7
ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-data-key-row.component.ts

@ -123,6 +123,10 @@ export class AggregatedDataKeyRowComponent implements ControlValueAccessor, OnIn
return [DatasourceType.device, DatasourceType.entity].includes(this.datasourceType); return [DatasourceType.device, DatasourceType.entity].includes(this.datasourceType);
} }
get supportsUnitConversion(): boolean {
return this.widgetConfigComponent.modelValue?.typeParameters?.supportsUnitConversion ?? false;
}
private propagateChange = (_val: any) => {}; private propagateChange = (_val: any) => {};
constructor(private fb: UntypedFormBuilder, constructor(private fb: UntypedFormBuilder,
@ -222,7 +226,8 @@ export class AggregatedDataKeyRowComponent implements ControlValueAccessor, OnIn
callbacks: this.callbacks, callbacks: this.callbacks,
hideDataKeyName: true, hideDataKeyName: true,
hideDataKeyLabel: true, hideDataKeyLabel: true,
hideDataKeyColor: true hideDataKeyColor: true,
supportsUnitConversion: this.supportsUnitConversion
} }
}).afterClosed().subscribe((updatedDataKey) => { }).afterClosed().subscribe((updatedDataKey) => {
if (updatedDataKey) { if (updatedDataKey) {

1
ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.html

@ -69,6 +69,7 @@
</div> </div>
<div *ngIf="!hideUnits && !hideDataKeyUnits && (!singleRow || displayUnitsOrDigits)" class="tb-units-field"> <div *ngIf="!hideUnits && !hideDataKeyUnits && (!singleRow || displayUnitsOrDigits)" class="tb-units-field">
<tb-unit-input *ngIf="displayUnitsOrDigits" <tb-unit-input *ngIf="displayUnitsOrDigits"
[allowConverted]="supportsUnitConversion"
formControlName="units"> formControlName="units">
</tb-unit-input> </tb-unit-input>
</div> </div>

7
ui-ngx/src/app/modules/home/components/widget/config/basic/common/data-key-row.component.ts

@ -225,6 +225,10 @@ export class DataKeyRowComponent implements ControlValueAccessor, OnInit, OnChan
return this.hasAdditionalLatestDataKeys && this.keyRowFormGroup.get('latest').value === true; return this.hasAdditionalLatestDataKeys && this.keyRowFormGroup.get('latest').value === true;
} }
get supportsUnitConversion(): boolean {
return this.widgetConfigComponent.modelValue?.typeParameters?.supportsUnitConversion ?? false;
}
private propagateChange = (_val: any) => {}; private propagateChange = (_val: any) => {};
constructor(private fb: UntypedFormBuilder, constructor(private fb: UntypedFormBuilder,
@ -337,7 +341,8 @@ export class DataKeyRowComponent implements ControlValueAccessor, OnInit, OnChan
hideDataKeyLabel: this.hideDataKeyLabel, hideDataKeyLabel: this.hideDataKeyLabel,
hideDataKeyColor: this.hideDataKeyColor, hideDataKeyColor: this.hideDataKeyColor,
hideDataKeyUnits: this.hideDataKeyUnits || !this.displayUnitsOrDigits, hideDataKeyUnits: this.hideDataKeyUnits || !this.displayUnitsOrDigits,
hideDataKeyDecimals: this.hideDataKeyDecimals || !this.displayUnitsOrDigits hideDataKeyDecimals: this.hideDataKeyDecimals || !this.displayUnitsOrDigits,
supportsUnitConversion: this.supportsUnitConversion
} }
}).afterClosed().subscribe((updatedDataKey) => { }).afterClosed().subscribe((updatedDataKey) => {
if (updatedDataKey) { if (updatedDataKey) {

1
ui-ngx/src/app/modules/home/components/widget/config/datasource.component.html

@ -71,6 +71,7 @@
[hideDataKeyUnits]="hideDataKeyUnits" [hideDataKeyUnits]="hideDataKeyUnits"
[hideDataKeyDecimals]="hideDataKeyDecimals" [hideDataKeyDecimals]="hideDataKeyDecimals"
[maxDataKeys]="maxDataKeys" [maxDataKeys]="maxDataKeys"
[supportsUnitConversion]="supportsUnitConversion"
[optDataKeys]="isDataKeysOptional(datasourceFormGroup.get('type').value)" [optDataKeys]="isDataKeysOptional(datasourceFormGroup.get('type').value)"
[simpleDataKeysLabel]="!hasAdditionalLatestDataKeys" [simpleDataKeysLabel]="!hasAdditionalLatestDataKeys"
[aliasController]="aliasController" [aliasController]="aliasController"

4
ui-ngx/src/app/modules/home/components/widget/config/datasource.component.ts

@ -135,6 +135,10 @@ export class DatasourceComponent implements ControlValueAccessor, OnInit, Valida
return this.widgetConfigComponent.modelValue?.dataKeySettingsFunction; return this.widgetConfigComponent.modelValue?.dataKeySettingsFunction;
} }
public get supportsUnitConversion(): boolean {
return this.widgetConfigComponent.modelValue?.typeParameters?.supportsUnitConversion ?? false;
}
public get dashboard(): Dashboard { public get dashboard(): Dashboard {
return this.widgetConfigComponent.dashboard; return this.widgetConfigComponent.dashboard;
} }

1
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config-dialog.component.html

@ -50,6 +50,7 @@
[hideDataKeyColor]="data.hideDataKeyColor" [hideDataKeyColor]="data.hideDataKeyColor"
[hideDataKeyUnits]="data.hideDataKeyUnits" [hideDataKeyUnits]="data.hideDataKeyUnits"
[hideDataKeyDecimals]="data.hideDataKeyDecimals" [hideDataKeyDecimals]="data.hideDataKeyDecimals"
[supportsUnitConversion]="data.supportsUnitConversion"
formControlName="dataKey"> formControlName="dataKey">
</tb-data-key-config> </tb-data-key-config>
</div> </div>

1
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config-dialog.component.ts

@ -56,6 +56,7 @@ export interface DataKeyConfigDialogData {
hideDataKeyColor?: boolean; hideDataKeyColor?: boolean;
hideDataKeyUnits?: boolean; hideDataKeyUnits?: boolean;
hideDataKeyDecimals?: boolean; hideDataKeyDecimals?: boolean;
supportsUnitConversion?: boolean
} }
@Component({ @Component({

1
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config.component.html

@ -49,6 +49,7 @@
<div class="tb-form-row space-between" *ngIf="!hideDataKeyUnits"> <div class="tb-form-row space-between" *ngIf="!hideDataKeyUnits">
<div translate>widget-config.units-short</div> <div translate>widget-config.units-short</div>
<tb-unit-input <tb-unit-input
[allowConverted]="supportsUnitConversion"
formControlName="units"> formControlName="units">
</tb-unit-input> </tb-unit-input>
</div> </div>

4
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-key-config.component.ts

@ -153,6 +153,10 @@ export class DataKeyConfigComponent extends PageComponent implements OnInit, Con
@coerceBoolean() @coerceBoolean()
hideDataKeyDecimals = false; hideDataKeyDecimals = false;
@Input()
@coerceBoolean()
supportsUnitConversion = false;
@ViewChild('keyInput') keyInput: ElementRef; @ViewChild('keyInput') keyInput: ElementRef;
@ViewChild('funcBodyEdit', {static: false}) funcBodyEdit: JsFuncComponent; @ViewChild('funcBodyEdit', {static: false}) funcBodyEdit: JsFuncComponent;

7
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/key/data-keys.component.ts

@ -169,6 +169,10 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange
@coerceBoolean() @coerceBoolean()
simpleDataKeysLabel = false; simpleDataKeysLabel = false;
@Input()
@coerceBoolean()
supportsUnitConversion = false;
@Input() @Input()
aliasController: IAliasController; aliasController: IAliasController;
@ -610,7 +614,8 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange
hideDataKeyLabel: this.hideDataKeyLabel, hideDataKeyLabel: this.hideDataKeyLabel,
hideDataKeyColor: this.hideDataKeyColor, hideDataKeyColor: this.hideDataKeyColor,
hideDataKeyUnits: this.hideDataKeyUnits, hideDataKeyUnits: this.hideDataKeyUnits,
hideDataKeyDecimals: this.hideDataKeyDecimals hideDataKeyDecimals: this.hideDataKeyDecimals,
supportsUnitConversion: this.supportsUnitConversion
} }
}).afterClosed().subscribe((updatedDataKey) => { }).afterClosed().subscribe((updatedDataKey) => {
if (updatedDataKey) { if (updatedDataKey) {

3
ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts

@ -662,6 +662,9 @@ export class WidgetComponentService {
if (isUndefined(result.typeParameters.targetDeviceOptional)) { if (isUndefined(result.typeParameters.targetDeviceOptional)) {
result.typeParameters.targetDeviceOptional = false; result.typeParameters.targetDeviceOptional = false;
} }
if (isUndefined(result.typeParameters.supportsUnitConversion)) {
result.typeParameters.supportsUnitConversion = false;
}
if (isDefinedAndNotNull(result.typeParameters.additionalWidgetActionTypes)) { if (isDefinedAndNotNull(result.typeParameters.additionalWidgetActionTypes)) {
if (Array.isArray(result.typeParameters.additionalWidgetActionTypes)) { if (Array.isArray(result.typeParameters.additionalWidgetActionTypes)) {
result.typeParameters.additionalWidgetActionTypes = result.typeParameters.additionalWidgetActionTypes.filter(type => WidgetActionType[type]); result.typeParameters.additionalWidgetActionTypes = result.typeParameters.additionalWidgetActionTypes.filter(type => WidgetActionType[type]);

1
ui-ngx/src/app/modules/home/components/widget/widget-config.component.html

@ -291,6 +291,7 @@
<div *ngIf="displayUnitsConfig" class="tb-form-row space-between"> <div *ngIf="displayUnitsConfig" class="tb-form-row space-between">
<div tb-hint-tooltip-icon="{{'widget-config.default-data-key-parameter-hint' | translate}}" translate>widget-config.units-by-default</div> <div tb-hint-tooltip-icon="{{'widget-config.default-data-key-parameter-hint' | translate}}" translate>widget-config.units-by-default</div>
<tb-unit-input <tb-unit-input
[allowConverted]="modelValue.typeParameters.supportsUnitConversion"
formControlName="units"> formControlName="units">
</tb-unit-input> </tb-unit-input>
</div> </div>

1
ui-ngx/src/app/shared/models/widget.models.ts

@ -196,6 +196,7 @@ export interface WidgetTypeParameters {
dataKeySettingsFunction?: DataKeySettingsFunction; dataKeySettingsFunction?: DataKeySettingsFunction;
displayRpcMessageToast?: boolean; displayRpcMessageToast?: boolean;
targetDeviceOptional?: boolean; targetDeviceOptional?: boolean;
supportsUnitConversion?: boolean;
additionalWidgetActionTypes?: WidgetActionType[]; additionalWidgetActionTypes?: WidgetActionType[];
} }

Loading…
Cancel
Save