UI: Refactoring code
This commit is contained in:
parent
0fe0a84d32
commit
00e9d2ce75
@ -729,3 +729,37 @@ function prepareMessageFromData(data): string {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function genNextLabel(name: string, datasources: Datasource[]): string {
|
||||||
|
let label = name;
|
||||||
|
let i = 1;
|
||||||
|
let matches = false;
|
||||||
|
if (datasources) {
|
||||||
|
do {
|
||||||
|
matches = false;
|
||||||
|
datasources.forEach((datasource) => {
|
||||||
|
if (datasource) {
|
||||||
|
if (datasource.dataKeys) {
|
||||||
|
datasource.dataKeys.forEach((dataKey) => {
|
||||||
|
if (dataKey.label === label) {
|
||||||
|
i++;
|
||||||
|
label = name + ' ' + i;
|
||||||
|
matches = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (datasource.latestDataKeys) {
|
||||||
|
datasource.latestDataKeys.forEach((dataKey) => {
|
||||||
|
if (dataKey.label === label) {
|
||||||
|
i++;
|
||||||
|
label = name + ' ' + i;
|
||||||
|
matches = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} while (matches);
|
||||||
|
}
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|||||||
@ -19,7 +19,8 @@ import { PageComponent } from '@shared/components/page.component';
|
|||||||
import { Store } from '@ngrx/store';
|
import { Store } from '@ngrx/store';
|
||||||
import { AppState } from '@core/core.state';
|
import { AppState } from '@core/core.state';
|
||||||
import {
|
import {
|
||||||
ComparisonResultType, comparisonResultTypeTranslationMap,
|
ComparisonResultType,
|
||||||
|
comparisonResultTypeTranslationMap,
|
||||||
DataKey,
|
DataKey,
|
||||||
dataKeyAggregationTypeHintTranslationMap,
|
dataKeyAggregationTypeHintTranslationMap,
|
||||||
Widget,
|
Widget,
|
||||||
@ -50,6 +51,7 @@ import { WidgetService } from '@core/http/widget.service';
|
|||||||
import { Dashboard } from '@shared/models/dashboard.models';
|
import { Dashboard } from '@shared/models/dashboard.models';
|
||||||
import { IAliasController } from '@core/api/widget-api.models';
|
import { IAliasController } from '@core/api/widget-api.models';
|
||||||
import { aggregationTranslations, AggregationType, ComparisonDuration } from '@shared/models/time/time.models';
|
import { aggregationTranslations, AggregationType, ComparisonDuration } from '@shared/models/time/time.models';
|
||||||
|
import { genNextLabel } from '@core/utils';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tb-data-key-config',
|
selector: 'tb-data-key-config',
|
||||||
@ -201,7 +203,7 @@ export class DataKeyConfigComponent extends PageComponent implements OnInit, Con
|
|||||||
let newLabel = this.dataKeyFormGroup.get('name').value;
|
let newLabel = this.dataKeyFormGroup.get('name').value;
|
||||||
if (aggType !== AggregationType.NONE) {
|
if (aggType !== AggregationType.NONE) {
|
||||||
const prefix = this.translate.instant(aggregationTranslations.get(aggType));
|
const prefix = this.translate.instant(aggregationTranslations.get(aggType));
|
||||||
newLabel = this.genNextLabelWithAggregation(prefix + ' ' + newLabel);
|
newLabel = genNextLabel(prefix + ' ' + newLabel, this.widget.config.datasources);
|
||||||
}
|
}
|
||||||
this.dataKeyFormGroup.get('label').patchValue(newLabel);
|
this.dataKeyFormGroup.get('label').patchValue(newLabel);
|
||||||
}
|
}
|
||||||
@ -241,30 +243,6 @@ export class DataKeyConfigComponent extends PageComponent implements OnInit, Con
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private genNextLabelWithAggregation(name: string): string {
|
|
||||||
let label = name;
|
|
||||||
let i = 1;
|
|
||||||
let matches = false;
|
|
||||||
const datasources = this.widget.config.datasources;
|
|
||||||
if (datasources) {
|
|
||||||
do {
|
|
||||||
matches = false;
|
|
||||||
datasources.forEach((datasource) => {
|
|
||||||
if (datasource && datasource?.dataKeys) {
|
|
||||||
datasource.dataKeys.forEach((dataKey) => {
|
|
||||||
if (dataKey.label === label) {
|
|
||||||
i++;
|
|
||||||
label = name + ' ' + i;
|
|
||||||
matches = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} while (matches);
|
|
||||||
}
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
registerOnChange(fn: any): void {
|
registerOnChange(fn: any): void {
|
||||||
this.propagateChange = fn;
|
this.propagateChange = fn;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,9 @@ import { Store } from '@ngrx/store';
|
|||||||
import { AppState } from '@core/core.state';
|
import { AppState } from '@core/core.state';
|
||||||
import {
|
import {
|
||||||
DataKey,
|
DataKey,
|
||||||
Datasource, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation,
|
Datasource,
|
||||||
|
datasourcesHasAggregation,
|
||||||
|
datasourcesHasOnlyComparisonAggregation,
|
||||||
DatasourceType,
|
DatasourceType,
|
||||||
datasourceTypeTranslationMap,
|
datasourceTypeTranslationMap,
|
||||||
defaultLegendConfig,
|
defaultLegendConfig,
|
||||||
@ -42,7 +44,7 @@ import {
|
|||||||
Validators
|
Validators
|
||||||
} from '@angular/forms';
|
} from '@angular/forms';
|
||||||
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
import { WidgetConfigComponentData } from '@home/models/widget-component.models';
|
||||||
import { deepClone, isDefined, isObject } from '@app/core/utils';
|
import { deepClone, genNextLabel, isDefined, isObject } from '@app/core/utils';
|
||||||
import {
|
import {
|
||||||
alarmFields,
|
alarmFields,
|
||||||
AlarmSearchStatus,
|
AlarmSearchStatus,
|
||||||
@ -74,7 +76,6 @@ import { FilterDialogComponent, FilterDialogData } from '@home/components/filter
|
|||||||
import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes';
|
import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes';
|
||||||
import { MatChipInputEvent } from '@angular/material/chips';
|
import { MatChipInputEvent } from '@angular/material/chips';
|
||||||
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
||||||
import { AggregationType } from '@shared/models/time/time.models';
|
|
||||||
|
|
||||||
const emptySettingsSchema: JsonSchema = {
|
const emptySettingsSchema: JsonSchema = {
|
||||||
type: 'object',
|
type: 'object',
|
||||||
@ -794,7 +795,8 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, Cont
|
|||||||
label = this.translate.instant(keyField.name);
|
label = this.translate.instant(keyField.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
label = this.genNextLabel(label);
|
const datasources = this.widgetType === widgetType.alarm ? [this.modelValue.config.alarmSource] : this.modelValue.config.datasources;
|
||||||
|
label = genNextLabel(label, datasources);
|
||||||
const result: DataKey = {
|
const result: DataKey = {
|
||||||
name: chip,
|
name: chip,
|
||||||
type,
|
type,
|
||||||
@ -819,41 +821,6 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, Cont
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private genNextLabel(name: string): string {
|
|
||||||
let label = name;
|
|
||||||
let i = 1;
|
|
||||||
let matches = false;
|
|
||||||
const datasources = this.widgetType === widgetType.alarm ? [this.modelValue.config.alarmSource] : this.modelValue.config.datasources;
|
|
||||||
if (datasources) {
|
|
||||||
do {
|
|
||||||
matches = false;
|
|
||||||
datasources.forEach((datasource) => {
|
|
||||||
if (datasource) {
|
|
||||||
if (datasource.dataKeys) {
|
|
||||||
datasource.dataKeys.forEach((dataKey) => {
|
|
||||||
if (dataKey.label === label) {
|
|
||||||
i++;
|
|
||||||
label = name + ' ' + i;
|
|
||||||
matches = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (datasource.latestDataKeys) {
|
|
||||||
datasource.latestDataKeys.forEach((dataKey) => {
|
|
||||||
if (dataKey.label === label) {
|
|
||||||
i++;
|
|
||||||
label = name + ' ' + i;
|
|
||||||
matches = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} while (matches);
|
|
||||||
}
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
private genNextColor(): string {
|
private genNextColor(): string {
|
||||||
let i = 0;
|
let i = 0;
|
||||||
const datasources = this.widgetType === widgetType.alarm ? [this.modelValue.config.alarmSource] : this.modelValue.config.datasources;
|
const datasources = this.widgetType === widgetType.alarm ? [this.modelValue.config.alarmSource] : this.modelValue.config.datasources;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user