Activities of "liangshiwei"

Hi,

I guess this is may related to your Entity field name, could you share your Entity definition

HI,

of course, you can override it if you want.

Its key is eThemeLeptonXComponents.MobileNavbar

Hi,

You can use ABP Suite to add a Product entity and relate with a Tenant entity in many-to-many relationships. https://abp.io/docs/latest/suite/creating-many-to-many-relationship

The ultimate goal of mine is to render product name field in tenant grid and as a multi-select drop downlist in edit and add new actions modals. Is this possible?

To achieve this goal, you must override Tenant pages.

First you can create your own TenantAppService to return tenant and product data.

public class MyTenantAppService : ApplicationService, IMyTenantAppService
{
    public virtual async Task... GetListAsync()
    {
        var tenants = tenantRepository....;
        var products = ProductRepository....;
    }
}

Then, override the Tenant page to get data from your app service.

Here is the document

  • https://abp.io/docs/latest/framework/ui/angular/component-replacement

you can download the saas module source code to get the page code.

Hi,

Your event handler can implement theIAuditingEnabled interface to enable the audit logging for that class by default.

public class MyHandler : IDistributedEventHandler, IAuditingEnabled
{
    
    // add virtual keyword
    public virtual async ..... HandleEventAsync(xxx)
    {
    
    }
}

Hi,

The Get source command is used to download module source code.

what's your email, i can share the @volo/abp.commercial.ng.ui source code with you.

Hi,

could you please share the error logs?

Hi,

Your code looks like no problem, will it work if you upload a file?

Answer

Hi,

Sorry, I didn't get it. Do you mean audit log? POST request will record by default

https://abp.io/docs/latest/modules/audit-logging-pro

it works for me

@page
@using Microsoft.Extensions.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal
@using Volo.Abp.Data
@using Volo.Abp.Localization
@using Volo.Abp.ObjectExtending
@using Volo.Saas
@using Volo.Saas.Host.Pages.Saas.Host.Tenants
@using Volo.Saas.Localization
@model CreateModalModel
@inject IStringLocalizer<SaasResource> L
@inject IStringLocalizerFactory StringLocalizerFactory
@{
Layout = null;
}
<form method="post" asp-page="/Saas/Host/Tenants/CreateModal">
    <abp-modal>
        <abp-modal-header title="@L["NewTenant"].Value"></abp-modal-header>
        <abp-modal-body>
            <abp-tabs>
                <abp-tab title="Main Info">
                    <abp-input asp-for="Tenant.Name" />
                    <abp-input asp-for="Tenant.AdminEmailAddress" />
                    <div class="mb-3">
                        <label class="form-label">@L["DisplayName:AdminPassword"].Value</label>
                        <span> * </span>
                        <div class="input-group">
                            <input type="password" class="form-control" maxlength="@TenantConsts.MaxPasswordLength" asp-for="Tenant.AdminPassword" />
                            <button class="btn btn-secondary" type="button" id="PasswordVisibilityButton">
                                <i class="fa fa-eye-slash" aria-hidden="true"></i>
                            </button>
                        </div>
                        <span asp-validation-for="Tenant.AdminPassword"></span>
                    </div>
                </abp-tab>
                <abp-tab title="Extra">
                    @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties<CreateModalModel.TenantInfoModel>())
                    {
                    if (!propertyInfo.Name.EndsWith("_Text"))
                    {
                    if (propertyInfo.Type.IsEnum || !propertyInfo.Lookup.Url.IsNullOrEmpty())
                    {
                    if (propertyInfo.Type.IsEnum)
                    {
                    Model.Tenant.ExtraProperties.ToEnum(propertyInfo.Name, propertyInfo.Type);
                    }
                    <abp-select asp-for="Tenant.ExtraProperties[propertyInfo.Name]"
                                label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                                autocomplete-api-url="@propertyInfo.Lookup.Url"
                                autocomplete-selected-item-name="@Model.Tenant.GetProperty(propertyInfo.Name+"_Text")"
                                autocomplete-selected-item-value="@Model.Tenant.GetProperty(propertyInfo.Name)"
                                autocomplete-filter-param-name="@propertyInfo.Lookup.FilterParamName"
                                autocomplete-items-property-name="@propertyInfo.Lookup.ResultListPropertyName"
                                autocomplete-display-property-name="@propertyInfo.Lookup.DisplayPropertyName"
                                autocomplete-value-property-name="@propertyInfo.Lookup.ValuePropertyName"></abp-select>
                    }
                    else
                    {
                    <abp-input type="@propertyInfo.GetInputType()"
                               asp-for="Tenant.ExtraProperties[propertyInfo.Name]"
                               label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)"
                               asp-format="@propertyInfo.GetInputFormatOrNull()"
                               value="@propertyInfo.GetInputValueOrNull(Model.Tenant.GetProperty(propertyInfo.Name))" />
                    }
                    }
                    }
                </abp-tab>
            </abp-tabs>
        </abp-modal-body>
        <abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer>
    </abp-modal>
</form>

Because, at the time, the database does not exist yet(maybe), so we change it to master

Showing 21 to 30 of 5631 entries
Made with ❤️ on ABP v9.0.0-preview Updated on September 19, 2024, 10:13