Commit aabf5c792afe9e71f3aecc878339a0236dfe0caf

Authored by Vladyslav_Prykhodko
1 parent 593f95a7

UI: Fixed multiple datasource processing data in map widgets

... ... @@ -19,7 +19,8 @@ import {
19 19 createLabelFromDatasource,
20 20 hashCode,
21 21 isDefined,
22   - isDefinedAndNotNull, isFunction,
  22 + isDefinedAndNotNull,
  23 + isFunction,
23 24 isNumber,
24 25 isUndefined,
25 26 padValue
... ... @@ -30,7 +31,7 @@ import { Datasource, DatasourceData } from '@shared/models/widget.models';
30 31 import _ from 'lodash';
31 32 import { mapProviderSchema, providerSets } from '@home/components/widget/lib/maps/schemes';
32 33 import { addCondition, mergeSchemes } from '@core/schema-utils';
33   -import L, {Projection} from "leaflet";
  34 +import L from 'leaflet';
34 35
35 36 export function getProviderSchema(mapProvider: MapProviders, ignoreImageMap = false) {
36 37 const providerSchema = _.cloneDeep(mapProviderSchema);
... ... @@ -318,22 +319,24 @@ export const parseWithTranslation = {
318 319 };
319 320
320 321 export function parseData(input: DatasourceData[]): FormattedData[] {
321   - return _(input).groupBy(el => el?.datasource?.entityName)
  322 + return _(input).groupBy(el => el?.datasource.entityId + el?.datasource.entityType)
322 323 .values().value().map((entityArray, i) => {
323 324 const obj: FormattedData = {
324 325 entityName: entityArray[0]?.datasource?.entityName,
325   - entityId: entityArray[0]?.datasource?.entityId,
326   - entityType: entityArray[0]?.datasource?.entityType,
327   - $datasource: entityArray[0]?.datasource,
  326 + entityId: entityArray[0].datasource.entityId,
  327 + entityType: entityArray[0].datasource.entityType,
  328 + $datasource: entityArray[0].datasource,
328 329 dsIndex: i,
329 330 deviceType: null
330 331 };
331 332 entityArray.filter(el => el.data.length).forEach(el => {
332   - const indexDate = el?.data?.length ? el.data.length - 1 : 0;
333   - obj[el?.dataKey?.label] = el?.data[indexDate][1];
334   - obj[el?.dataKey?.label + '|ts'] = el?.data[indexDate][0];
335   - if (el?.dataKey?.label === 'type') {
336   - obj.deviceType = el?.data[indexDate][1];
  333 + const indexDate = el.data.length ? el.data.length - 1 : 0;
  334 + if (!obj.hasOwnProperty(el.dataKey.label) || el.data[indexDate][1] !== '') {
  335 + obj[el.dataKey.label] = el.data[indexDate][1];
  336 + obj[el.dataKey.label + '|ts'] = el.data[indexDate][0];
  337 + if (el.dataKey.label === 'type') {
  338 + obj.deviceType = el.data[indexDate][1];
  339 + }
337 340 }
338 341 });
339 342 return obj;
... ...