diff --git a/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/ResultSet/ResultSetConstraintAction.ts b/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/ResultSet/ResultSetConstraintAction.ts index 39ab27591b..be74c3e409 100644 --- a/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/ResultSet/ResultSetConstraintAction.ts +++ b/webapp/packages/plugin-data-viewer/src/DatabaseDataModel/Actions/ResultSet/ResultSetConstraintAction.ts @@ -59,24 +59,19 @@ export class ResultSetConstraintAction extends DatabaseDataAction constraint.attribute !== attribute); } - private reorderConstraints() { - if (!this.source.options) { - return; - } - - this.source.options.constraints = this.source.options.constraints - .map((constaint, idx) => ({ ...constaint, orderPosition: idx })); - } - private deleteEmptyConstraint(attribute: string) { const constraint = this.get(attribute); if (constraint && !isFilterConstraint(constraint) && !isOrderConstraint(constraint)) { this.deleteConstraint(attribute); - this.reorderConstraints(); } } + private getMaxOrderPosition() { + return Math.max(0, ...this.orderConstraints + .map(constraint => constraint.orderPosition !== undefined ? constraint.orderPosition + 1 : -1)); + } + get(attribute: string): SqlDataFilterConstraint | undefined { if (!this.source.options) { throw new Error('Options must be provided'); @@ -111,7 +106,7 @@ export class ResultSetConstraintAction extends DatabaseDataAction