hi
You can use SignalR to notify your app users.
Since your Email notifications are already implemented, it will be easy to implement app notifications.
https://abp.io/docs/latest/framework/real-time/signalr https://abp.io/support/questions/8022/How-to-Display-Real-Time-Notifications-with-SignalR-in-Blazor-Web-App-When-Using-Distributed-Event-Bus-RabbitMQ
Thanks.
I created an issue to fix or replace them in the next 10.0.x patch version
https://github.com/abpframework/abp/issues/24702
Thanks
hi
These third-party JS libraries haven't released the latest patches. You can try upgrading bootstrap-datepicker to 1.10.1, but there's currently no way to fix the others.
jquery-from has a patch PR but didn't merged
https://github.com/jquery-form/form/pull/586
Thanks.
hi
We want to add a descriptive name in the ExtraProperties of AuditLogActionInfo
Option B: Use a custom AuditLogContributor is the best choice.
Is this the correct way to add information from an AppService method?
Audit log contributors, was explained above, is a global way of manipulating the audit log object. It is good if you can get a value from a service.
Injecting IAuditingManager service will be good.
Thanks,
For Angular, you can try:
Create footer.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-footer',
template: `
<div class="lpx-footbar">
<div class="lpx-footbar-copyright">
<span>© 2026 Your Company</span>
<small class="text-muted">All rights reserved.</small>
</div>
</div>
`,
})
export class FooterComponent {}
In your root component (e.g., app.component.ts):
import { Component, OnInit, inject } from '@angular/core';
import { ReplaceableComponentsService } from '@abp/ng.core';
import { eThemeLeptonXComponents } from '@volosoft/abp.ng.theme.lepton-x';
import { FooterComponent } from './footer/footer.component';
export class AppComponent implements OnInit {
private readonly replaceable = inject(ReplaceableComponentsService);
ngOnInit() {
this.replaceable.add({
key: eThemeLeptonXComponents.Footer,
component: FooterComponent,
});
}
}
https://abp.io/docs/latest/framework/ui/angular/component-replacement
Thanks.
hi
Is this footer from MVC or from Angular?
Thanks
hi
I'm glad the issue has been resolved. This ticket may not be refundable.
Thank you for your understanding and support.
hi
You can try adding middleware to return this file dynamically based on the current app environment.
app.UseRouting();
app.Use(async (context, next) =>
{
if (context.Request.Path.Equals("/robots.txt", StringComparison.OrdinalIgnoreCase))
{
context.Response.ContentType = "text/plain; charset=utf-8";
if (env.IsDevelopment() || env.IsStaging())
{
await context.Response.WriteAsync("""
User-agent: *
Disallow: /
""");
}
else
{
context.Response.StatusCode = StatusCodes.Status404NotFound;
}
return;
}
await next();
});
app.MapAbpStaticAssets();
Thanks
hi
Some of the packages don't have a patch version.
eg: jquery-form
Can you share the details of your security report?
liming.ma@volosoft.com
Thanks.
hi
We will check and upgrade all possible npm packages.
You can use resolutions in your packages.json to force updates.
You can remove the yarn.lock. Then run the abp install-libs command again.
{
"version": "0.1.0",
"name": "my-app",
"private": true,
"dependencies": {
"@volo/abp.aspnetcore.mvc.ui.theme.lepton": "~10.1.0-rc.1",
"@abp/tui-editor": "~10.1.0-rc.1",
"tui-code-snippet": "1.5.2",
"@volo/account": "~10.1.0-rc.1",
"@abp/cms-kit": "~10.1.0-rc.1",
"slugify": "1.4.6",
"@abp/jstree": "~10.1.0-rc.1"
},
"resolutions": {
"jquery-form": "4.3.0"
}
}