Browse Source

Merge pull request #13253 from Terny22/widget-settings-broken-validation

Fixed an issue with broken pagination settings validation in table-widgets
pull/13306/head
Igor Kulikov 1 year ago
committed by GitHub
parent
commit
e3c98ab5ef
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 9
      ui-ngx/src/app/modules/home/components/widget/lib/alarm/alarms-table-widget.component.ts
  2. 10
      ui-ngx/src/app/modules/home/components/widget/lib/entity/entities-table-widget.component.ts
  3. 10
      ui-ngx/src/app/modules/home/components/widget/lib/rpc/persistent-table.component.ts
  4. 13
      ui-ngx/src/app/modules/home/components/widget/lib/table-widget.models.ts
  5. 9
      ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts

9
ui-ngx/src/app/modules/home/components/widget/lib/alarm/alarms-table-widget.component.ts

@ -43,7 +43,6 @@ import {
isDefined,
isDefinedAndNotNull,
isNotEmptyStr,
isNumber,
isObject,
isUndefined
} from '@core/utils';
@ -77,6 +76,8 @@ import {
getHeaderTitle,
getRowStyleInfo,
getTableCellButtonActions,
isValidPageStepCount,
isValidPageStepIncrement,
noDataMessage,
prepareTableCellButtonActions,
RowStyleInfo,
@ -392,10 +393,10 @@ export class AlarmsTableWidgetComponent extends PageComponent implements OnInit,
this.rowStylesInfo = getRowStyleInfo(this.ctx, this.settings, 'alarm, ctx');
const pageSize = this.settings.defaultPageSize;
let pageStepIncrement = this.settings.pageStepIncrement;
let pageStepCount = this.settings.pageStepCount;
let pageStepIncrement = isValidPageStepIncrement(this.settings.pageStepIncrement) ? this.settings.pageStepIncrement : null;
let pageStepCount = isValidPageStepCount(this.settings.pageStepCount) ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

10
ui-ngx/src/app/modules/home/components/widget/lib/entity/entities-table-widget.component.ts

@ -42,7 +42,7 @@ import {
import { IWidgetSubscription } from '@core/api/widget-api.models';
import { UtilsService } from '@core/services/utils.service';
import { TranslateService } from '@ngx-translate/core';
import { deepClone, hashCode, isDefined, isDefinedAndNotNull, isNumber, isObject, isUndefined } from '@core/utils';
import { deepClone, hashCode, isDefined, isDefinedAndNotNull, isObject, isUndefined } from '@core/utils';
import cssjs from '@core/css/css';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { DataKeyType } from '@shared/models/telemetry/telemetry.models';
@ -75,6 +75,8 @@ import {
getHeaderTitle,
getRowStyleInfo,
getTableCellButtonActions,
isValidPageStepCount,
isValidPageStepIncrement,
noDataMessage,
prepareTableCellButtonActions,
RowStyleInfo,
@ -311,10 +313,10 @@ export class EntitiesTableWidgetComponent extends PageComponent implements OnIni
this.rowStylesInfo = getRowStyleInfo(this.ctx, this.settings, 'entity, ctx');
const pageSize = this.settings.defaultPageSize;
let pageStepIncrement = this.settings.pageStepIncrement;
let pageStepCount = this.settings.pageStepCount;
let pageStepIncrement = isValidPageStepIncrement(this.settings.pageStepIncrement) ? this.settings.pageStepIncrement : null;
let pageStepCount = isValidPageStepCount(this.settings.pageStepCount) ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

10
ui-ngx/src/app/modules/home/components/widget/lib/rpc/persistent-table.component.ts

@ -36,6 +36,8 @@ import { BehaviorSubject, merge, Observable, of, ReplaySubject, Subject, throwEr
import { catchError, map, tap } from 'rxjs/operators';
import {
constructTableCssString,
isValidPageStepCount,
isValidPageStepIncrement,
noDataMessage,
TableCellButtonActionDescriptor,
TableWidgetSettings
@ -43,7 +45,7 @@ import {
import cssjs from '@core/css/css';
import { UtilsService } from '@core/services/utils.service';
import { TranslateService } from '@ngx-translate/core';
import { hashCode, isDefined, isDefinedAndNotNull, isNumber, parseHttpErrorMessage } from '@core/utils';
import { hashCode, isDefined, isDefinedAndNotNull, parseHttpErrorMessage } from '@core/utils';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { emptyPageData, PageData } from '@shared/models/page/page-data';
import {
@ -207,10 +209,10 @@ export class PersistentTableComponent extends PageComponent implements OnInit, O
this.displayedColumns = [...this.displayTableColumns];
const pageSize = this.settings.defaultPageSize;
let pageStepIncrement = this.settings.pageStepIncrement;
let pageStepCount = this.settings.pageStepCount;
let pageStepIncrement = isValidPageStepIncrement(this.settings.pageStepIncrement) ? this.settings.pageStepIncrement : null;
let pageStepCount = isValidPageStepCount(this.settings.pageStepCount) ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

13
ui-ngx/src/app/modules/home/components/widget/lib/table-widget.models.ts

@ -16,7 +16,7 @@
import { EntityId } from '@shared/models/id/entity-id';
import { DataKey, FormattedData, WidgetActionDescriptor, WidgetConfig } from '@shared/models/widget.models';
import { getDescendantProp, isDefined, isDefinedAndNotNull, isNotEmptyStr } from '@core/utils';
import { getDescendantProp, isDefined, isNotEmptyStr } from '@core/utils';
import { AlarmDataInfo, alarmFields } from '@shared/models/alarm.models';
import tinycolor from 'tinycolor2';
import { Direction } from '@shared/models/page/sort-order';
@ -564,11 +564,18 @@ export function getHeaderTitle(dataKey: DataKey, keySettings: TableWidgetDataKey
export function buildPageStepSizeValues(pageStepCount: number, pageStepIncrement: number): Array<number> {
const pageSteps: Array<number> = [];
if (isDefinedAndNotNull(pageStepCount) && pageStepCount > 0 && pageStepCount <= 100 &&
isDefinedAndNotNull(pageStepIncrement) && pageStepIncrement > 0) {
if (isValidPageStepCount(pageStepCount) && isValidPageStepIncrement(pageStepIncrement)) {
for (let i = 1; i <= pageStepCount; i++) {
pageSteps.push(pageStepIncrement * i);
}
}
return pageSteps;
}
export function isValidPageStepIncrement(value: number): boolean {
return Number.isInteger(value) && value > 0;
}
export function isValidPageStepCount(value: number): boolean {
return Number.isInteger(value) && value > 0 && value <= 100;
}

9
ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts

@ -49,7 +49,6 @@ import {
hashCode,
isDefined,
isDefinedAndNotNull,
isNumber,
isObject,
isUndefined
} from '@core/utils';
@ -85,6 +84,8 @@ import {
getColumnSelectionAvailability,
getRowStyleInfo,
getTableCellButtonActions,
isValidPageStepCount,
isValidPageStepIncrement,
noDataMessage,
prepareTableCellButtonActions,
RowStyleInfo,
@ -352,10 +353,10 @@ export class TimeseriesTableWidgetComponent extends PageComponent implements OnI
this.rowStylesInfo = getRowStyleInfo(this.ctx, this.settings, 'rowData, ctx');
const pageSize = this.settings.defaultPageSize;
let pageStepIncrement = this.settings.pageStepIncrement;
let pageStepCount = this.settings.pageStepCount;
let pageStepIncrement = isValidPageStepIncrement(this.settings.pageStepIncrement) ? this.settings.pageStepIncrement : null;
let pageStepCount = isValidPageStepCount(this.settings.pageStepCount) ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

Loading…
Cancel
Save