UI: Fix pageLink without pagination. Minor fixes
This commit is contained in:
parent
2ca2b1b1f2
commit
4f3e29b433
4
ui-ngx/package-lock.json
generated
4
ui-ngx/package-lock.json
generated
@ -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": {
|
||||||
|
|||||||
@ -337,6 +337,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private initDataSubscription(): Observable<any> {
|
private initDataSubscription(): Observable<any> {
|
||||||
|
this.notifyDataLoading();
|
||||||
const initDataSubscriptionSubject = new ReplaySubject(1);
|
const initDataSubscriptionSubject = new ReplaySubject(1);
|
||||||
this.loadStDiff().subscribe(() => {
|
this.loadStDiff().subscribe(() => {
|
||||||
if (!this.ctx.aliasController) {
|
if (!this.ctx.aliasController) {
|
||||||
@ -431,6 +432,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
});
|
});
|
||||||
this.configureLoadedData();
|
this.configureLoadedData();
|
||||||
this.hasResolvedData = this.datasources.length > 0;
|
this.hasResolvedData = this.datasources.length > 0;
|
||||||
|
this.updateDataTimewindow();
|
||||||
this.notifyDataLoaded();
|
this.notifyDataLoaded();
|
||||||
this.onDataUpdated(true);
|
this.onDataUpdated(true);
|
||||||
})
|
})
|
||||||
@ -731,6 +733,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
if (this.type === widgetType.alarm) {
|
if (this.type === widgetType.alarm) {
|
||||||
this.updateAlarmDataSubscription();
|
this.updateAlarmDataSubscription();
|
||||||
} else {
|
} else {
|
||||||
|
this.notifyDataLoading();
|
||||||
this.dataSubscribe();
|
this.dataSubscribe();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -831,13 +834,21 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private dataSubscribe() {
|
private updateDataTimewindow() {
|
||||||
if (!this.hasDataPageLink) {
|
if (!this.hasDataPageLink) {
|
||||||
if (this.type === widgetType.timeseries && this.timeWindowConfig) {
|
if (this.type === widgetType.timeseries && this.timeWindowConfig) {
|
||||||
this.updateRealtimeSubscription();
|
this.updateRealtimeSubscription();
|
||||||
if (this.comparisonEnabled) {
|
if (this.comparisonEnabled) {
|
||||||
this.updateSubscriptionForComparison();
|
this.updateSubscriptionForComparison();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private dataSubscribe() {
|
||||||
|
if (!this.hasDataPageLink) {
|
||||||
|
if (this.type === widgetType.timeseries && this.timeWindowConfig) {
|
||||||
|
this.updateDataTimewindow();
|
||||||
if (this.subscriptionTimewindow.fixedWindow) {
|
if (this.subscriptionTimewindow.fixedWindow) {
|
||||||
this.onDataUpdated();
|
this.onDataUpdated();
|
||||||
}
|
}
|
||||||
@ -1025,6 +1036,11 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private notifyDataLoading() {
|
||||||
|
this.loadingData = true;
|
||||||
|
this.callbacks.dataLoading(this);
|
||||||
|
}
|
||||||
|
|
||||||
private notifyDataLoaded() {
|
private notifyDataLoaded() {
|
||||||
this.loadingData = false;
|
this.loadingData = false;
|
||||||
this.callbacks.dataLoading(this);
|
this.callbacks.dataLoading(this);
|
||||||
@ -1268,6 +1284,7 @@ export class WidgetSubscription implements IWidgetSubscription {
|
|||||||
if (this.caulculateLegendData) {
|
if (this.caulculateLegendData) {
|
||||||
this.updateLegend(index, data.data, detectChanges);
|
this.updateLegend(index, data.data, detectChanges);
|
||||||
}
|
}
|
||||||
|
this.notifyDataLoaded();
|
||||||
this.onDataUpdated(detectChanges);
|
this.onDataUpdated(detectChanges);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -330,7 +330,7 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit,
|
|||||||
this.defaultPageSize = pageSize;
|
this.defaultPageSize = pageSize;
|
||||||
}
|
}
|
||||||
this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3];
|
this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3];
|
||||||
this.pageLink.pageSize = this.displayPagination ? this.defaultPageSize : Number.POSITIVE_INFINITY;
|
this.pageLink.pageSize = this.displayPagination ? this.defaultPageSize : 1024;
|
||||||
|
|
||||||
this.pageLink.searchPropagatedAlarms = isDefined(this.widgetConfig.searchPropagatedAlarms)
|
this.pageLink.searchPropagatedAlarms = isDefined(this.widgetConfig.searchPropagatedAlarms)
|
||||||
? this.widgetConfig.searchPropagatedAlarms : true;
|
? this.widgetConfig.searchPropagatedAlarms : true;
|
||||||
@ -535,10 +535,15 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit,
|
|||||||
} else {
|
} else {
|
||||||
this.pageLink.page = 0;
|
this.pageLink.page = 0;
|
||||||
}
|
}
|
||||||
|
const key = findEntityKeyByColumnDef(this.sort.active, this.columns);
|
||||||
|
if (key) {
|
||||||
this.pageLink.sortOrder = {
|
this.pageLink.sortOrder = {
|
||||||
key: findEntityKeyByColumnDef(this.sort.active, this.columns),
|
key,
|
||||||
direction: Direction[this.sort.direction.toUpperCase()]
|
direction: Direction[this.sort.direction.toUpperCase()]
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
this.pageLink.sortOrder = null;
|
||||||
|
}
|
||||||
const sortOrderLabel = fromEntityColumnDef(this.sort.active, this.columns);
|
const sortOrderLabel = fromEntityColumnDef(this.sort.active, this.columns);
|
||||||
const keyFilters: KeyFilter[] = null; // TODO:
|
const keyFilters: KeyFilter[] = null; // TODO:
|
||||||
this.alarmsDatasource.loadAlarms(this.pageLink, sortOrderLabel, keyFilters);
|
this.alarmsDatasource.loadAlarms(this.pageLink, sortOrderLabel, keyFilters);
|
||||||
|
|||||||
@ -240,7 +240,7 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni
|
|||||||
this.defaultPageSize = pageSize;
|
this.defaultPageSize = pageSize;
|
||||||
}
|
}
|
||||||
this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3];
|
this.pageSizeOptions = [this.defaultPageSize, this.defaultPageSize * 2, this.defaultPageSize * 3];
|
||||||
this.pageLink.pageSize = this.displayPagination ? this.defaultPageSize : Number.POSITIVE_INFINITY;
|
this.pageLink.pageSize = this.displayPagination ? this.defaultPageSize : 1024;
|
||||||
|
|
||||||
const cssString = constructTableCssString(this.widgetConfig);
|
const cssString = constructTableCssString(this.widgetConfig);
|
||||||
const cssParser = new cssjs();
|
const cssParser = new cssjs();
|
||||||
@ -460,10 +460,15 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni
|
|||||||
} else {
|
} else {
|
||||||
this.pageLink.page = 0;
|
this.pageLink.page = 0;
|
||||||
}
|
}
|
||||||
|
const key = findEntityKeyByColumnDef(this.sort.active, this.columns);
|
||||||
|
if (key) {
|
||||||
this.pageLink.sortOrder = {
|
this.pageLink.sortOrder = {
|
||||||
key: findEntityKeyByColumnDef(this.sort.active, this.columns),
|
key,
|
||||||
direction: Direction[this.sort.direction.toUpperCase()]
|
direction: Direction[this.sort.direction.toUpperCase()]
|
||||||
};
|
};
|
||||||
|
} else {
|
||||||
|
this.pageLink.sortOrder = null;
|
||||||
|
}
|
||||||
const sortOrderLabel = fromEntityColumnDef(this.sort.active, this.columns);
|
const sortOrderLabel = fromEntityColumnDef(this.sort.active, this.columns);
|
||||||
const keyFilters: KeyFilter[] = null; // TODO:
|
const keyFilters: KeyFilter[] = null; // TODO:
|
||||||
this.entityDatasource.loadEntities(this.pageLink, sortOrderLabel, keyFilters);
|
this.entityDatasource.loadEntities(this.pageLink, sortOrderLabel, keyFilters);
|
||||||
|
|||||||
@ -159,7 +159,7 @@ function parseTemplate(template: string, data: { $datasource?: Datasource, [key:
|
|||||||
}
|
}
|
||||||
template = createLabelFromDatasource(data.$datasource, template);
|
template = createLabelFromDatasource(data.$datasource, template);
|
||||||
|
|
||||||
let match = varsRegex.exec(template);
|
let match = /\${([^}]*)}/g.exec(template);
|
||||||
while (match !== null) {
|
while (match !== null) {
|
||||||
const variable = match[0];
|
const variable = match[0];
|
||||||
let label = match[1];
|
let label = match[1];
|
||||||
@ -186,7 +186,7 @@ function parseTemplate(template: string, data: { $datasource?: Datasource, [key:
|
|||||||
textValue = value;
|
textValue = value;
|
||||||
}
|
}
|
||||||
template = template.split(variable).join(textValue);
|
template = template.split(variable).join(textValue);
|
||||||
match = varsRegex.exec(template);
|
match = /\${([^}]*)}/g.exec(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
let actionTags: string;
|
let actionTags: string;
|
||||||
|
|||||||
@ -96,7 +96,10 @@ export function entityDataSortOrderFromString(strSortOrder: string, columns: Ent
|
|||||||
if (!property && !property.length) {
|
if (!property && !property.length) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const column = findColumnByLabel(property, columns);
|
let column = findColumnByLabel(property, columns);
|
||||||
|
if (!column) {
|
||||||
|
column = findColumnByName(property, columns);
|
||||||
|
}
|
||||||
if (column && column.entityKey) {
|
if (column && column.entityKey) {
|
||||||
return {key: column.entityKey, direction};
|
return {key: column.entityKey, direction};
|
||||||
}
|
}
|
||||||
@ -113,13 +116,22 @@ export function findColumnByEntityKey(key: EntityKey, columns: EntityColumn[]):
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function findEntityKeyByColumnDef(def: string, columns: EntityColumn[]): EntityKey {
|
export function findEntityKeyByColumnDef(def: string, columns: EntityColumn[]): EntityKey {
|
||||||
return findColumnByDef(def, columns).entityKey;
|
if (def) {
|
||||||
|
const column = findColumnByDef(def, columns);
|
||||||
|
return column ? column.entityKey : null;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function findColumn(searchProperty: string, searchValue: string, columns: EntityColumn[]): EntityColumn {
|
export function findColumn(searchProperty: string, searchValue: string, columns: EntityColumn[]): EntityColumn {
|
||||||
return columns.find(theColumn => theColumn[searchProperty] === searchValue);
|
return columns.find(theColumn => theColumn[searchProperty] === searchValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function findColumnByName(name: string, columns: EntityColumn[]): EntityColumn {
|
||||||
|
return findColumn('name', name, columns);
|
||||||
|
}
|
||||||
|
|
||||||
export function findColumnByLabel(label: string, columns: EntityColumn[]): EntityColumn {
|
export function findColumnByLabel(label: string, columns: EntityColumn[]): EntityColumn {
|
||||||
let column: EntityColumn;
|
let column: EntityColumn;
|
||||||
const alarmColumns = columns.filter(c => c.type === DataKeyType.alarm);
|
const alarmColumns = columns.filter(c => c.type === DataKeyType.alarm);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user