Browse Source

refactoring

pull/11101/head
mpetrov 2 years ago
parent
commit
b25e2a556f
  1. 25
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts
  2. 273
      ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts
  3. 24
      ui-ngx/src/app/shared/validators/form-array.validators.ts

25
ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-connectors.component.ts

@ -96,7 +96,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
@ViewChild('nameInput') nameInput: ElementRef; @ViewChild('nameInput') nameInput: ElementRef;
@ViewChild(MatSort, {static: false}) sort: MatSort; @ViewChild(MatSort, {static: false}) sort: MatSort;
@ViewChildren(MatTab) tabs: QueryList<MatTab>;
pageLink: PageLink; pageLink: PageLink;
@ -120,8 +119,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
initialConnector: GatewayConnector; initialConnector: GatewayConnector;
private tabsCountSubject = new BehaviorSubject<number>(0);
private inactiveConnectors: Array<string>; private inactiveConnectors: Array<string>;
private attributeDataSource: AttributeDatasource; private attributeDataSource: AttributeDatasource;
@ -273,8 +270,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
} }
}); });
} }
this.observeModeChange();
this.observeTabsChanges();
} }
ngOnDestroy(): void { ngOnDestroy(): void {
@ -713,26 +708,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
return of(true); return of(true);
} }
private observeTabsChanges(): void {
this.tabs.changes
.pipe(
tap(() => this.tabsCountSubject.next(this.tabs.length)),
takeUntil(this.destroy$),
)
.subscribe();
}
private observeModeChange(): void {
this.connectorForm.get('mode').valueChanges
.pipe(
distinctUntilChanged(),
filter(Boolean),
tap(mode => this.updateConnector({...this.initialConnector, basicConfig: this.initialConnector?.configurationJson || {}, mode })),
takeUntil(this.destroy$),
)
.subscribe();
}
private setFormValue(connector: GatewayConnector): void { private setFormValue(connector: GatewayConnector): void {
if (this.connectorForm.disabled) { if (this.connectorForm.disabled) {
this.connectorForm.enable(); this.connectorForm.enable();

273
ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts

@ -111,85 +111,78 @@ import {
TypeValuePanelComponent, TypeValuePanelComponent,
BrokerConfigControlComponent, BrokerConfigControlComponent,
WorkersConfigControlComponent, WorkersConfigControlComponent,
GeneralConfigComponent,
MqttBasicConfigComponent,
OpcUaBasicConfigComponent,
} from '@home/components/widget/lib/gateway/connectors-configuration/public-api'; } from '@home/components/widget/lib/gateway/connectors-configuration/public-api';
import {
GeneralConfigComponent
} from '@home/components/widget/lib/gateway/connectors-configuration/general-config/general-config.component';
import {
MqttBasicConfigComponent
} from '@home/components/widget/lib/gateway/connectors-configuration/mqtt-basic-config/mqtt-basic-config.component';
import {
OpcUaBasicConfigComponent
} from '@home/components/widget/lib/gateway/connectors-configuration/opc-ua-basic-config/opc-ua-basic-config.component';
@NgModule({ @NgModule({
declarations: declarations: [
[ DisplayColumnsPanelComponent,
DisplayColumnsPanelComponent, EntitiesTableWidgetComponent,
EntitiesTableWidgetComponent, AlarmsTableWidgetComponent,
AlarmsTableWidgetComponent, TimeseriesTableWidgetComponent,
TimeseriesTableWidgetComponent, EntitiesHierarchyWidgetComponent,
EntitiesHierarchyWidgetComponent, EdgesOverviewWidgetComponent,
EdgesOverviewWidgetComponent, DateRangeNavigatorWidgetComponent,
DateRangeNavigatorWidgetComponent, DateRangeNavigatorPanelComponent,
DateRangeNavigatorPanelComponent, JsonInputWidgetComponent,
JsonInputWidgetComponent, MultipleInputWidgetComponent,
MultipleInputWidgetComponent, TripAnimationComponent,
TripAnimationComponent, PhotoCameraInputWidgetComponent,
PhotoCameraInputWidgetComponent, GatewayFormComponent,
GatewayFormComponent, NavigationCardsWidgetComponent,
NavigationCardsWidgetComponent, NavigationCardWidgetComponent,
NavigationCardWidgetComponent, QrCodeWidgetComponent,
QrCodeWidgetComponent, MobileAppQrcodeWidgetComponent,
MobileAppQrcodeWidgetComponent, MarkdownWidgetComponent,
MarkdownWidgetComponent, SelectEntityDialogComponent,
SelectEntityDialogComponent, LegendComponent,
LegendComponent, FlotWidgetComponent,
FlotWidgetComponent, GatewayConnectorComponent,
GatewayConnectorComponent, AddConnectorDialogComponent,
AddConnectorDialogComponent, MappingDialogComponent,
MappingDialogComponent, DeviceInfoTableComponent,
DeviceInfoTableComponent, MappingDataKeysPanelComponent,
MappingDataKeysPanelComponent, TypeValuePanelComponent,
TypeValuePanelComponent, GatewayLogsComponent,
GatewayLogsComponent, GatewayStatisticsComponent,
GatewayStatisticsComponent, GatewayServiceRPCComponent,
GatewayServiceRPCComponent, GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorComponent, GatewayServiceRPCConnectorTemplatesComponent,
GatewayServiceRPCConnectorTemplatesComponent, DeviceGatewayCommandComponent,
DeviceGatewayCommandComponent, GatewayConfigurationComponent,
GatewayConfigurationComponent, GatewayRemoteConfigurationDialogComponent,
GatewayRemoteConfigurationDialogComponent, GatewayServiceRPCConnectorTemplateDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent, EllipsisChipListDirective,
EllipsisChipListDirective, ValueCardWidgetComponent,
ValueCardWidgetComponent, AggregatedValueCardWidgetComponent,
AggregatedValueCardWidgetComponent, CountWidgetComponent,
CountWidgetComponent, BatteryLevelWidgetComponent,
BatteryLevelWidgetComponent, WindSpeedDirectionWidgetComponent,
WindSpeedDirectionWidgetComponent, SignalStrengthWidgetComponent,
SignalStrengthWidgetComponent, ValueChartCardWidgetComponent,
ValueChartCardWidgetComponent, ProgressBarWidgetComponent,
ProgressBarWidgetComponent, LiquidLevelWidgetComponent,
LiquidLevelWidgetComponent, DoughnutWidgetComponent,
DoughnutWidgetComponent, RangeChartWidgetComponent,
RangeChartWidgetComponent, BarChartWithLabelsWidgetComponent,
BarChartWithLabelsWidgetComponent, SingleSwitchWidgetComponent,
SingleSwitchWidgetComponent, ActionButtonWidgetComponent,
ActionButtonWidgetComponent, CommandButtonWidgetComponent,
CommandButtonWidgetComponent, PowerButtonWidgetComponent,
PowerButtonWidgetComponent, SliderWidgetComponent,
SliderWidgetComponent, ToggleButtonWidgetComponent,
ToggleButtonWidgetComponent, TimeSeriesChartWidgetComponent,
TimeSeriesChartWidgetComponent, StatusWidgetComponent,
StatusWidgetComponent, LatestChartComponent,
LatestChartComponent, PieChartWidgetComponent,
PieChartWidgetComponent, BarChartWidgetComponent,
BarChartWidgetComponent, PolarAreaWidgetComponent,
PolarAreaWidgetComponent, RadarChartWidgetComponent,
RadarChartWidgetComponent, LabelCardWidgetComponent,
LabelCardWidgetComponent, LabelValueCardWidgetComponent
LabelValueCardWidgetComponent ],
],
imports: [ imports: [
CommonModule, CommonModule,
SharedModule, SharedModule,
@ -206,70 +199,70 @@ import {
MappingTableComponent, MappingTableComponent,
OpcUaBasicConfigComponent, OpcUaBasicConfigComponent,
], ],
exports: [ exports: [
EntitiesTableWidgetComponent, EntitiesTableWidgetComponent,
AlarmsTableWidgetComponent, AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent, TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent, EntitiesHierarchyWidgetComponent,
EdgesOverviewWidgetComponent, EdgesOverviewWidgetComponent,
RpcWidgetsModule, RpcWidgetsModule,
HomePageWidgetsModule, HomePageWidgetsModule,
DateRangeNavigatorWidgetComponent, DateRangeNavigatorWidgetComponent,
JsonInputWidgetComponent, JsonInputWidgetComponent,
MultipleInputWidgetComponent, MultipleInputWidgetComponent,
TripAnimationComponent, TripAnimationComponent,
PhotoCameraInputWidgetComponent, PhotoCameraInputWidgetComponent,
GatewayFormComponent, GatewayFormComponent,
NavigationCardsWidgetComponent, NavigationCardsWidgetComponent,
NavigationCardWidgetComponent, NavigationCardWidgetComponent,
QrCodeWidgetComponent, QrCodeWidgetComponent,
MobileAppQrcodeWidgetComponent, MobileAppQrcodeWidgetComponent,
MarkdownWidgetComponent, MarkdownWidgetComponent,
LegendComponent, LegendComponent,
FlotWidgetComponent, FlotWidgetComponent,
GatewayConnectorComponent, GatewayConnectorComponent,
AddConnectorDialogComponent, AddConnectorDialogComponent,
MappingDialogComponent, MappingDialogComponent,
DeviceInfoTableComponent, DeviceInfoTableComponent,
MappingDataKeysPanelComponent, MappingDataKeysPanelComponent,
TypeValuePanelComponent, TypeValuePanelComponent,
GatewayLogsComponent, GatewayLogsComponent,
GatewayServiceRPCConnectorComponent, GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorTemplatesComponent, GatewayServiceRPCConnectorTemplatesComponent,
EllipsisChipListDirective, EllipsisChipListDirective,
GatewayStatisticsComponent, GatewayStatisticsComponent,
GatewayServiceRPCComponent, GatewayServiceRPCComponent,
DeviceGatewayCommandComponent, DeviceGatewayCommandComponent,
GatewayConfigurationComponent, GatewayConfigurationComponent,
GatewayRemoteConfigurationDialogComponent, GatewayRemoteConfigurationDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent, GatewayServiceRPCConnectorTemplateDialogComponent,
ValueCardWidgetComponent, ValueCardWidgetComponent,
AggregatedValueCardWidgetComponent, AggregatedValueCardWidgetComponent,
CountWidgetComponent, CountWidgetComponent,
BatteryLevelWidgetComponent, BatteryLevelWidgetComponent,
WindSpeedDirectionWidgetComponent, WindSpeedDirectionWidgetComponent,
SignalStrengthWidgetComponent, SignalStrengthWidgetComponent,
ValueChartCardWidgetComponent, ValueChartCardWidgetComponent,
ProgressBarWidgetComponent, ProgressBarWidgetComponent,
LiquidLevelWidgetComponent, LiquidLevelWidgetComponent,
DoughnutWidgetComponent, DoughnutWidgetComponent,
RangeChartWidgetComponent, RangeChartWidgetComponent,
BarChartWithLabelsWidgetComponent, BarChartWithLabelsWidgetComponent,
SingleSwitchWidgetComponent, SingleSwitchWidgetComponent,
ActionButtonWidgetComponent, ActionButtonWidgetComponent,
CommandButtonWidgetComponent, CommandButtonWidgetComponent,
PowerButtonWidgetComponent, PowerButtonWidgetComponent,
SliderWidgetComponent, SliderWidgetComponent,
ToggleButtonWidgetComponent, ToggleButtonWidgetComponent,
TimeSeriesChartWidgetComponent, TimeSeriesChartWidgetComponent,
StatusWidgetComponent, StatusWidgetComponent,
PieChartWidgetComponent, PieChartWidgetComponent,
BarChartWidgetComponent, BarChartWidgetComponent,
PolarAreaWidgetComponent, PolarAreaWidgetComponent,
RadarChartWidgetComponent, RadarChartWidgetComponent,
LabelCardWidgetComponent, LabelCardWidgetComponent,
LabelValueCardWidgetComponent LabelValueCardWidgetComponent
], ],
providers: [ providers: [
{provide: WIDGET_COMPONENTS_MODULE_TOKEN, useValue: WidgetComponentsModule } {provide: WIDGET_COMPONENTS_MODULE_TOKEN, useValue: WidgetComponentsModule }
] ]

24
ui-ngx/src/app/shared/validators/form-array.validators.ts

@ -1,24 +0,0 @@
///
/// Copyright © 2016-2024 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
import { UntypedFormArray, ValidatorFn } from '@angular/forms';
export function validateArrayIsNotEmpty(): ValidatorFn {
return (formArray: UntypedFormArray): { formArrayIsEmpty: boolean } => {
const length = formArray.length;
return length ? null : { formArrayIsEmpty: true };
};
}
Loading…
Cancel
Save