Fixed an issue when the user could break the pagination settings validation by switching between the basic/advanced mode tabs in table-widgets

This commit is contained in:
Tarnavskiy 2025-04-23 17:55:51 +03:00
parent d6fb28ebd7
commit 49289da5a8
5 changed files with 23 additions and 15 deletions

View File

@ -392,10 +392,12 @@ 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 = Number.isInteger(this.settings.pageStepIncrement) && this.settings.pageStepIncrement > 0 ?
this.settings.pageStepIncrement : null;
let pageStepCount = Number.isInteger(this.settings.pageStepCount) && this.settings.pageStepCount > 0
&& this.settings.pageStepCount <= 100 ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

View File

@ -311,10 +311,12 @@ 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 = Number.isInteger(this.settings.pageStepIncrement) && this.settings.pageStepIncrement > 0 ?
this.settings.pageStepIncrement : null;
let pageStepCount = Number.isInteger(this.settings.pageStepCount) && this.settings.pageStepCount > 0
&& this.settings.pageStepCount <= 100 ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

View File

@ -207,10 +207,12 @@ 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 = Number.isInteger(this.settings.pageStepIncrement) && this.settings.pageStepIncrement > 0 ?
this.settings.pageStepIncrement : null;
let pageStepCount = Number.isInteger(this.settings.pageStepCount) && this.settings.pageStepCount > 0
&& this.settings.pageStepCount <= 100 ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}

View File

@ -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,8 +564,8 @@ 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 (Number.isInteger(pageStepCount) && pageStepCount > 0 && pageStepCount <= 100 &&
Number.isInteger(pageStepIncrement) && pageStepIncrement > 0) {
for (let i = 1; i <= pageStepCount; i++) {
pageSteps.push(pageStepIncrement * i);
}

View File

@ -352,10 +352,12 @@ 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 = Number.isInteger(this.settings.pageStepIncrement) && this.settings.pageStepIncrement > 0 ?
this.settings.pageStepIncrement : null;
let pageStepCount = Number.isInteger(this.settings.pageStepCount) && this.settings.pageStepCount > 0
&& this.settings.pageStepCount <= 100 ? this.settings.pageStepCount : null;
if (isDefined(pageSize) && isNumber(pageSize) && pageSize > 0) {
if (Number.isInteger(pageSize) && pageSize > 0) {
this.defaultPageSize = pageSize;
}