UI: Fixed incorrect import/export/copy alarm type widgets
This commit is contained in:
parent
113bfa9d05
commit
9c0ff5f917
@ -30,7 +30,7 @@ import {
|
|||||||
WidgetLayout
|
WidgetLayout
|
||||||
} from '@shared/models/dashboard.models';
|
} from '@shared/models/dashboard.models';
|
||||||
import { isDefined, isString, isUndefined } from '@core/utils';
|
import { isDefined, isString, isUndefined } from '@core/utils';
|
||||||
import { Datasource, DatasourceType, Widget } from '@app/shared/models/widget.models';
|
import { Datasource, DatasourceType, Widget, widgetType } from '@app/shared/models/widget.models';
|
||||||
import { EntityType } from '@shared/models/entity-type.models';
|
import { EntityType } from '@shared/models/entity-type.models';
|
||||||
import { AliasFilterType, EntityAlias, EntityAliasFilter } from '@app/shared/models/alias.models';
|
import { AliasFilterType, EntityAlias, EntityAliasFilter } from '@app/shared/models/alias.models';
|
||||||
import { EntityId } from '@app/shared/models/id/entity-id';
|
import { EntityId } from '@app/shared/models/id/entity-id';
|
||||||
@ -106,7 +106,8 @@ export class DashboardUtilsService {
|
|||||||
const targetDevicesByAliasId: {[aliasId: string]: Array<Array<string>>} = {};
|
const targetDevicesByAliasId: {[aliasId: string]: Array<Array<string>>} = {};
|
||||||
for (const widgetId of Object.keys(dashboard.configuration.widgets)) {
|
for (const widgetId of Object.keys(dashboard.configuration.widgets)) {
|
||||||
const widget = dashboard.configuration.widgets[widgetId];
|
const widget = dashboard.configuration.widgets[widgetId];
|
||||||
widget.config.datasources.forEach((datasource) => {
|
const datasources = widget.type === widgetType.alarm ? [widget.config.alarmSource] : widget.config.datasources;
|
||||||
|
datasources.forEach((datasource) => {
|
||||||
if (datasource.entityAliasId) {
|
if (datasource.entityAliasId) {
|
||||||
const aliasId = datasource.entityAliasId;
|
const aliasId = datasource.entityAliasId;
|
||||||
let aliasDatasources = datasourcesByAliasId[aliasId];
|
let aliasDatasources = datasourcesByAliasId[aliasId];
|
||||||
|
|||||||
@ -17,7 +17,14 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Dashboard, DashboardLayoutId } from '@app/shared/models/dashboard.models';
|
import { Dashboard, DashboardLayoutId } from '@app/shared/models/dashboard.models';
|
||||||
import { AliasesInfo, EntityAlias, EntityAliases, EntityAliasInfo } from '@shared/models/alias.models';
|
import { AliasesInfo, EntityAlias, EntityAliases, EntityAliasInfo } from '@shared/models/alias.models';
|
||||||
import { DatasourceType, Widget, WidgetPosition, WidgetSize } from '@shared/models/widget.models';
|
import {
|
||||||
|
Datasource,
|
||||||
|
DatasourceType,
|
||||||
|
Widget,
|
||||||
|
WidgetPosition,
|
||||||
|
WidgetSize,
|
||||||
|
widgetType
|
||||||
|
} from '@shared/models/widget.models';
|
||||||
import { DashboardUtilsService } from '@core/services/dashboard-utils.service';
|
import { DashboardUtilsService } from '@core/services/dashboard-utils.service';
|
||||||
import { deepClone, isEqual } from '@core/utils';
|
import { deepClone, isEqual } from '@core/utils';
|
||||||
import { UtilsService } from '@core/services/utils.service';
|
import { UtilsService } from '@core/services/utils.service';
|
||||||
@ -87,12 +94,13 @@ export class ItemBufferService {
|
|||||||
};
|
};
|
||||||
const originalColumns = this.getOriginalColumns(dashboard, sourceState, sourceLayout);
|
const originalColumns = this.getOriginalColumns(dashboard, sourceState, sourceLayout);
|
||||||
const originalSize = this.getOriginalSize(dashboard, sourceState, sourceLayout, widget);
|
const originalSize = this.getOriginalSize(dashboard, sourceState, sourceLayout, widget);
|
||||||
|
const datasources: Datasource[] = widget.type === widgetType.alarm ? [widget.config.alarmSource] : widget.config.datasources;
|
||||||
if (widget.config && dashboard.configuration
|
if (widget.config && dashboard.configuration
|
||||||
&& dashboard.configuration.entityAliases) {
|
&& dashboard.configuration.entityAliases) {
|
||||||
let entityAlias: EntityAlias;
|
let entityAlias: EntityAlias;
|
||||||
if (widget.config.datasources) {
|
if (datasources) {
|
||||||
for (let i = 0; i < widget.config.datasources.length; i++) {
|
for (let i = 0; i < datasources.length; i++) {
|
||||||
const datasource = widget.config.datasources[i];
|
const datasource = datasources[i];
|
||||||
if ((datasource.type === DatasourceType.entity || datasource.type === DatasourceType.entityCount) && datasource.entityAliasId) {
|
if ((datasource.type === DatasourceType.entity || datasource.type === DatasourceType.entityCount) && datasource.entityAliasId) {
|
||||||
entityAlias = dashboard.configuration.entityAliases[datasource.entityAliasId];
|
entityAlias = dashboard.configuration.entityAliases[datasource.entityAliasId];
|
||||||
if (entityAlias) {
|
if (entityAlias) {
|
||||||
@ -116,9 +124,9 @@ export class ItemBufferService {
|
|||||||
if (widget.config && dashboard.configuration
|
if (widget.config && dashboard.configuration
|
||||||
&& dashboard.configuration.filters) {
|
&& dashboard.configuration.filters) {
|
||||||
let filter: Filter;
|
let filter: Filter;
|
||||||
if (widget.config.datasources) {
|
if (datasources) {
|
||||||
for (let i = 0; i < widget.config.datasources.length; i++) {
|
for (let i = 0; i < datasources.length; i++) {
|
||||||
const datasource = widget.config.datasources[i];
|
const datasource = datasources[i];
|
||||||
if ((datasource.type === DatasourceType.entity || datasource.type === DatasourceType.entityCount) && datasource.filterId) {
|
if ((datasource.type === DatasourceType.entity || datasource.type === DatasourceType.entityCount) && datasource.filterId) {
|
||||||
filter = dashboard.configuration.filters[datasource.filterId];
|
filter = dashboard.configuration.filters[datasource.filterId];
|
||||||
if (filter) {
|
if (filter) {
|
||||||
@ -438,8 +446,12 @@ export class ItemBufferService {
|
|||||||
const datasourceIndex = Number(datasourceIndexStr);
|
const datasourceIndex = Number(datasourceIndexStr);
|
||||||
aliasInfo = aliasesInfo.datasourceAliases[datasourceIndex];
|
aliasInfo = aliasesInfo.datasourceAliases[datasourceIndex];
|
||||||
newAliasId = this.getEntityAliasId(entityAliases, aliasInfo);
|
newAliasId = this.getEntityAliasId(entityAliases, aliasInfo);
|
||||||
|
if (widget.type === widgetType.alarm) {
|
||||||
|
widget.config.alarmSource.entityAliasId = newAliasId;
|
||||||
|
} else {
|
||||||
widget.config.datasources[datasourceIndex].entityAliasId = newAliasId;
|
widget.config.datasources[datasourceIndex].entityAliasId = newAliasId;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
for (const targetDeviceAliasIndexStr of Object.keys(aliasesInfo.targetDeviceAliases)) {
|
for (const targetDeviceAliasIndexStr of Object.keys(aliasesInfo.targetDeviceAliases)) {
|
||||||
const targetDeviceAliasIndex = Number(targetDeviceAliasIndexStr);
|
const targetDeviceAliasIndex = Number(targetDeviceAliasIndexStr);
|
||||||
aliasInfo = aliasesInfo.targetDeviceAliases[targetDeviceAliasIndex];
|
aliasInfo = aliasesInfo.targetDeviceAliases[targetDeviceAliasIndex];
|
||||||
@ -457,8 +469,12 @@ export class ItemBufferService {
|
|||||||
const datasourceIndex = Number(datasourceIndexStr);
|
const datasourceIndex = Number(datasourceIndexStr);
|
||||||
filterInfo = filtersInfo.datasourceFilters[datasourceIndex];
|
filterInfo = filtersInfo.datasourceFilters[datasourceIndex];
|
||||||
newFilterId = this.getFilterId(filters, filterInfo);
|
newFilterId = this.getFilterId(filters, filterInfo);
|
||||||
|
if (widget.type === widgetType.alarm) {
|
||||||
|
widget.config.alarmSource.filterId = newFilterId;
|
||||||
|
} else {
|
||||||
widget.config.datasources[datasourceIndex].filterId = newFilterId;
|
widget.config.datasources[datasourceIndex].filterId = newFilterId;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return filters;
|
return filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user