diff --git a/backend/src/models/entities/syspreference.entity.ts b/backend/src/models/entities/syspreference.entity.ts index 44dd11c..cf8c12f 100644 --- a/backend/src/models/entities/syspreference.entity.ts +++ b/backend/src/models/entities/syspreference.entity.ts @@ -4,7 +4,7 @@ import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class ESysPreferenceBackend extends ESysPreference { @PrimaryGeneratedColumn("uuid") - override id: string; + override id?: string; @Index() @Column({ nullable: false, unique: true }) diff --git a/backend/src/models/entities/usrpreference.entity.ts b/backend/src/models/entities/usrpreference.entity.ts index 502d319..1cd6419 100644 --- a/backend/src/models/entities/usrpreference.entity.ts +++ b/backend/src/models/entities/usrpreference.entity.ts @@ -3,7 +3,7 @@ import { Column, Index, PrimaryGeneratedColumn } from 'typeorm'; export class EUsrPreferenceBackend extends EUsrPreference { @PrimaryGeneratedColumn("uuid") - override id: string; + override id?: string; @Index() @Column({ nullable: false, unique: true }) diff --git a/frontend/src/app/routes/settings/syspref/syspref-option/settings-syspref-option.component.ts b/frontend/src/app/routes/settings/syspref/syspref-option/settings-syspref-option.component.ts index 0633c0d..6b75449 100644 --- a/frontend/src/app/routes/settings/syspref/syspref-option/settings-syspref-option.component.ts +++ b/frontend/src/app/routes/settings/syspref/syspref-option/settings-syspref-option.component.ts @@ -66,7 +66,10 @@ export class SettingsSysprefOptionComponent implements OnInit { } numberUpdateWrapper(e: Event) { - this.update((e.target as HTMLInputElement).valueAsNumber); + const value = (e.target as HTMLInputElement).valueAsNumber; + if (isNaN(value)) return; + + this.update(value); } private async updatePreference(value: PrefValueType) { diff --git a/shared/src/entities/syspreference.entity.ts b/shared/src/entities/syspreference.entity.ts index 7a8838b..5fd78c7 100644 --- a/shared/src/entities/syspreference.entity.ts +++ b/shared/src/entities/syspreference.entity.ts @@ -1,9 +1,9 @@ import { IsNotEmpty, IsString } from 'class-validator'; -import { EntityID } from '../validators/entity-id.validator'; +import { EntityIDOptional } from '../validators/entity-id.validator'; export class ESysPreference { - @EntityID() - id: string; + @EntityIDOptional() + id?: string; @IsNotEmpty() @IsString() diff --git a/shared/src/entities/usrpreference.ts b/shared/src/entities/usrpreference.ts index ad81164..7245fee 100644 --- a/shared/src/entities/usrpreference.ts +++ b/shared/src/entities/usrpreference.ts @@ -1,10 +1,10 @@ import { IsDefined, IsNotEmpty, IsString } from 'class-validator'; -import { EntityID } from '../validators/entity-id.validator'; +import { EntityIDOptional } from '../validators/entity-id.validator'; import { IsPosInt } from '../validators/positive-int.validator'; export class EUsrPreference { - @EntityID() - id: string; + @EntityIDOptional() + id?: string; @IsNotEmpty() @IsString() diff --git a/shared/src/validators/entity-id.validator.ts b/shared/src/validators/entity-id.validator.ts index 9071cbd..9a5fda9 100644 --- a/shared/src/validators/entity-id.validator.ts +++ b/shared/src/validators/entity-id.validator.ts @@ -1,4 +1,5 @@ -import { IsNotEmpty, IsUUID } from 'class-validator'; +import { IsNotEmpty, IsOptional, IsUUID } from 'class-validator'; import { CombinePDecorators } from '../util/decorator'; export const EntityID = CombinePDecorators(IsNotEmpty(), IsUUID('4')); +export const EntityIDOptional = CombinePDecorators(IsOptional(), IsUUID('4'));