Browse Source

Merge pull request #19046 from abpframework/issue-18977

Prevent request to app-configuration after language change
pull/19151/head
Masum ULU 3 years ago
committed by GitHub
parent
commit
fbbbcf44c9
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6629
      npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json
  2. 59
      npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts
  3. 47
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts
  4. 44
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts
  5. 44
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts
  6. 249
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts
  7. 174
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts
  8. 35
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts
  9. 199
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts
  10. 15
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts
  11. 10
      npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts
  12. 20
      npm/ng-packs/packages/core/src/lib/services/config-state.service.ts
  13. 2
      npm/ng-packs/packages/core/src/lib/services/localization.service.ts

6629
npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json

File diff suppressed because it is too large

59
npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts

@ -1,30 +1,29 @@
import { Injectable } from '@angular/core'; import { RestService } from '../../../../services';
import { RestService } from '../../../../services/rest.service'; import { Rest } from '../../../../models';
import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models'; import { Injectable } from '@angular/core';
import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/multi-tenancy/models';
@Injectable({
providedIn: 'root', @Injectable({
}) providedIn: 'root',
export class AbpTenantService { })
apiName = 'abp'; export class AbpTenantService {
apiName = 'abp';
findTenantById = (id: string) =>
this.restService.request<any, FindTenantResultDto>(
{ findTenantById = (id: string, config?: Partial<Rest.Config>) =>
method: 'GET', this.restService.request<any, FindTenantResultDto>({
url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, method: 'GET',
}, url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,
{ apiName: this.apiName }, },
); { apiName: this.apiName,...config });
findTenantByName = (name: string) =>
this.restService.request<any, FindTenantResultDto>( findTenantByName = (name: string, config?: Partial<Rest.Config>) =>
{ this.restService.request<any, FindTenantResultDto>({
method: 'GET', method: 'GET',
url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,
}, },
{ apiName: this.apiName }, { apiName: this.apiName,...config });
);
constructor(private restService: RestService) {}
constructor(private restService: RestService) {} }
}

47
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts

@ -1,25 +1,22 @@
import { RestService } from '../../../../../../services/rest.service'; import { RestService } from '../../../../../../services';
import { Injectable } from '@angular/core'; import { Rest } from '../../../../../../models';
import type { import { Injectable } from '@angular/core';
ApplicationApiDescriptionModel, import type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models';
ApplicationApiDescriptionModelRequestDto,
} from '../../../http/modeling/models'; @Injectable({
providedIn: 'root',
@Injectable({ })
providedIn: 'root', export class AbpApiDefinitionService {
}) apiName = 'abp';
export class AbpApiDefinitionService {
apiName = 'abp';
getByModel = (model: ApplicationApiDescriptionModelRequestDto, config?: Partial<Rest.Config>) =>
getByModel = (model: ApplicationApiDescriptionModelRequestDto) => this.restService.request<any, ApplicationApiDescriptionModel>({
this.restService.request<any, ApplicationApiDescriptionModel>( method: 'GET',
{ url: '/api/abp/api-definition',
method: 'GET', params: { includeTypes: model.includeTypes },
url: '/api/abp/api-definition', },
params: { includeTypes: model.includeTypes }, { apiName: this.apiName,...config });
},
{ apiName: this.apiName }, constructor(private restService: RestService) {}
); }
constructor(private restService: RestService) {}
}

44
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts

@ -1,22 +1,22 @@
import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models'; import type { ApplicationConfigurationDto, ApplicationConfigurationRequestOptions } from './models';
import { RestService } from '../../../../../../services/rest.service'; import { RestService } from '../../../../../../services';
import { Injectable } from '@angular/core'; import { Rest } from '../../../../../../models';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root', @Injectable({
}) providedIn: 'root',
export class AbpApplicationConfigurationService { })
apiName = 'abp'; export class AbpApplicationConfigurationService {
apiName = 'abp';
get = (options: ApplicationConfigurationRequestOptions) =>
this.restService.request<any, ApplicationConfigurationDto>(
{ get = (options: ApplicationConfigurationRequestOptions, config?: Partial<Rest.Config>) =>
method: 'GET', this.restService.request<any, ApplicationConfigurationDto>({
url: '/api/abp/application-configuration', method: 'GET',
params: { includeLocalizationResources: options.includeLocalizationResources }, url: '/api/abp/application-configuration',
}, params: { includeLocalizationResources: options.includeLocalizationResources },
{ apiName: this.apiName }, },
); { apiName: this.apiName, ...config });
constructor(private restService: RestService) {} constructor(private restService: RestService) { }
} }

