[FelixKirschner] said: The scripts which are added are the following:
<script src="/_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/abp.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/authentication-state-listener.js"> </script><script src="/_content/Volo.Abp.Account.Pro.Public.Blazor.Shared/IdleTracker.js"></script> <script src="/_content/Volo.Saas.Host.Blazor/libs/chart/chart.min.js"></script> <script src="/_content/Volo.Abp.AuditLogging.Blazor/libs/chart/chart.min.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/libs/bootstrap/js/bootstrap.bundle.min.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/libs/jquery/jquery.min.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/libs/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/side-menu/js/lepton-x.bundle.min.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Server.LeptonXTheme/scripts/leptonx-blazor-compatibility.js"></script> <script src="/_content/Volo.Abp.AspNetCore.Components.Web.LeptonXTheme/scripts/global.js"></Scrip> <script src="_framework/blazor.web.js"></script> <script src="/_framework/aspnetcore-browser-refresh.js"></script></body></html>< >
So there might be the /Idle/Default.js missing.What is the easiest way to check if persistent login is enabled?
Sorry, since you did not share the UI, I assumed that you are using MVC, this is the reason why I shared the scripts with you. For the blazor side, having /_content/Volo.Abp.Account.Pro.Public.Blazor.Shared/IdleTracker.js is enough.
And for the layout hook side, we register the AccountIdleComponent as follows, and it's already done on your side as well:
Configure<AbpLayoutHookOptions>(options =>
{
options.Add(LayoutHooks.Body.Last, typeof(AccountIdleComponent));
});
In your setup, it seems it's already added to the layout, and the component is also added.So, it seems everything is correct on your side.
I've tried the "Idle Session" feature on Blazor Server just before, but it did not work as you said. I'll create an issue for that.
Regards.
Hi, currently the ABP Studio CLI, uses a versioning system like in the mapping table here
So, currently, the latest ABP Studio CLI creates projects with v9.1.1, if you want to use v9.1.3, after creating your solution, you can select the "Switch to stable" option from ABP Studio UI:
or alternatively, use the ABP Studio CLI and run the following command in the root directory:
abp switch-to-stable
https://abp.io/docs/latest/cli#switch-to-stable
Regards.
[dhaoo] said:
![]()
![]()
hi: Through the document, I saw the requirements for dynamic or static agents. The interface under the Contracts project can implement the agent, but this interface definition does not exist in the module program of the multi-layer project. What should I do now
Do you have an application service interface defined in your *.Application.Contracts project and referenced in your other module? Typically, in ABP, application service contracts are placed in the *.Application.Contracts layer, and other modules reference that project to access the services.
You can refer to the Service Interface section in the document for more info.
[FelixKirschner] said: Yes I am 100% not triggering something on the side with my mouse. Some background jobs are running but I don't think they matter to JS. The idle timer settings are working completly on his own or? Because we got settings defintions too. Is there somewhere a demo side with working idle online?
Okay, thanks for the confirmation.
There is a component named AccountIdleViewComponent, which is added a layout hook for this feature:
Configure<AbpLayoutHookOptions>(hookOptions =>
{
hookOptions.Add(
LayoutHooks.Body.Last,
typeof(AccountIdleViewComponent)
);
});
This is the component that shows the idle timeout dialog, and also inserts 2 scripts to check inactivity on the JS Side (/Pages/Account/Idle/IdleTracker.js and /Pages/Account/Idle/Default.js).
You can check your page source, and check if these two scripts are added or not. And also, ensure that you are not using persistent logins, because it's disabled for persistent logins:
[JanneHarju] said: Not yet. I'm figuring that how big work is to make minimal reproduce project. Did you use same angular version because I think it was related to that.
@erdem.caygor attempted to reproduce the issue using a fresh template, but was unable to. This is exactly why we kindly requested a minimal reproducible project, it helps us better understand and assist you with the problem. So, if you can provide us a minimal project, we can directly help you.
Regards.
Hi, to change the logo for semi-dark (dim) theme, you can use the --lpx-theme-dim-bg variable in the CSS and add your logo URL:
:root {
--lpx-theme-dim-bg: url('<URL>');
}
Also, you can use --lpx-logo and --lpx-logo-icon for the small logo, which is only shown when the menu collapsed. For example:
:root .lpx-theme-dim {
--lpx-logo: url('/assets/images/logo/logo-light.svg');
--lpx-logo-icon: url('/assets/images/logo/icon.svg');
}
Hi, since you are using a tiered application, we suggest to use Redis as the distributed cache. If you are not using it now, or it has some transient problems, getting localization values may take a while. But, normally after first fetching the localization entries, it should work faster.
So, can you confirm that your Redis server is always up, and there is no transient errors or downtimes on your Redis server?
Hi, thanks for the detailed information and all the code snippets. You're correct that AsyncPeriodicBackgroundWorkerBase executes the job globally at fixed intervals across all tenants, and that it doesn't directly support tenant-specific execution intervals out of the box.
If you want to apply tenant-specific execution time, you can:
DoWorkAsync method, determine whether it's the correct time to run for each tenant, based on values stored in your database. (I guess you are already doing it with ExecutionTime property).Optionally, you can optimize the interval (e.g., 15–30 minutes) to reduce delay while still not being too frequent.
For the second question, it seems you are on the right track and storing a LastRunOn value per tenant to ensure tasks only runs once a day. Maybe you can improve it;
ExecutionTime) stored in your database.Since, setting Timer.Period is a global setting and affects the entire background worker, you need to have a check mechanism to determine when to run for per tenant.
Regards.
Hi, you can use static or dynamic C# API Proxies. Here is the documentation for both approaches:
Also, we provide Modular Monolith tutorial, you can check that: https://abp.io/docs/latest/tutorials/modular-crm
Thanks for updating the main question and providing version. However, I need more information to better assist you. So, can you please explain what you did, and how can I reproduce the same problem?
For example, what do you mean by saying "when click on customized default page"? Also, please share all of your steps.