Browse Source

UI: Fix unresolved alias processing

pull/3218/head
Igor Kulikov 6 years ago
parent
commit
9b76d785b1
  1. 4
      ui-ngx/package-lock.json
  2. 4
      ui-ngx/src/app/core/api/entity-data-subscription.ts
  3. 48
      ui-ngx/src/app/core/api/entity-data.service.ts
  4. 12
      ui-ngx/src/app/core/api/widget-subscription.ts
  5. 4
      ui-ngx/src/app/modules/home/components/widget/lib/maps/schemes.ts

4
ui-ngx/package-lock.json

@ -8997,10 +8997,10 @@
"integrity": "sha512-4O3GWAYJaauMCILm07weko2rHA8a4kjn7+8Lg4s1d7SxwS/3IpkVD/GljbRrIJ1c1W/XGJ3GbuK7RyYZEJChhw==" "integrity": "sha512-4O3GWAYJaauMCILm07weko2rHA8a4kjn7+8Lg4s1d7SxwS/3IpkVD/GljbRrIJ1c1W/XGJ3GbuK7RyYZEJChhw=="
}, },
"ngx-flowchart": { "ngx-flowchart": {
"version": "git://github.com/thingsboard/ngx-flowchart.git#a4157b0eef2eb3646ef920447c7b06b39d54f87f", "version": "git://github.com/thingsboard/ngx-flowchart.git#7a02f4748b5e7821a883c903107af5f20415d026",
"from": "git://github.com/thingsboard/ngx-flowchart.git#master", "from": "git://github.com/thingsboard/ngx-flowchart.git#master",
"requires": { "requires": {
"tslib": "^1.10.0" "tslib": "^1.13.0"
}, },
"dependencies": { "dependencies": {
"tslib": { "tslib": {

4
ui-ngx/src/app/core/api/entity-data-subscription.ts

@ -74,6 +74,7 @@ export interface EntityDataSubscriptionOptions {
export class EntityDataSubscription { export class EntityDataSubscription {
private entityDataSubscriptionOptions = this.listener.subscriptionOptions;
private datasourceType: DatasourceType = this.entityDataSubscriptionOptions.datasourceType; private datasourceType: DatasourceType = this.entityDataSubscriptionOptions.datasourceType;
private history: boolean; private history: boolean;
private realtime: boolean; private realtime: boolean;
@ -103,8 +104,7 @@ export class EntityDataSubscription {
private dataResolved = false; private dataResolved = false;
private started = false; private started = false;
constructor(public entityDataSubscriptionOptions: EntityDataSubscriptionOptions, constructor(private listener: EntityDataListener,
private listener: EntityDataListener,
private telemetryService: TelemetryService, private telemetryService: TelemetryService,
private utils: UtilsService) { private utils: UtilsService) {
this.initializeSubscription(); this.initializeSubscription();

48
ui-ngx/src/app/core/api/entity-data.service.ts

@ -17,7 +17,7 @@
import { DataSetHolder, Datasource, DatasourceType, widgetType } from '@shared/models/widget.models'; import { DataSetHolder, Datasource, DatasourceType, widgetType } from '@shared/models/widget.models';
import { SubscriptionTimewindow } from '@shared/models/time/time.models'; import { SubscriptionTimewindow } from '@shared/models/time/time.models';
import { EntityData, EntityDataPageLink, KeyFilter } from '@shared/models/query/query.models'; import { EntityData, EntityDataPageLink, KeyFilter } from '@shared/models/query/query.models';
import { PageData } from '@shared/models/page/page-data'; import { emptyPageData, PageData } from '@shared/models/page/page-data';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { TelemetryWebsocketService } from '@core/ws/telemetry-websocket.service'; import { TelemetryWebsocketService } from '@core/ws/telemetry-websocket.service';
import { UtilsService } from '@core/services/utils.service'; import { UtilsService } from '@core/services/utils.service';
@ -41,6 +41,7 @@ export interface EntityDataListener {
initialPageDataChanged?: (nextPageData: PageData<EntityData>) => void; initialPageDataChanged?: (nextPageData: PageData<EntityData>) => void;
updateRealtimeSubscription?: () => SubscriptionTimewindow; updateRealtimeSubscription?: () => SubscriptionTimewindow;
setRealtimeSubscription?: (subscriptionTimewindow: SubscriptionTimewindow) => void; setRealtimeSubscription?: (subscriptionTimewindow: SubscriptionTimewindow) => void;
subscriptionOptions?: EntityDataSubscriptionOptions;
subscription?: EntityDataSubscription; subscription?: EntityDataSubscription;
} }
@ -61,19 +62,24 @@ export class EntityDataService {
public prepareSubscription(listener: EntityDataListener): Observable<EntityDataLoadResult> { public prepareSubscription(listener: EntityDataListener): Observable<EntityDataLoadResult> {
const datasource = listener.configDatasource; const datasource = listener.configDatasource;
listener.subscriptionOptions = this.createSubscriptionOptions(
datasource,
listener.subscriptionType,
datasource.pageLink,
datasource.keyFilters,
null,
false);
if (datasource.type === DatasourceType.entity && (!datasource.entityFilter || !datasource.pageLink)) { if (datasource.type === DatasourceType.entity && (!datasource.entityFilter || !datasource.pageLink)) {
return of(null); return of(null);
} }
listener.subscription = this.createSubscription(listener, listener.subscription = new EntityDataSubscription(listener, this.telemetryService, this.utils);
datasource.pageLink, datasource.keyFilters, null,
false);
return listener.subscription.subscribe(); return listener.subscription.subscribe();
} }
public startSubscription(listener: EntityDataListener) { public startSubscription(listener: EntityDataListener) {
if (listener.subscription) { if (listener.subscription) {
if (listener.subscriptionType === widgetType.timeseries) { if (listener.subscriptionType === widgetType.timeseries) {
listener.subscription.entityDataSubscriptionOptions.subscriptionTimewindow = deepClone(listener.subscriptionTimewindow); listener.subscriptionOptions.subscriptionTimewindow = deepClone(listener.subscriptionTimewindow);
} }
listener.subscription.start(); listener.subscription.start();
} }
@ -83,13 +89,21 @@ export class EntityDataService {
pageLink: EntityDataPageLink, pageLink: EntityDataPageLink,
keyFilters: KeyFilter[]): Observable<EntityDataLoadResult> { keyFilters: KeyFilter[]): Observable<EntityDataLoadResult> {
const datasource = listener.configDatasource; const datasource = listener.configDatasource;
listener.subscriptionOptions = this.createSubscriptionOptions(
datasource,
listener.subscriptionType,
pageLink,
datasource.keyFilters,
keyFilters,
true);
if (datasource.type === DatasourceType.entity && (!datasource.entityFilter || !pageLink)) { if (datasource.type === DatasourceType.entity && (!datasource.entityFilter || !pageLink)) {
listener.dataLoaded(emptyPageData<EntityData>(), [],
listener.configDatasourceIndex, listener.subscriptionOptions.pageLink);
return of(null); return of(null);
} }
listener.subscription = this.createSubscription(listener, listener.subscription = new EntityDataSubscription(listener, this.telemetryService, this.utils);
pageLink, datasource.keyFilters, keyFilters,true);
if (listener.subscriptionType === widgetType.timeseries) { if (listener.subscriptionType === widgetType.timeseries) {
listener.subscription.entityDataSubscriptionOptions.subscriptionTimewindow = deepClone(listener.subscriptionTimewindow); listener.subscriptionOptions.subscriptionTimewindow = deepClone(listener.subscriptionTimewindow);
} }
return listener.subscription.subscribe(); return listener.subscription.subscribe();
} }
@ -100,12 +114,12 @@ export class EntityDataService {
} }
} }
private createSubscription(listener: EntityDataListener, private createSubscriptionOptions(datasource: Datasource,
pageLink: EntityDataPageLink, subscriptionType: widgetType,
keyFilters: KeyFilter[], pageLink: EntityDataPageLink,
additionalKeyFilters: KeyFilter[], keyFilters: KeyFilter[],
isPaginatedDataSubscription: boolean): EntityDataSubscription { additionalKeyFilters: KeyFilter[],
const datasource = listener.configDatasource; isPaginatedDataSubscription: boolean): EntityDataSubscriptionOptions {
const subscriptionDataKeys: Array<SubscriptionDataKey> = []; const subscriptionDataKeys: Array<SubscriptionDataKey> = [];
datasource.dataKeys.forEach((dataKey) => { datasource.dataKeys.forEach((dataKey) => {
const subscriptionDataKey: SubscriptionDataKey = { const subscriptionDataKey: SubscriptionDataKey = {
@ -119,7 +133,7 @@ export class EntityDataService {
const entityDataSubscriptionOptions: EntityDataSubscriptionOptions = { const entityDataSubscriptionOptions: EntityDataSubscriptionOptions = {
datasourceType: datasource.type, datasourceType: datasource.type,
dataKeys: subscriptionDataKeys, dataKeys: subscriptionDataKeys,
type: listener.subscriptionType type: subscriptionType
}; };
if (entityDataSubscriptionOptions.datasourceType === DatasourceType.entity) { if (entityDataSubscriptionOptions.datasourceType === DatasourceType.entity) {
entityDataSubscriptionOptions.entityFilter = datasource.entityFilter; entityDataSubscriptionOptions.entityFilter = datasource.entityFilter;
@ -128,8 +142,6 @@ export class EntityDataService {
entityDataSubscriptionOptions.additionalKeyFilters = additionalKeyFilters; entityDataSubscriptionOptions.additionalKeyFilters = additionalKeyFilters;
} }
entityDataSubscriptionOptions.isPaginatedDataSubscription = isPaginatedDataSubscription; entityDataSubscriptionOptions.isPaginatedDataSubscription = isPaginatedDataSubscription;
return new EntityDataSubscription(entityDataSubscriptionOptions, return entityDataSubscriptionOptions;
listener, this.telemetryService, this.utils);
} }
} }

12
ui-ngx/src/app/core/api/widget-subscription.ts

@ -735,8 +735,12 @@ export class WidgetSubscription implements IWidgetSubscription {
if (this.type === widgetType.alarm) { if (this.type === widgetType.alarm) {
this.updateAlarmDataSubscription(); this.updateAlarmDataSubscription();
} else { } else {
this.notifyDataLoading(); if (this.hasDataPageLink) {
this.dataSubscribe(); this.updateDataSubscriptions();
} else {
this.notifyDataLoading();
this.dataSubscribe();
}
} }
} }
} }
@ -1017,8 +1021,8 @@ export class WidgetSubscription implements IWidgetSubscription {
for (let datasourceIndex = 0; datasourceIndex < this.entityDataListeners.length; datasourceIndex++) { for (let datasourceIndex = 0; datasourceIndex < this.entityDataListeners.length; datasourceIndex++) {
const entityDataListener = this.entityDataListeners[datasourceIndex]; const entityDataListener = this.entityDataListeners[datasourceIndex];
if (entityDataListener) { if (entityDataListener) {
const pageLink = entityDataListener.subscription.entityDataSubscriptionOptions.pageLink; const pageLink = entityDataListener.subscriptionOptions.pageLink;
const keyFilters = entityDataListener.subscription.entityDataSubscriptionOptions.additionalKeyFilters; const keyFilters = entityDataListener.subscriptionOptions.additionalKeyFilters;
this.subscribeForPaginatedData(datasourceIndex, pageLink, keyFilters); this.subscribeForPaginatedData(datasourceIndex, pageLink, keyFilters);
} }
} }

4
ui-ngx/src/app/modules/home/components/widget/lib/maps/schemes.ts

@ -14,8 +14,6 @@
/// limitations under the License. /// limitations under the License.
/// ///
import { DEFAULT_MAP_PAGE_SIZE } from '@home/components/widget/lib/maps/map-models';
export const googleMapSettingsSchema = export const googleMapSettingsSchema =
{ {
schema: { schema: {
@ -247,7 +245,7 @@ export const commonMapSettingsSchema =
mapPageSize: { mapPageSize: {
title: 'Map page size load entities', title: 'Map page size load entities',
type: 'number', type: 'number',
default: DEFAULT_MAP_PAGE_SIZE default: 16384
}, },
defaultCenterPosition: { defaultCenterPosition: {
title: 'Default map center position (0,0)', title: 'Default map center position (0,0)',

Loading…
Cancel
Save