Remove non positive integer constraint on Nav Menu Item (#18081)

To fit with position typed field logic + Ease favorite to nav menu item
migration (which have negative and float position)
This commit is contained in:
Etienne
2026-02-19 12:24:14 +01:00
committed by GitHub
parent 1a13258302
commit 9e54a8082c
7 changed files with 26 additions and 78 deletions
@@ -97,7 +97,7 @@ export class NavigationMenuItemEntity
@Column({ nullable: true, type: 'uuid' })
folderId: string | null;
@Column({ nullable: false })
@Column({ nullable: false, type: 'double precision' })
position: number;
@CreateDateColumn({ type: 'timestamptz' })
@@ -177,13 +177,12 @@ export class FlatNavigationMenuItemValidatorService {
if (
isDefined(flatNavigationMenuItem.position) &&
(!Number.isInteger(flatNavigationMenuItem.position) ||
flatNavigationMenuItem.position < 0)
!Number.isFinite(flatNavigationMenuItem.position)
) {
validationResult.errors.push({
code: NavigationMenuItemExceptionCode.INVALID_NAVIGATION_MENU_ITEM_INPUT,
message: t`Position must be a non-negative integer`,
userFriendlyMessage: msg`Position must be a non-negative integer`,
message: t`Position must be a finite number`,
userFriendlyMessage: msg`Position must be a finite number`,
});
}
@@ -307,14 +306,11 @@ export class FlatNavigationMenuItemValidatorService {
const positionUpdate = flatEntityUpdate.position;
if (
isDefined(positionUpdate) &&
(!Number.isInteger(positionUpdate) || positionUpdate < 0)
) {
if (isDefined(positionUpdate) && !Number.isFinite(positionUpdate)) {
validationResult.errors.push({
code: NavigationMenuItemExceptionCode.INVALID_NAVIGATION_MENU_ITEM_INPUT,
message: t`Position must be a non-negative integer`,
userFriendlyMessage: msg`Position must be a non-negative integer`,
message: t`Position must be a finite number`,
userFriendlyMessage: msg`Position must be a finite number`,
});
}