Hello again, and apologies for the delayed response.
Thank you for the additional details—this helps clarify the situation. As previously mentioned, it is not possible to override the settings overlay directly, as it is intended to be replaced in its entirety by design. However, reviewing the source code may still be beneficial if you plan to implement a custom overlay solution.
Please feel free to reach out if you need further assistance or guidance.
I'm glad to hear that the solution worked and everything is running smoothly now!
Regarding your request to refund the ticket allocation, I'm afraid we can't process a refund in this case. Our policy is to refund tickets that are used to report a bug or a problem in our product.
Regards.
Hello again, I am glad to hear that the suggestion worked on your side.
You can check this for the related source code https://github.com/abpframework/abp/blob/3f3788f513a15f63ed0c99891ae51884fffed5a3/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts#L121
Hi! Here's an approach you can follow:
const userNameField = new FormProp<IdentityUserDto>({
type: ePropType.String,
name: 'userName',
displayName: 'New Username',
id: 'userName',
autocomplete: 'new-username',
validators: _ => [Validators.required, Validators.minLength(4)],
});
export function userCreateFormContributor(formProps: FormPropList<IdentityUserDto>) {
const userNameIndex = formProps.indexOf('userName', (action, name) => action.name === name);
formProps.dropByIndex(userNameIndex);
formProps.addByIndex(userNameField, userNameIndex);
}
export const identityCreateFormContributors: IdentityCreateFormPropContributors = {
[eIdentityComponents.Users]: [userCreateFormContributor],
};
export const identityEditFormContributors: IdentityEditFormPropContributors = {
[eIdentityComponents.Users]: [userCreateFormContributor],
};
Then, configure your route like this:
// app-routing.module
...
{
path: 'identity',
loadChildren: () =>
import('@volo/abp.ng.identity').then(m =>
m.IdentityModule.forLazy({
createFormPropContributors: identityCreateFormContributors,
editFormPropContributors: identityCreateFormContributors,
}),
),
},
...
Let me know if you need any further help!
Hello again, and thank you for trying the suggestion and reaching out. It would be best if you could create a separate ticket for the issue related to the database provider. This will help us ensure the appropriate person can assist you more efficiently.
We appreciate your cooperation!
Thank you for trying and reaching out again. You can follow this link to see the upcoming releases. Also, that would be the best if you could provide a minimal reproducible example so that I could assist you further on that. You can send it to this address sumeyye.kurtulus@volosoft.com
Hello! Directly overriding the overlay content isn’t possible. However, I recommend adding the source code to your project so you can handle the replacement that way.
You can use the following command:
abp add-package @volosoft/ngx-lepton-x --with-source-code
Feel free to reach out if you need any further help!
Hello, this issue will be addressed in the upcoming Studio release. In the meantime, you can apply the following path configuration as a temporary workaround:
//apps/angular/tsconfig.json
"compilerOptions": {
...
"paths": {
...
"@abp/*": ["node_modules/@abp/*"],
"@volo/*": ["node_modules/@volo/*"]
}
...
},
Thank you for your understanding and cooperation.
Hello, this issue will be addressed in the upcoming Studio release. In the meantime, you can apply the following path configuration as a temporary workaround:
//apps/angular/tsconfig.json
"compilerOptions": {
...
"paths": {
...
"@abp/*": ["node_modules/@abp/*"],
"@volo/*": ["node_modules/@volo/*"]
}
...
},
Thank you for your understanding and cooperation.
Hello David,
Thank you for the detailed ticket and context around your use of custom templates with the extensible forms. Let me address your questions as well.
When using custom components inside extensible forms or tables, the injected EXTENSIONS_FORM_PROP_DATA only provides the plain record by default, not the full PropData with helpers like getInjected.
Although PropData defines getInjected(...), it's only populated in certain rendering contexts (e.g., the default ABP flow). When creating custom components, this context isn’t automatically passed.
If you're overriding rendering via custom components (like template: MyComponent inside prop config), you're responsible for providing the full context (record + helpers) if needed.
{
provide: EXTENSIONS_FORM_PROP_DATA,
deps: [Injector],
useFactory: (injector: Injector) => ({
record,
getInjected: <T>(token: any) => injector.get<T>(token)
})
}
As for future support, we’ll share feedback with the team — but for now, the pattern above is the recommended way to ensure full context is available in custom components.
I am also sharing a sample project showing how I replicated your structure based on these details: https://drive.google.com/file/d/1qLoFopObla_kGQ1k_a71KVvrlMZ_DPBc/view?usp=drive_link
If you think that this does not answer your question, I can assist you further. Thank you for your cooperation.