Activities of "enisn"

Verified bug.

I'm creating an internal issue for this. I'll inform you in this issue after finding a workaround in your version


Also your credit is refunded.

Hi @serdar.genc

Unfortunetely ABP Framework doesn't support multi-lingual entities now.

I can suggest to you creating different blogs with language names like en, fr and add new blogposts to them according to the language of the post language.

It's not compatible with the ABP language system. You should make custom implementation to redirect current blog.

share 1 link as i got it in search engine.

https://support.abp.io/QA/Questions/1643/Add-cms-kit-as-separate-web-mvc-project-in-angular-project

Not sure if this is viable and working solution

Yes the solution of that link is suitable. You can install CmsKit to your existing HttpApi.Host project and consume it from angular.

After successfully adding CmsKit to your backend application, you can Service Proxies to consume Http endpoints.

abp generate-proxy -t ng

Module names are like below:

  • CmsKit Public: cms-kit
  • CmsKit Admin: cms-kit-admin
  • CmsKit Pro Public: cms-kit-pro
  • CmsKit Pro Admin: cms-kit-pro-admin

You can use those module names while generating client-proxy like below:

abp generate-proxy -t ng -m cms-kit-pro-admin

Then, you can start to develop pages that you need in angular application.

Does the following article help you? https://community.abp.io/posts/configuring-multiple-dbcontexts-in-an-abp-framework-project-uoz5is3o

All of them are solved and released. For the blazor wasm, you have to run abp bundle command after updating leptonx theme

Hi @shobhit We don't have any official CMS Kit Angular implementation yet. If you do that, you have to implement it manually.


Things you have to do:

  • You have to upgrade your project to at least v4.3 _(This is the first version that CMS Kit appears)

  • Then you can consume CmsKit endpoints via generating Client Proxies on your angular project.

Thanks for your feedback. All of them will be solved with LeptonX 1.0.0-rc.4 release. It'll be available today.

Thanks for your feedback.

Additionally, Local Event Bus can be used in this scenario, but regular csharp events are much more useful for UI changes. Also, creating a new object like NotificationData allows to manage component's data independently from the component, so it's an abstraction over UI.

Hi @thaithiendi

Can you try using data-bs-dismiss="modal" since ABP uses Bootstrap 5. https://getbootstrap.com/docs/5.0/components/modal/#modal-components

Hi @TonyH

You can publish an event inside the application to call StateHasChanged() method.

I'll share an example for UnreadCount for notifications. Firstly I'll create a NotificationData class and register it as scoped into service collection. Scoped is important here because if you define it as Transient, a new instance will be created each time and it can't keep its state. If you define it as Singleton, it's ok in Blazor WASM but it won't work on Blazor Server, all the connected users will use the same instance of that object. So, Scoped is the best way in here.

1- Define NotificationData.cs first.

public class NotificationData : IScopedDependency
{
    private int unreadCount;

    public int UnreadCount
    {
        get => unreadCount;
        set
        {
            unreadCount = value;
            UnreadCountChanged?.Invoke(this, new EventArgs());
        }
    }

    public event EventHandler UnreadCountChanged;
}

2- Create a notification component with name NotificationsComponent.razor for toolbar

@inject NotificationData NotificationData

<div class="nav-link">
    <i class="fa fa-bell"></i>

    @if (NotificationData.UnreadCount > 0)
    {
        <span class="position-absolute top-0 badge rounded-pill bg-danger">
            @NotificationData.UnreadCount
            <span class="visually-hidden">unread messages</span>
        </span>
    }
</div>

@code{
    protected override Task OnInitializedAsync()
    {
        NotificationData.UnreadCountChanged += (s, e) => StateHasChanged();
        return base.OnInitializedAsync();
    }
}

3- Add it to the toolbar

public class MyToolbarContributor : IToolbarContributor
{
    public Task ConfigureToolbarAsync(IToolbarConfigurationContext context)
    {
        if(context.Toolbar.Name == StandardToolbars.Main)
        {
            context.Toolbar.Items.Add(new ToolbarItem(typeof(NotificationsComponent)));
        }

        return Task.CompletedTask;
    }
}

4- Don't forget to configure it in the module file

Configure<AbpToolbarOptions>(options =>
{
    options.Contributors.Add(new MyToolbarContributor());
});

5- Inject the NotificationData wherever you want and make changes. (In my case I've injected it into Index.razor)

@inject NotificationData NotificationData

<Button Color="Color.Success" @onclick="@(()=> NotificationData.UnreadCount++)" >Increase Unread Count</Button>
<Button Color="Color.Danger" @onclick="@(()=> NotificationData.UnreadCount--)" >Decrease Unread Count</Button>

6- See the result:

Showing 521 to 530 of 784 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.