Hi,
You can try this:
MyMainMenuItem.razor
@inject NavigationManager Navigation
@using Volo.Abp.DependencyInjection
@using Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components.ApplicationLayout.SideMenu.Navigation
@inherits MainMenuItem
@attribute [ExposeServices(typeof(MainMenuItem))]
@{
var cssClass = string.IsNullOrEmpty(MenuItem.MenuItem.CssClass) ? string.Empty : MenuItem.MenuItem.CssClass;
}
@if (MenuItem.MenuItem.IsLeaf)
{
var currentUri = new Uri(Navigation.Uri);
var url = MenuItem.MenuItem.Url == null ? "#" : MenuItem.MenuItem.Url.TrimStart('/', '~');
<a href="@url" target="@MenuItem.MenuItem.Target" class="lpx-menu-item-link lpx-menu-item @(MenuItem.IsActive ? "selected" : "") @cssClass" id="@MenuItem.MenuItem.ElementId">
@if (!MenuItem.MenuItem.Icon.IsNullOrEmpty() || MenuItem.Parent is null)
{
<span class="lpx-menu-item-icon"><i class="lpx-icon @MenuItem.MenuItem.Icon" aria-hidden="true"></i></span>
}
<span class="lpx-menu-item-text hidden-in-hover-trigger">@MenuItem.MenuItem.DisplayName</span>
</a>
}
else
{
<a @onclick:preventDefault @onclick="ToggleMenu" class="lpx-menu-item-link lpx-menu-item @(MenuItem.IsActive || MenuItem.IsOpen ? "selected" : "")">
@if (!MenuItem.MenuItem.Icon.IsNullOrEmpty() || MenuItem.Parent is null)
{
<span class="lpx-menu-item-icon"><i class="lpx-icon @MenuItem.MenuItem.Icon" aria-hidden="true"></i></span>
}
<span class="lpx-menu-item-text hidden-in-hover-trigger">@MenuItem.MenuItem.DisplayName</span>
<i class="dd-icon hidden-in-hover-trigger caret bi-chevron-@(MenuItem.IsOpen ? "up" : "down")" aria-hidden="true"></i>
</a>
<ul id="@MenuItem.MenuItem.ElementId" class="lpx-inner-menu hidden-in-hover-trigger @(MenuItem.IsOpen ? "" : "collapsed") @cssClass">
@foreach (var childMenuItem in MenuItem.Items)
{
<li class="lpx-inner-menu-item">
<MainMenuItem Menu="@Menu" MenuItem="@childMenuItem" />
</li>
}
</ul>
}
the breadcrumbs and the buttons at the top disappear. But that's another story...
I will check it.
Hi,
Sorry, please try this:
protected override Expression<Func<TEntity, bool>> CreateFilterExpression<TEntity>()
{
Expression<Func<TEntity, bool>> expression = null;
if (typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)))
{
expression = e => !IsSoftDeleteFilterEnabled || !EF.Property<bool>(e, "IsDeleted");
}
if (typeof(IMultiTenant).IsAssignableFrom(typeof(TEntity)) && typeof(TEntity) != typeof(OrganizationUnit))
{
Expression<Func<TEntity, bool>> multiTenantFilter = e => !IsMultiTenantFilterEnabled || EF.Property<Guid>(e, "TenantId") == CurrentTenantId;
expression = expression == null ? multiTenantFilter : CombineExpressions(expression, multiTenantFilter);
}
return expression;
}
We are fine, thank you. : )
Hi,
We will enhance the ABP Suite, you can use the abp add-module Volo.Blogging --with-source-code
command to install the module with source code.
Hi,
You can override the CreateFilterExpression
method of DbContext
:
protected override Expression<Func<TEntity, bool>> CreateFilterExpression<TEntity>()
{
if (typeof(TEntity) == typeof(OrganizationUnit))
{
using (DataFilter.Disable<IMultiTenant>())
{
return base.CreateFilterExpression<TEntity>();
}
}
return base.CreateFilterExpression<TEntity>();
}
This way needs your DbContext
to replace IIdentityProDbContext
Hi,
We have document you can check: https://docs.abp.io/en/commercial/latest/themes/lepton-x/angular#customization
Hi,
The suite is working.
Hi,
Can you share the full logs(AuthServer and WebPublic)? thanks.
Hi,
The project you're shared is HttpApi
not HttpApi.Host
.
You can look up which project references the Volo.Abp.Account.Pro.Public.Web.OpenIddict
package and custom TokenController
in it.
Hi,
We updating the abp.io platform, and it should be working later.