44
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.ts

@ -1,22 +1,22 @@
import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models'; import type { ApplicationLocalizationDto, ApplicationLocalizationRequestDto } from './models';
import { RestService } from '../../../../../../services/rest.service'; import { RestService } from '../../../../../../services';
import { Injectable } from '@angular/core'; import { Rest } from '../../../../../../models';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root', @Injectable({
}) providedIn: 'root',
export class AbpApplicationLocalizationService { })
apiName = 'abp'; export class AbpApplicationLocalizationService {
apiName = 'abp';
get = (input: ApplicationLocalizationRequestDto) =>
this.restService.request<any, ApplicationLocalizationDto>(
{ get = (input: ApplicationLocalizationRequestDto, config?: Partial<Rest.Config>) =>
method: 'GET', this.restService.request<any, ApplicationLocalizationDto>({
url: '/api/abp/application-localization', method: 'GET',
params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics }, url: '/api/abp/application-localization',
}, params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },
{ apiName: this.apiName }, },
); { apiName: this.apiName,...config });
constructor(private restService: RestService) {} constructor(private restService: RestService) {}
} }

249
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts

@ -1,124 +1,125 @@
import type { CurrentTenantDto, MultiTenancyInfoDto } from '../multi-tenancy/models'; import type { CurrentTenantDto, MultiTenancyInfoDto } from '../multi-tenancy/models';
import type { ObjectExtensionsDto } from './object-extending/models'; import type { ObjectExtensionsDto } from './object-extending/models';
import type { LanguageInfo } from '../../../localization/models'; import type { LanguageInfo } from '../../../localization/models';
import type { NameValue } from '../../../models'; import type { NameValue } from '../../../models';
export interface ApplicationAuthConfigurationDto { export interface ApplicationAuthConfigurationDto {
grantedPolicies: Record<string, boolean>; grantedPolicies: Record<string, boolean>;
} }
export interface ApplicationConfigurationDto { export interface ApplicationConfigurationDto {
localization: ApplicationLocalizationConfigurationDto; localization: ApplicationLocalizationConfigurationDto;
auth: ApplicationAuthConfigurationDto; auth: ApplicationAuthConfigurationDto;
setting: ApplicationSettingConfigurationDto; setting: ApplicationSettingConfigurationDto;
currentUser: CurrentUserDto; currentUser: CurrentUserDto;
features: ApplicationFeatureConfigurationDto; features: ApplicationFeatureConfigurationDto;
globalFeatures: ApplicationGlobalFeatureConfigurationDto; globalFeatures: ApplicationGlobalFeatureConfigurationDto;
multiTenancy: MultiTenancyInfoDto; multiTenancy: MultiTenancyInfoDto;
currentTenant: CurrentTenantDto; currentTenant: CurrentTenantDto;
timing: TimingDto; timing: TimingDto;
clock: ClockDto; clock: ClockDto;
objectExtensions: ObjectExtensionsDto; objectExtensions: ObjectExtensionsDto;
extraProperties: Record<string, object>; extraProperties: Record<string, object>;
} }
export interface ApplicationConfigurationRequestOptions { export interface ApplicationConfigurationRequestOptions {
includeLocalizationResources: boolean; includeLocalizationResources: boolean;
} }
export interface ApplicationFeatureConfigurationDto { export interface ApplicationFeatureConfigurationDto {
values: Record<string, string>; values: Record<string, string>;
} }
export interface ApplicationGlobalFeatureConfigurationDto { export interface ApplicationGlobalFeatureConfigurationDto {
enabledFeatures: string[]; enabledFeatures: string[];
} }
export interface ApplicationLocalizationConfigurationDto { export interface ApplicationLocalizationConfigurationDto {
values: Record<string, Record<string, string>>; values: Record<string, Record<string, string>>;
resources: Record<string, ApplicationLocalizationResourceDto>; resources: Record<string, ApplicationLocalizationResourceDto>;
languages: LanguageInfo[]; languages: LanguageInfo[];
currentCulture: CurrentCultureDto; currentCulture: CurrentCultureDto;
defaultResourceName?: string; defaultResourceName?: string;
languagesMap: Record<string, NameValue[]>; languagesMap: Record<string, NameValue[]>;
languageFilesMap: Record<string, NameValue[]>; languageFilesMap: Record<string, NameValue[]>;
} }
export interface ApplicationLocalizationDto { export interface ApplicationLocalizationDto {
resources: Record<string, ApplicationLocalizationResourceDto>; resources: Record<string, ApplicationLocalizationResourceDto>;
} currentCulture: CurrentCultureDto;
}
export interface ApplicationLocalizationRequestDto {
cultureName: string; export interface ApplicationLocalizationRequestDto {
onlyDynamics: boolean; cultureName: string;
} onlyDynamics: boolean;
}
export interface ApplicationLocalizationResourceDto {
texts: Record<string, string>; export interface ApplicationLocalizationResourceDto {
baseResources: string[]; texts: Record<string, string>;
} baseResources: string[];
}
export interface ApplicationSettingConfigurationDto {
values: Record<string, string>; export interface ApplicationSettingConfigurationDto {
} values: Record<string, string>;
}
export interface ClockDto {
kind?: string; export interface ClockDto {
} kind?: string;
}
export interface CurrentCultureDto {
displayName?: string; export interface CurrentCultureDto {
englishName?: string; displayName?: string;
threeLetterIsoLanguageName?: string; englishName?: string;
twoLetterIsoLanguageName?: string; threeLetterIsoLanguageName?: string;
isRightToLeft: boolean; twoLetterIsoLanguageName?: string;
cultureName?: string; isRightToLeft: boolean;
name?: string; cultureName?: string;
nativeName?: string; name?: string;
dateTimeFormat: DateTimeFormatDto; nativeName?: string;
} dateTimeFormat: DateTimeFormatDto;
}
export interface CurrentUserDto {
isAuthenticated: boolean; export interface CurrentUserDto {
id?: string; isAuthenticated: boolean;
tenantId?: string; id?: string;
impersonatorUserId?: string; tenantId?: string;
impersonatorTenantId?: string; impersonatorUserId?: string;
impersonatorUserName?: string; impersonatorTenantId?: string;
impersonatorTenantName?: string; impersonatorUserName?: string;
userName?: string; impersonatorTenantName?: string;
name?: string; userName?: string;
surName?: string; name?: string;
email?: string; surName?: string;
emailVerified: boolean; email?: string;
phoneNumber?: string; emailVerified: boolean;
phoneNumberVerified: boolean; phoneNumber?: string;
roles: string[]; phoneNumberVerified: boolean;
} roles: string[];
}
export interface DateTimeFormatDto {
calendarAlgorithmType?: string; export interface DateTimeFormatDto {
dateTimeFormatLong?: string; calendarAlgorithmType?: string;
shortDatePattern?: string; dateTimeFormatLong?: string;
fullDateTimePattern?: string; shortDatePattern?: string;
dateSeparator?: string; fullDateTimePattern?: string;
shortTimePattern?: string; dateSeparator?: string;
longTimePattern?: string; shortTimePattern?: string;
} longTimePattern?: string;
}
export interface IanaTimeZone {
timeZoneName?: string; export interface IanaTimeZone {
} timeZoneName?: string;
}
export interface TimeZone {
iana: IanaTimeZone; export interface TimeZone {
windows: WindowsTimeZone; iana: IanaTimeZone;
} windows: WindowsTimeZone;
}
export interface TimingDto {
timeZone: TimeZone; export interface TimingDto {
} timeZone: TimeZone;
}
export interface WindowsTimeZone {
timeZoneId?: string; export interface WindowsTimeZone {
} timeZoneId?: string;
}

