diff --git a/apps/api/src/app/account/get-all-accounts.dto.ts b/apps/api/src/app/account/get-all-accounts.dto.ts index af10840d58..efee3e6839 100644 --- a/apps/api/src/app/account/get-all-accounts.dto.ts +++ b/apps/api/src/app/account/get-all-accounts.dto.ts @@ -1,10 +1,11 @@ import { FilterDto } from '@ghostfolio/api/dtos/filter.dto'; +import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; import { IsOptional, IsString, MaxLength } from 'class-validator'; export class GetAllAccountsDto extends FilterDto { @IsOptional() @IsString() - @MaxLength(255) + @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH) query?: string; } diff --git a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts index e3aa726b4a..0778d1b5bf 100644 --- a/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts +++ b/apps/api/src/app/endpoints/data-providers/ghostfolio/get-lookup.dto.ts @@ -1,3 +1,5 @@ +import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; + import { Transform, TransformFnParams } from 'class-transformer'; import { IsBoolean, IsString, MaxLength } from 'class-validator'; @@ -9,6 +11,6 @@ export class GetLookupDto { includeIndices? = false; @IsString() - @MaxLength(255) + @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH) query? = ''; } diff --git a/apps/api/src/app/portfolio/get-holdings.dto.ts b/apps/api/src/app/portfolio/get-holdings.dto.ts index 61413f299b..6e3d9669e2 100644 --- a/apps/api/src/app/portfolio/get-holdings.dto.ts +++ b/apps/api/src/app/portfolio/get-holdings.dto.ts @@ -1,4 +1,5 @@ import { DateRangeFilterDto } from '@ghostfolio/api/dtos/date-range-filter.dto'; +import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; import { HoldingType } from '@ghostfolio/common/types'; import { IsIn, IsOptional, IsString, MaxLength } from 'class-validator'; @@ -10,6 +11,6 @@ export class GetHoldingsDto extends DateRangeFilterDto { @IsOptional() @IsString() - @MaxLength(255) + @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH) query?: string; } diff --git a/apps/api/src/app/symbol/get-lookup.dto.ts b/apps/api/src/app/symbol/get-lookup.dto.ts index e3aa726b4a..0778d1b5bf 100644 --- a/apps/api/src/app/symbol/get-lookup.dto.ts +++ b/apps/api/src/app/symbol/get-lookup.dto.ts @@ -1,3 +1,5 @@ +import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; + import { Transform, TransformFnParams } from 'class-transformer'; import { IsBoolean, IsString, MaxLength } from 'class-validator'; @@ -9,6 +11,6 @@ export class GetLookupDto { includeIndices? = false; @IsString() - @MaxLength(255) + @MaxLength(SEARCH_QUERY_MAXIMUM_LENGTH) query? = ''; } diff --git a/apps/api/src/dtos/filter.dto.ts b/apps/api/src/dtos/filter.dto.ts index 20cfa518db..a42694f8c5 100644 --- a/apps/api/src/dtos/filter.dto.ts +++ b/apps/api/src/dtos/filter.dto.ts @@ -1,3 +1,5 @@ +import { SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; + import { IsOptional, IsString, MaxLength } from 'class-validator'; export class FilterDto { @@ -15,7 +17,7 @@ export class FilterDto { @IsOptional() @IsString() - @MaxLength(255) + @MaxLength(SYMBOL_MAXIMUM_LENGTH) symbol?: string; @IsOptional() diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 853787f804..1675933f96 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -3,7 +3,8 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { ASSET_CLASS_MAPPING, COMMENT_MAXIMUM_LENGTH, - DEFAULT_LOCALE + DEFAULT_LOCALE, + SYMBOL_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; import { CreateOrderDto, UpdateOrderDto } from '@ghostfolio/common/dtos'; import { @@ -85,6 +86,7 @@ import { ActivityType } from './types/activity-type.type'; export class GfCreateOrUpdateActivityDialogComponent { protected readonly COMMENT_MAXIMUM_LENGTH = COMMENT_MAXIMUM_LENGTH; protected readonly DEFAULT_LOCALE = DEFAULT_LOCALE; + protected readonly SYMBOL_MAXIMUM_LENGTH = SYMBOL_MAXIMUM_LENGTH; protected activityForm: FormGroup; diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html index f9494efdc2..bfc330a36b 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -114,7 +114,11 @@ > Name - +
diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index a7f1114f81..77e8542398 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -344,6 +344,7 @@ export const REPLACE_NAME_PARTS = [ 'Xtrackers (IE) Plc -' ]; +export const SEARCH_QUERY_MAXIMUM_LENGTH = 255; export const SEARCH_QUERY_MINIMUM_LENGTH = 2; export const SECTORS = [ @@ -380,6 +381,8 @@ export const SUPPORTED_LANGUAGE_CODES = [ 'zh' ] as const; +export const SYMBOL_MAXIMUM_LENGTH = 255; + export const TAG_ID_DEMO = 'efa08cb3-9b9d-4974-ac68-db13a19c4874'; export const TAG_ID_DRAFT = '0c077abd-eca2-4cbb-818c-6cefbf2d169a'; export const TAG_ID_EMERGENCY_FUND = '4452656d-9fa4-4bd0-ba38-70492e31d180'; diff --git a/libs/common/src/lib/dtos/create-order.dto.ts b/libs/common/src/lib/dtos/create-order.dto.ts index f4d5524395..1345f418a1 100644 --- a/libs/common/src/lib/dtos/create-order.dto.ts +++ b/libs/common/src/lib/dtos/create-order.dto.ts @@ -1,4 +1,7 @@ -import { COMMENT_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; +import { + COMMENT_MAXIMUM_LENGTH, + SYMBOL_MAXIMUM_LENGTH +} from '@ghostfolio/common/config'; import { IsAfter1970Constraint } from '@ghostfolio/common/validator-constraints/is-after-1970'; import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code'; @@ -64,7 +67,7 @@ export class CreateOrderDto { quantity: number; @IsString() - @MaxLength(255) + @MaxLength(SYMBOL_MAXIMUM_LENGTH) symbol: string; @ArrayUnique() diff --git a/libs/common/src/lib/dtos/update-order.dto.ts b/libs/common/src/lib/dtos/update-order.dto.ts index 0587e21ec7..69d993559e 100644 --- a/libs/common/src/lib/dtos/update-order.dto.ts +++ b/libs/common/src/lib/dtos/update-order.dto.ts @@ -1,4 +1,7 @@ -import { COMMENT_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; +import { + COMMENT_MAXIMUM_LENGTH, + SYMBOL_MAXIMUM_LENGTH +} from '@ghostfolio/common/config'; import { IsAfter1970Constraint } from '@ghostfolio/common/validator-constraints/is-after-1970'; import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code'; @@ -65,7 +68,7 @@ export class UpdateOrderDto { quantity: number; @IsString() - @MaxLength(255) + @MaxLength(SYMBOL_MAXIMUM_LENGTH) symbol: string; @ArrayUnique() diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index f612a2cad7..bdbaa6cdb5 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -1,3 +1,4 @@ +import { SEARCH_QUERY_MAXIMUM_LENGTH } from '@ghostfolio/common/config'; import { Filter, PortfolioPosition, User } from '@ghostfolio/common/interfaces'; import { InternalRoute } from '@ghostfolio/common/routes/interfaces/internal-route.interface'; import { internalRoutes } from '@ghostfolio/common/routes/routes'; @@ -130,6 +131,7 @@ export class GfAssistantComponent implements OnChanges, OnDestroy, OnInit { ); public searchFormControl = new FormControl(''); + public readonly SEARCH_QUERY_MAXIMUM_LENGTH = SEARCH_QUERY_MAXIMUM_LENGTH; public searchResults: SearchResults = { accounts: [], diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html index 79e2f31a13..9c5fd5601c 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -13,6 +13,7 @@ name="search" type="text" [formControl]="searchFormControl" + [maxlength]="SEARCH_QUERY_MAXIMUM_LENGTH" [placeholder]="placeholder" /> @if (deviceType !== 'mobile' && !searchFormControl.value) { diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html index d786d724de..5e23c558a7 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html @@ -4,6 +4,7 @@ matInput [formControl]="control" [matAutocomplete]="symbolAutocomplete" + [maxlength]="SEARCH_QUERY_MAXIMUM_LENGTH" /> ('symbolAutocomplete');