Browse Source

Merge pull request #12336 from vvlladd28/bug/scada-symbol/merge-setting-array

Fixed incorrect merging of default SCADA symbol settings with user-defined settings
pull/12347/head
Igor Kulikov 2 years ago
committed by GitHub
parent
commit
032de76596
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      ui-ngx/src/app/modules/home/components/widget/lib/scada/scada-symbol.models.ts
  2. 4
      ui-ngx/src/app/modules/home/components/widget/lib/settings/common/scada/scada-symbol-object-settings.component.ts

3
ui-ngx/src/app/modules/home/components/widget/lib/scada/scada-symbol.models.ts

@ -52,6 +52,7 @@ import {
isUndefined, isUndefined,
isUndefinedOrNull, isUndefinedOrNull,
mergeDeep, mergeDeep,
mergeDeepIgnoreArray,
parseFunction parseFunction
} from '@core/utils'; } from '@core/utils';
import { BehaviorSubject, forkJoin, Observable, Observer, of, Subject } from 'rxjs'; import { BehaviorSubject, forkJoin, Observable, Observer, of, Subject } from 'rxjs';
@ -564,7 +565,7 @@ export class ScadaSymbolObject {
const doc: XMLDocument = new DOMParser().parseFromString(this.svgContent, 'image/svg+xml'); const doc: XMLDocument = new DOMParser().parseFromString(this.svgContent, 'image/svg+xml');
this.metadata = parseScadaSymbolMetadataFromDom(doc); this.metadata = parseScadaSymbolMetadataFromDom(doc);
const defaults = defaultScadaSymbolObjectSettings(this.metadata); const defaults = defaultScadaSymbolObjectSettings(this.metadata);
this.settings = mergeDeep<ScadaSymbolObjectSettings>({} as ScadaSymbolObjectSettings, this.settings = mergeDeepIgnoreArray<ScadaSymbolObjectSettings>({} as ScadaSymbolObjectSettings,
defaults, this.inputSettings || {} as ScadaSymbolObjectSettings); defaults, this.inputSettings || {} as ScadaSymbolObjectSettings);
this.prepareMetadata(); this.prepareMetadata();
this.prepareSvgShape(doc); this.prepareSvgShape(doc);

4
ui-ngx/src/app/modules/home/components/widget/lib/settings/common/scada/scada-symbol-object-settings.component.ts

@ -48,7 +48,7 @@ import {
} from '@home/components/widget/lib/scada/scada-symbol.models'; } from '@home/components/widget/lib/scada/scada-symbol.models';
import { IAliasController } from '@core/api/widget-api.models'; import { IAliasController } from '@core/api/widget-api.models';
import { TargetDevice, widgetType } from '@shared/models/widget.models'; import { TargetDevice, widgetType } from '@shared/models/widget.models';
import { isDefinedAndNotNull, mergeDeep } from '@core/utils'; import { isDefinedAndNotNull, mergeDeepIgnoreArray } from '@core/utils';
import { import {
ScadaSymbolBehaviorGroup, ScadaSymbolBehaviorGroup,
ScadaSymbolPropertyRow, ScadaSymbolPropertyRow,
@ -288,7 +288,7 @@ export class ScadaSymbolObjectSettingsComponent implements OnInit, OnChanges, Co
private setupValue() { private setupValue() {
if (this.metadata) { if (this.metadata) {
const defaults = defaultScadaSymbolObjectSettings(this.metadata); const defaults = defaultScadaSymbolObjectSettings(this.metadata);
this.modelValue = mergeDeep<ScadaSymbolObjectSettings>(defaults, this.modelValue); this.modelValue = mergeDeepIgnoreArray<ScadaSymbolObjectSettings>(defaults, this.modelValue);
this.scadaSymbolObjectSettingsFormGroup.patchValue( this.scadaSymbolObjectSettingsFormGroup.patchValue(
this.modelValue, {emitEvent: false} this.modelValue, {emitEvent: false}
); );

Loading…
Cancel
Save