174
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts

@ -1,87 +1,87 @@
export interface EntityExtensionDto { export interface EntityExtensionDto {
properties: Record<string, ExtensionPropertyDto>; properties: Record<string, ExtensionPropertyDto>;
configuration: Record<string, object>; configuration: Record<string, object>;
} }
export interface ExtensionEnumDto { export interface ExtensionEnumDto {
fields: ExtensionEnumFieldDto[]; fields: ExtensionEnumFieldDto[];
localizationResource?: string; localizationResource?: string;
} }
export interface ExtensionEnumFieldDto { export interface ExtensionEnumFieldDto {
name?: string; name?: string;
value: object; value: object;
} }
export interface ExtensionPropertyApiCreateDto { export interface ExtensionPropertyApiCreateDto {
isAvailable: boolean; isAvailable: boolean;
} }
export interface ExtensionPropertyApiDto { export interface ExtensionPropertyApiDto {
onGet: ExtensionPropertyApiGetDto; onGet: ExtensionPropertyApiGetDto;
onCreate: ExtensionPropertyApiCreateDto; onCreate: ExtensionPropertyApiCreateDto;
onUpdate: ExtensionPropertyApiUpdateDto; onUpdate: ExtensionPropertyApiUpdateDto;
} }
export interface ExtensionPropertyApiGetDto { export interface ExtensionPropertyApiGetDto {
isAvailable: boolean; isAvailable: boolean;
} }
export interface ExtensionPropertyApiUpdateDto { export interface ExtensionPropertyApiUpdateDto {
isAvailable: boolean; isAvailable: boolean;
} }
export interface ExtensionPropertyAttributeDto { export interface ExtensionPropertyAttributeDto {
typeSimple?: string; typeSimple?: string;
config: Record<string, object>; config: Record<string, object>;
} }
export interface ExtensionPropertyDto { export interface ExtensionPropertyDto {
type?: string; type?: string;
typeSimple?: string; typeSimple?: string;
displayName: LocalizableStringDto; displayName: LocalizableStringDto;
api: ExtensionPropertyApiDto; api: ExtensionPropertyApiDto;
ui: ExtensionPropertyUiDto; ui: ExtensionPropertyUiDto;
attributes: ExtensionPropertyAttributeDto[]; attributes: ExtensionPropertyAttributeDto[];
configuration: Record<string, object>; configuration: Record<string, object>;
defaultValue: object; defaultValue: object;
} }
export interface ExtensionPropertyUiDto { export interface ExtensionPropertyUiDto {
onTable: ExtensionPropertyUiTableDto; onTable: ExtensionPropertyUiTableDto;
onCreateForm: ExtensionPropertyUiFormDto; onCreateForm: ExtensionPropertyUiFormDto;
onEditForm: ExtensionPropertyUiFormDto; onEditForm: ExtensionPropertyUiFormDto;
lookup: ExtensionPropertyUiLookupDto; lookup: ExtensionPropertyUiLookupDto;
} }
export interface ExtensionPropertyUiFormDto { export interface ExtensionPropertyUiFormDto {
isVisible: boolean; isVisible: boolean;
} }
export interface ExtensionPropertyUiLookupDto { export interface ExtensionPropertyUiLookupDto {
url?: string; url?: string;
resultListPropertyName?: string; resultListPropertyName?: string;
displayPropertyName?: string; displayPropertyName?: string;
valuePropertyName?: string; valuePropertyName?: string;
filterParamName?: string; filterParamName?: string;
} }
export interface ExtensionPropertyUiTableDto { export interface ExtensionPropertyUiTableDto {
isVisible: boolean; isVisible: boolean;
} }
export interface LocalizableStringDto { export interface LocalizableStringDto {
name?: string; name?: string;
resource?: string; resource?: string;
} }
export interface ModuleExtensionDto { export interface ModuleExtensionDto {
entities: Record<string, EntityExtensionDto>; entities: Record<string, EntityExtensionDto>;
configuration: Record<string, object>; configuration: Record<string, object>;
} }
export interface ObjectExtensionsDto { export interface ObjectExtensionsDto {
modules: Record<string, ModuleExtensionDto>; modules: Record<string, ModuleExtensionDto>;
enums: Record<string, ExtensionEnumDto>; enums: Record<string, ExtensionEnumDto>;
} }

