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(MatSort, {static: false}) sort: MatSort;
@ViewChildren(MatTab) tabs: QueryList<MatTab>;
pageLink: PageLink;
@ -120,8 +119,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
initialConnector: GatewayConnector;
private tabsCountSubject = new BehaviorSubject<number>(0);
private inactiveConnectors: Array<string>;
private attributeDataSource: AttributeDatasource;
@ -273,8 +270,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
}
});
}
this.observeModeChange();
this.observeTabsChanges();
}
ngOnDestroy(): void {
@ -713,26 +708,6 @@ export class GatewayConnectorComponent extends PageComponent implements AfterVie
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 {
if (this.connectorForm.disabled) {
this.connectorForm.enable();

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

@ -111,85 +111,78 @@ import {
TypeValuePanelComponent,
BrokerConfigControlComponent,
WorkersConfigControlComponent,
GeneralConfigComponent,
MqttBasicConfigComponent,
OpcUaBasicConfigComponent,
} 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({
declarations:
[
DisplayColumnsPanelComponent,
EntitiesTableWidgetComponent,
AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent,
EdgesOverviewWidgetComponent,
DateRangeNavigatorWidgetComponent,
DateRangeNavigatorPanelComponent,
JsonInputWidgetComponent,
MultipleInputWidgetComponent,
TripAnimationComponent,
PhotoCameraInputWidgetComponent,
GatewayFormComponent,
NavigationCardsWidgetComponent,
NavigationCardWidgetComponent,
QrCodeWidgetComponent,
MobileAppQrcodeWidgetComponent,
MarkdownWidgetComponent,
SelectEntityDialogComponent,
LegendComponent,
FlotWidgetComponent,
GatewayConnectorComponent,
AddConnectorDialogComponent,
MappingDialogComponent,
DeviceInfoTableComponent,
MappingDataKeysPanelComponent,
TypeValuePanelComponent,
GatewayLogsComponent,
GatewayStatisticsComponent,
GatewayServiceRPCComponent,
GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorTemplatesComponent,
DeviceGatewayCommandComponent,
GatewayConfigurationComponent,
GatewayRemoteConfigurationDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent,
EllipsisChipListDirective,
ValueCardWidgetComponent,
AggregatedValueCardWidgetComponent,
CountWidgetComponent,
BatteryLevelWidgetComponent,
WindSpeedDirectionWidgetComponent,
SignalStrengthWidgetComponent,
ValueChartCardWidgetComponent,
ProgressBarWidgetComponent,
LiquidLevelWidgetComponent,
DoughnutWidgetComponent,
RangeChartWidgetComponent,
BarChartWithLabelsWidgetComponent,
SingleSwitchWidgetComponent,
ActionButtonWidgetComponent,
CommandButtonWidgetComponent,
PowerButtonWidgetComponent,
SliderWidgetComponent,
ToggleButtonWidgetComponent,
TimeSeriesChartWidgetComponent,
StatusWidgetComponent,
LatestChartComponent,
PieChartWidgetComponent,
BarChartWidgetComponent,
PolarAreaWidgetComponent,
RadarChartWidgetComponent,
LabelCardWidgetComponent,
LabelValueCardWidgetComponent
],
declarations: [
DisplayColumnsPanelComponent,
EntitiesTableWidgetComponent,
AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent,
EdgesOverviewWidgetComponent,
DateRangeNavigatorWidgetComponent,
DateRangeNavigatorPanelComponent,
JsonInputWidgetComponent,
MultipleInputWidgetComponent,
TripAnimationComponent,
PhotoCameraInputWidgetComponent,
GatewayFormComponent,
NavigationCardsWidgetComponent,
NavigationCardWidgetComponent,
QrCodeWidgetComponent,
MobileAppQrcodeWidgetComponent,
MarkdownWidgetComponent,
SelectEntityDialogComponent,
LegendComponent,
FlotWidgetComponent,
GatewayConnectorComponent,
AddConnectorDialogComponent,
MappingDialogComponent,
DeviceInfoTableComponent,
MappingDataKeysPanelComponent,
TypeValuePanelComponent,
GatewayLogsComponent,
GatewayStatisticsComponent,
GatewayServiceRPCComponent,
GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorTemplatesComponent,
DeviceGatewayCommandComponent,
GatewayConfigurationComponent,
GatewayRemoteConfigurationDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent,
EllipsisChipListDirective,
ValueCardWidgetComponent,
AggregatedValueCardWidgetComponent,
CountWidgetComponent,
BatteryLevelWidgetComponent,
WindSpeedDirectionWidgetComponent,
SignalStrengthWidgetComponent,
ValueChartCardWidgetComponent,
ProgressBarWidgetComponent,
LiquidLevelWidgetComponent,
DoughnutWidgetComponent,
RangeChartWidgetComponent,
BarChartWithLabelsWidgetComponent,
SingleSwitchWidgetComponent,
ActionButtonWidgetComponent,
CommandButtonWidgetComponent,
PowerButtonWidgetComponent,
SliderWidgetComponent,
ToggleButtonWidgetComponent,
TimeSeriesChartWidgetComponent,
StatusWidgetComponent,
LatestChartComponent,
PieChartWidgetComponent,
BarChartWidgetComponent,
PolarAreaWidgetComponent,
RadarChartWidgetComponent,
LabelCardWidgetComponent,
LabelValueCardWidgetComponent
],
imports: [
CommonModule,
SharedModule,
@ -206,70 +199,70 @@ import {
MappingTableComponent,
OpcUaBasicConfigComponent,
],
exports: [
EntitiesTableWidgetComponent,
AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent,
EdgesOverviewWidgetComponent,
RpcWidgetsModule,
HomePageWidgetsModule,
DateRangeNavigatorWidgetComponent,
JsonInputWidgetComponent,
MultipleInputWidgetComponent,
TripAnimationComponent,
PhotoCameraInputWidgetComponent,
GatewayFormComponent,
NavigationCardsWidgetComponent,
NavigationCardWidgetComponent,
QrCodeWidgetComponent,
MobileAppQrcodeWidgetComponent,
MarkdownWidgetComponent,
LegendComponent,
FlotWidgetComponent,
GatewayConnectorComponent,
AddConnectorDialogComponent,
MappingDialogComponent,
DeviceInfoTableComponent,
MappingDataKeysPanelComponent,
TypeValuePanelComponent,
GatewayLogsComponent,
GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorTemplatesComponent,
EllipsisChipListDirective,
GatewayStatisticsComponent,
GatewayServiceRPCComponent,
DeviceGatewayCommandComponent,
GatewayConfigurationComponent,
GatewayRemoteConfigurationDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent,
ValueCardWidgetComponent,
AggregatedValueCardWidgetComponent,
CountWidgetComponent,
BatteryLevelWidgetComponent,
WindSpeedDirectionWidgetComponent,
SignalStrengthWidgetComponent,
ValueChartCardWidgetComponent,
ProgressBarWidgetComponent,
LiquidLevelWidgetComponent,
DoughnutWidgetComponent,
RangeChartWidgetComponent,
BarChartWithLabelsWidgetComponent,
SingleSwitchWidgetComponent,
ActionButtonWidgetComponent,
CommandButtonWidgetComponent,
PowerButtonWidgetComponent,
SliderWidgetComponent,
ToggleButtonWidgetComponent,
TimeSeriesChartWidgetComponent,
StatusWidgetComponent,
PieChartWidgetComponent,
BarChartWidgetComponent,
PolarAreaWidgetComponent,
RadarChartWidgetComponent,
LabelCardWidgetComponent,
LabelValueCardWidgetComponent
],
exports: [
EntitiesTableWidgetComponent,
AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent,
EdgesOverviewWidgetComponent,
RpcWidgetsModule,
HomePageWidgetsModule,
DateRangeNavigatorWidgetComponent,
JsonInputWidgetComponent,
MultipleInputWidgetComponent,
TripAnimationComponent,
PhotoCameraInputWidgetComponent,
GatewayFormComponent,
NavigationCardsWidgetComponent,
NavigationCardWidgetComponent,
QrCodeWidgetComponent,
MobileAppQrcodeWidgetComponent,
MarkdownWidgetComponent,
LegendComponent,
FlotWidgetComponent,
GatewayConnectorComponent,
AddConnectorDialogComponent,
MappingDialogComponent,
DeviceInfoTableComponent,
MappingDataKeysPanelComponent,
TypeValuePanelComponent,
GatewayLogsComponent,
GatewayServiceRPCConnectorComponent,
GatewayServiceRPCConnectorTemplatesComponent,
EllipsisChipListDirective,
GatewayStatisticsComponent,
GatewayServiceRPCComponent,
DeviceGatewayCommandComponent,
GatewayConfigurationComponent,
GatewayRemoteConfigurationDialogComponent,
GatewayServiceRPCConnectorTemplateDialogComponent,
ValueCardWidgetComponent,
AggregatedValueCardWidgetComponent,
CountWidgetComponent,
BatteryLevelWidgetComponent,
WindSpeedDirectionWidgetComponent,
SignalStrengthWidgetComponent,
ValueChartCardWidgetComponent,
ProgressBarWidgetComponent,
LiquidLevelWidgetComponent,
DoughnutWidgetComponent,
RangeChartWidgetComponent,
BarChartWithLabelsWidgetComponent,
SingleSwitchWidgetComponent,
ActionButtonWidgetComponent,
CommandButtonWidgetComponent,
PowerButtonWidgetComponent,
SliderWidgetComponent,
ToggleButtonWidgetComponent,
TimeSeriesChartWidgetComponent,
StatusWidgetComponent,
PieChartWidgetComponent,
BarChartWidgetComponent,
PolarAreaWidgetComponent,
RadarChartWidgetComponent,
LabelCardWidgetComponent,
LabelValueCardWidgetComponent
],
providers: [
{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