Activities of "ademaygun"

We would like to know whether this will be on your roadmap or not.

What we want to achieve

We want the navigation menu containing the page names to stay in the LEFT sidebar (side-menu behaviour), while the user/profile menu (toolbar: avatar, language, settings) is displayed horizontally in the TOP RIGHT corner, inside the topbar (as it is in the top-menu layout).

What we tried and what we found

  1. We switched provideSideMenuLayout() -> provideTopMenuLayout() and changed the layout-bundle.css path in angular.json to top-menu. This did more than we wanted: the navigation menu moved into the top bar as well. In the TopMenuLayoutComponent template, the navbar and the toolbar are both passed to the same component: <lpx-header [navbarTemplateRef]="navbarPanel?.template" [toolbarTemplateRef]="toolbar?.template" ...> So separating the two does not appear to be possible in this layout.
  2. In the SideMenuLayoutComponent template, .lpx-toolbar-container is not inside .lpx-topbar — it is a sibling element under #lpx-wrapper. Its CSS also pins it to the right edge: .lpx-toolbar-container { width: 72px; min-height: 100vh; position: absolute; top: 0; right: 0; bottom: 0; } As a result, whatever we provide through ng-template[lpx-toolbar-panel] is always rendered inside that right-hand strip. In the side-menu shell, the only projection point inside .lpx-topbar is ng-template[lpx-breadcrumb-panel]. There is no side-menu equivalent of the TopNavbarPanelDirective available in the top-menu shell.
  3. We reviewed the following and found that none of them affect the placement:
    • provideSideMenuLayout() / provideTopMenuLayout() take no parameters ((): EnvironmentProviders). The Layouts enum only contains sideMenu | topMenu; there is no intermediate option.
    • withThemeLeptonXOptions() / LpxOptions: no placement-related setting.
    • withLpxSideMenuOptions(): only accepts containers / styleFactory / settingsMenuEventName. The SideMenuContainerDefaults values are boxed | full | fixed, i.e. content width, not placement.
    • ToolbarService: manages the toolbar items (setItems/addItem/...), but does not change where the toolbar is positioned.
    • <lpx-topbar-content> (TopbarContentComponent) is not part of the public API; it does not appear in the export list of @volosoft/ngx-lepton-x/layouts.

Our questions

a) Is there a supported way to move the toolbar (the profile menu) into the topbar in the side-menu layout? Is there a provider, option or panel directive we have missed above? b) Is a hybrid arrangement of this kind (navigation on the left, toolbar on top) on your roadmap? Thanks in advance.

  • No Exception
  • Steps to reproduce the issue:

In ABP.io 9.0, the documentation shows registering entity cache with:

context.Services.AddEntityCache<TEntity, TKey>();

In a layered solution (Domain, Application, EntityFrameworkCore, Host), which module is the recommended place to register this?

Should it be in the EntityFrameworkCore module, Application module, or Host?

Also, if I consume the entity cache from the Domain layer, should the configuration be placed in the Domain module, or does this not matter?

Thank you for your help.

Hi, I will apply the temporary workaround, and I hope you will provide a permanent solution as well.

  • Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
  • Steps to reproduce the issue:

In our ABP.io v8 Angular UI application, we are experiencing the following error when some users log in: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.

Upon investigation, we found that in the getFromToken function, the access token payload is decoded using atob. When the payload length is not a multiple of 4 (due to missing Base64 padding =), atob throws this error. This happens especially when the preferred_username claim contains an email (e.g., abc@de.com).

Current Code:(in remember-me.service.ts)

const tokenBody = accessToken.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');
const parsedToken = JSON.parse(atob(tokenBody));

Suggested Fix: Add missing padding before calling atob:

while (tokenBody.length % 4 !== 0) {
  tokenBody += '=';
}

Alternatively, using the jwt-decode library in Angular would be a more reliable approach.

Hi,

I already tried this and it didn't work. The CLI tool should install successfully on Linux/Ubuntu environments, just like it does on Windows. Could you please check if Linux support is intended and ensure the package includes the necessary DotnetToolSettings.xml file?

dotnet nuget list source: Registered Sources:

  1. nuget.org [Enabled] https://api.nuget.org/v3/index.json
  • Tool 'volo.abp.studio.cli' failed to update due to the following: The settings file in the tool's NuGet package is invalid: Settings file 'DotnetToolSettings.xml' was not found in the package. Tool 'volo.abp.studio.cli' failed to install. Contact the tool author for assistance.
  • Steps to reproduce the issue:
  • dotnet tool install -g Volo.Abp.Studio.Cli (on ubuntu)

Abp Version 9.3

Hello Sümeyye, Thanks. Then I hope you update the tutorial accordingly

Hi,

The app.module.ts file does not exist, it was not created by abp studio

Specified module 'app' does not exist. Looked in the following directories: /src/app/book /src/app/app /src/app /src

  • Exception message and full stack trace:
  • Steps to reproduce the issue:
  • Create new solution via Abp Studio 1.2.2
  • yarn ng generate module author --module app --routing --route authors (Tutorial)
Showing 1 to 10 of 113 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.8.0-preview. Updated on September 16, 2026, 07:12
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.