35
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts

@ -1,17 +1,18 @@
export interface FindTenantResultDto { export interface FindTenantResultDto {
success: boolean; success: boolean;
tenantId?: string; tenantId?: string;
name?: string; name?: string;
isActive: boolean; normalizedName?: string;
} isActive: boolean;
}
export interface CurrentTenantDto {
id?: string; export interface CurrentTenantDto {
name?: string; id?: string;
isAvailable: boolean; name?: string;
} isAvailable: boolean;
}
export interface MultiTenancyInfoDto {
isEnabled: boolean; export interface MultiTenancyInfoDto {
} isEnabled: boolean;
}

199
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts

@ -1,99 +1,100 @@
export interface ActionApiDescriptionModel {
uniqueName?: string; export interface ActionApiDescriptionModel {
name?: string; uniqueName?: string;
httpMethod?: string; name?: string;
url?: string; httpMethod?: string;
supportedVersions: string[]; url?: string;
parametersOnMethod: MethodParameterApiDescriptionModel[]; supportedVersions: string[];
parameters: ParameterApiDescriptionModel[]; parametersOnMethod: MethodParameterApiDescriptionModel[];
returnValue: ReturnValueApiDescriptionModel; parameters: ParameterApiDescriptionModel[];
allowAnonymous?: boolean; returnValue: ReturnValueApiDescriptionModel;
implementFrom?: string; allowAnonymous?: boolean;
} implementFrom?: string;
}
export interface ApplicationApiDescriptionModel {
modules: Record<string, ModuleApiDescriptionModel>; export interface ApplicationApiDescriptionModel {
types: Record<string, TypeApiDescriptionModel>; modules: Record<string, ModuleApiDescriptionModel>;
} types: Record<string, TypeApiDescriptionModel>;
}
export interface ApplicationApiDescriptionModelRequestDto {
includeTypes: boolean; export interface ApplicationApiDescriptionModelRequestDto {
} includeTypes: boolean;
}
export interface ControllerApiDescriptionModel {
controllerName?: string; export interface ControllerApiDescriptionModel {
controllerGroupName?: string; controllerName?: string;
isRemoteService: boolean; controllerGroupName?: string;
isIntegrationService: boolean; isRemoteService: boolean;
apiVersion?: string; isIntegrationService: boolean;
type?: string; apiVersion?: string;
interfaces: ControllerInterfaceApiDescriptionModel[]; type?: string;
actions: Record<string, ActionApiDescriptionModel>; interfaces: ControllerInterfaceApiDescriptionModel[];
} actions: Record<string, ActionApiDescriptionModel>;
}
export interface ControllerInterfaceApiDescriptionModel {
type?: string; export interface ControllerInterfaceApiDescriptionModel {
name?: string; type?: string;
methods: InterfaceMethodApiDescriptionModel[]; name?: string;
} methods: InterfaceMethodApiDescriptionModel[];
}
export interface InterfaceMethodApiDescriptionModel {
name?: string; export interface InterfaceMethodApiDescriptionModel {
parametersOnMethod: MethodParameterApiDescriptionModel[]; name?: string;
returnValue: ReturnValueApiDescriptionModel; parametersOnMethod: MethodParameterApiDescriptionModel[];
} returnValue: ReturnValueApiDescriptionModel;
}
export interface MethodParameterApiDescriptionModel {
name?: string; export interface MethodParameterApiDescriptionModel {
typeAsString?: string; name?: string;
type?: string; typeAsString?: string;
typeSimple?: string; type?: string;
isOptional: boolean; typeSimple?: string;
defaultValue: object; isOptional: boolean;
} defaultValue: object;
}
export interface ModuleApiDescriptionModel {
rootPath?: string; export interface ModuleApiDescriptionModel {
remoteServiceName?: string; rootPath?: string;
controllers: Record<string, ControllerApiDescriptionModel>; remoteServiceName?: string;
} controllers: Record<string, ControllerApiDescriptionModel>;
}
export interface ParameterApiDescriptionModel {
nameOnMethod?: string; export interface ParameterApiDescriptionModel {
name?: string; nameOnMethod?: string;
jsonName?: string; name?: string;
type?: string; jsonName?: string;
typeSimple?: string; type?: string;
isOptional: boolean; typeSimple?: string;
defaultValue: object; isOptional: boolean;
constraintTypes: string[]; defaultValue: object;
bindingSourceId?: string; constraintTypes: string[];
descriptorName?: string; bindingSourceId?: string;
} descriptorName?: string;
}
export interface PropertyApiDescriptionModel {
name?: string; export interface PropertyApiDescriptionModel {
jsonName?: string; name?: string;
type?: string; jsonName?: string;
typeSimple?: string; type?: string;
isRequired: boolean; typeSimple?: string;
minLength?: number; isRequired: boolean;
maxLength?: number; minLength?: number;
minimum?: string; maxLength?: number;
maximum?: string; minimum?: string;
regex?: string; maximum?: string;
} regex?: string;
}
export interface ReturnValueApiDescriptionModel {
type?: string; export interface ReturnValueApiDescriptionModel {
typeSimple?: string; type?: string;
} typeSimple?: string;
}
export interface TypeApiDescriptionModel {
baseType?: string; export interface TypeApiDescriptionModel {
isEnum: boolean; baseType?: string;
enumNames: string[]; isEnum: boolean;
enumValues: object[]; enumNames: string[];
genericArguments: string[]; enumValues: object[];
properties: PropertyApiDescriptionModel[]; genericArguments: string[];
} properties: PropertyApiDescriptionModel[];
}

