Hi
I have yarn version 1.22.21 installed. This is the output from yarn
:
yarn install v1.22.21
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.51s.
Hi devs,
I am currently trying to run the abp install-libs
command. Previously this worked just fine and since then I didn't change any packages. But now I suddenly get this node incompatibility error from the glob module. As far as I can see this module is an internal ABP dependency so I can't just try to downgrade the version. But it doesn't seem to make sense to upgrade to a newer version of node since the ABP documentation states that I need to use node v16 or v18.
current node version: 18.20.4
Any help with this error would be very appreciated.
thanks in advance!
best wishes, Lukas
Thank you for the response.
This is the code from the backend where I already put the exact same name. But I still get the behavior that I see the property twice in the form:
private static void ConfigureExtraProperties()
{
ObjectExtensionManager.Instance.Modules()
.ConfigureSaas(saas =>
{
saas.ConfigureTenant(tenant =>
{
tenant.AddOrUpdateProperty<string>("Image");
});
});
}
Hi, I'm trying to add a custom property to the tenant entity through the dynamic form extension. In the end I want to be able to upload a file in the create and edit form which is then saved to the tenant. As a first step I wanted to add a simple string property and followed the documentation for that: https://docs.abp.io/en/abp/latest/UI/Angular/Dynamic-Form-Extensions After doing that I got the new input field but the value that I put there didn't get saved in the database. However when I added the same property through the Extension Manager in the backend it worked but then I got 2 input fields in the form. What am I doing wrong?
This is my form prop contributor:
import {
eSaasComponents,
SaasCreateFormPropContributors,
} from '@volo/abp.ng.saas';
import { SaasTenantDto } from '@volo/abp.ng.saas/proxy';
import { ePropType, FormProp, FormPropList } from '@abp/ng.components/extensible';
const imageProp = new FormProp<SaasTenantDto>({
type: ePropType.String,
name: 'Image',
displayName: 'AbpTenantManagement::Image',
formText: 'Upload an image for the tenant',
isExtra: true,
//template: ImageUploadComponent
});
export function imagePropContributor(propList: FormPropList<SaasTenantDto>) {
propList.addTail(imageProp);
}
export const saasCreateFormPropContributors: SaasCreateFormPropContributors = {
[eSaasComponents.Tenants]: [
imagePropContributor,
// You can add more contributors here
],
};
export const saasEditFormPropContributors = saasCreateFormPropContributors;
This is how I use it in my routing module:
const routes: Routes = [
//other routes
{
path: 'saas',
loadChildren: () => import('@volo/abp.ng.saas').then(m =>
m.SaasModule.forLazy({
createFormPropContributors: saasCreateFormPropContributors,
editFormPropContributors: saasEditFormPropContributors,
})
),
},
//other routes
];
@NgModule({
imports: [RouterModule.forRoot(routes, {})],
exports: [RouterModule],
})
export class AppRoutingModule {}