15
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts

@ -1,7 +1,8 @@
export interface LanguageInfo {
cultureName?: string; export interface LanguageInfo {
uiCultureName?: string; cultureName?: string;
displayName?: string; uiCultureName?: string;
twoLetterISOLanguageName?: string; displayName?: string;
flagIcon?: string; twoLetterISOLanguageName?: string;
} flagIcon?: string;
}

10
npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts

@ -1,5 +1,5 @@
export interface NameValue<T = string> { export interface NameValue<T = string> {
name?: string; name?: string;
value: T; value: T;
} }

20
npm/ng-packs/packages/core/src/lib/services/config-state.service.ts

@ -71,17 +71,17 @@ export class ConfigStateService {
} }
refreshLocalization(lang: string): Observable<null> { refreshLocalization(lang: string): Observable<null> {
if (this.includeLocalizationResources) { if(this.includeLocalizationResources){
return this.refreshAppState().pipe(map(() => null)); return this.refreshAppState().pipe(map(() => null));
} else {
return this.getlocalizationResource(lang)
.pipe(
tap(result =>
this.store.patch({ localization: { ...this.store.state.localization, ...result } }),
),
)
.pipe(map(() => null));
} }
return this.getlocalizationResource(lang)
.pipe(
tap(result =>
this.store.patch({ localization: { ...this.store.state.localization, ...result } }),
),
)
.pipe(map(() => null));
} }
getOne$<K extends keyof ApplicationConfigurationDto>(key: K) { getOne$<K extends keyof ApplicationConfigurationDto>(key: K) {
@ -145,7 +145,7 @@ export class ConfigStateService {
return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {}); return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
} }
getFeatures$(keys: string[]): Observable<{ [key: string]: string } | undefined> { getFeatures$(keys: string[]): Observable<{ [key: string]: string; } | undefined> {
return this.store.sliceState(({ features }) => { return this.store.sliceState(({ features }) => {
if (!features?.values) return; if (!features?.values) return;

2
npm/ng-packs/packages/core/src/lib/services/localization.service.ts

@ -134,7 +134,7 @@ export class LocalizationService {
filter( filter(
lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang, lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang,
), ),
switchMap(lang => this.configState.refreshAppState().pipe(map(() => lang))), switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))),
filter(Boolean), filter(Boolean),
switchMap(lang => from(this.registerLocale(lang).then(() => lang))), switchMap(lang => from(this.registerLocale(lang).then(() => lang))),
) )

Loading…
Cancel
Save