The LeptonX is good but it also feel a bit "bloated" out of the box, especially if you want to design something for a smaller screen like a MAUI Blazor app. We are now wondering how we can make it less complicated without having to start implementing our own custom version of it just for some small changes. We fully accept that if we actually want to make design changes, we might need to override the theme components, and we probably will, but ideally it should not be needed for configuration changes. If not for any other reason in order to more easily update to newer versions of ABP which might contain theme changes.
How can you hide language, container width and appearance menus, both in Main Header Toolbar (General Settings) and in MobileNavBar (MobileGeneralSettings)? Looking into the files for LeptonX, there seem to be switches like" @if (HasMultipleStyles)" and "@if (HasContainerWidth)" but we have not been able where to control/change those. Unlike previous Lepton theme, even if you disable all languages but one, the language menu still seem to render in LeptonX but with only one choice available (the enabled language).
How can you specify theme, container width and appearance either in code or settings (appsettings or similar) for Leptonx so you can control it but not allowing users to modify it?
For the MobileNavBar, is there a way to hide the "Settings" or at least move it in under the user menu so that "slot" in the tab bar can instead be used for something more useful, like navigating to a page just like Home/Dashboard? With only fem slots available, 4 including the hamburger menu, it seems like a waste to dedicate one of them to Settings that you might change once or twice (or never)
How come the MobileNavBar can't be controlled like the normal main menu? Seems like the only way is to hardcode items using options.MobileMenuSelector = items => items.Where(...) which isn't ideal for various reasons.
How can you control/change the number of items for MobileMenuSelector ? 2 seems to be default but have found not documentation on how to change that.
Is the a way to make the hamburger menu a bit less "in your face" and perhaps also move it to be far right instead of in center which is a very odd location?
We have tried to find documentation to answer the questions above but have not been able to do so besides "make your own version of the theme" which does not seem reasonable for changes like the ones we are looking for here.
Thanks.
When you create a new MAUI Blazor solution in ABP Suite, you get this footer in the application
Have not been able to find anyway it can be removed / configured including the three buttons to the right and it also seems like the MainFooterComponent is ignored
<span class="copyright-text">@DateTime.Now.Year © MyProject</span>
Seems like this is something hard coded into the LeptonX them as they are visible on the demo site as well (where the About, Privacy and Contact buttons do nothing as well). For the free theme / ABP I could perhaps understand this but for solutions created with ABP Commercial / ABP Studio, I can't think of any customer wanting to do marketing for another company in their app. I would imagine you could download the source code for LeptonX and modify it, but that is of course something you should not need to do unless you really want to change the theme so I assume that isn't needed.
How can we get rid of this and why is it there to begin with?
Thanks.
(I think I have seen this in other non MAUI Blazor projects as well but as we are currently building a MAUI Blazor app, it is reported as such.)
There seem to be a problem with authentication in the browser when running the Mobile MAUI client generated by ABP Suite. The page does what it should and the app gets logged into, however, one you have clicked the login button, the page in the web browser never change, it still remains on the login form and there is no indication to the user that login is completed and they can close the browser window.
This is how it looks after login is completed, ie exactly the same as it did before login.
We have mostly seen this when running the MAUI app as a Windows App (Windows Emulator).
When using ABP Suite to try to create a MAUI project, it seems everything with LeptonX won't compile at all, giving you lots of errors like.
Severity Code Description Project File Line Suppression State Error MSB3027 Could not copy "C:\Users....nuget\packages\volo.abp.aspnetcore.components.web.leptonxtheme\2.1.0\staticwebassets\side-menu\libs\bootstrap-datepicker\css\bootstrap-datepicker3.standalone.min.css" to "M:\Projects\ASP.NET\ABP\src\BlazorHybrid4\aspnet-core\src\BlazorHybrid4.MauiBlazor\obj\Debug\net7.0-android\assets\wwwroot_content\Volo.Abp.AspNetCore.Components.Web.LeptonXTheme\side-menu\libs\bootstrap-datepicker\css\bootstrap-datepicker3.standalone.min.css". Exceeded retry count of 10. Failed. BlazorHybrid4.MauiBlazor C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\33.0.26\tools\Xamarin.Android.Common.targets 895
If you switch to creating a similar project with just plain Lepton instead, the generated solution will compile and somewhat work, but UI seems really broken, like it can't access CSS files etc.
Haven't used ABP in a few month and at least then, support for MAUI was best described as Alpha / experimental, is this still the case?
I know that MAUI overall seems to be somewhat of an unfinished product, but this seems to be related more to ABP. Can't be sure though as MAUI in itself is kind of pre release.
BTW, this form seems to be broken in responsive mode, and the submit button isn't even displayed in a somewhat narrow web browser. Expand it to full screen and it will show up.
It seems ABP Suite 6.0 rc4 (and at least RC3 as well) are locking some files after generation, which leads to error messages when trying to build and not all of them are obvious that it is ABP Suite that is the reason for it, while some contain that information if you looks closely, like "XXXXX Exceeded retry count of 10. Failed. The file is locked by: "Volo.Abp.Suite (36088)"
Killing/restarting the ABP Suite process makes the error go away so it is no doubt about what is causing this, so as long as you know why this is, you can easily work around the problem.
As I understand it, the MAUI mobile application generated by ABP Suite seem to use Preferences instead of SecureStorage for storing JWT tokens which AFAIK isn't the recommended way of doing it as it is not as secure as SecureStorage. There is even a community post about this
https://community.abp.io/posts/using-abp-client-proxies-in-maui-with-openid-connect-em7x1s8k
private async Task SetTokenCacheAsync(string accessToken, string refreshToken)
{
await _storage.SetAsync(IssueTrackrConsts.OidcConsts.AccessTokenKeyName, accessToken);
await _storage.SetAsync(IssueTrackrConsts.OidcConsts.RefreshTokenKeyName, refreshToken);
}
private async Task ClearTokenCacheAsync()
{
await _storage.RemoveAsync(IssueTrackrConsts.OidcConsts.AccessTokenKeyName);
await _storage.RemoveAsync(IssueTrackrConsts.OidcConsts.RefreshTokenKeyName);
}
public class DefaultStorage : IStorage, ITransientDependency
{
public Task<string> GetAsync(string key)
{
return Task.FromResult(Preferences.Get(key, string.Empty));
}
public Task SetAsync(string key, string value)
{
Preferences.Set(key, value);
return Task.CompletedTask;
}
public Task RemoveAsync(string key)
{
Preferences.Remove(key);
return Task.CompletedTask;
}
}
I tried to update to ABP Suite matching the latest RC 6.0.0 RC4 but that did not seem to exist (and instead installed some Preview 7 from July even though I specified the version in the CLI command). So I did a "abp suite remove" and also deleted the directory, and then did a "abp suite install --version 6.0.0-rc.3". Now I seem to have a mismatch of versions, which I would assume is rather the ABP Suite RC3 having some incorrect INF
abp suite install --version 6.0.0-rc.3 [18:36:35 INF] ABP CLI (https://abp.io) [18:36:36 INF] Version 6.0.0-rc.4 (Prerelease) [18:36:36 INF] Installing ABP Suite v6.0.0-rc.3... You can invoke the tool using the following command: abp-suite Tool 'volo.abp.suite' (version '6.0.0-rc.3') was successfully installed.
abp suite [18:37:01 INF] ABP CLI (https://abp.io) [18:37:01 INF] Version 6.0.0-rc.4 (Prerelease) Starting Suite v6.0.0-rc.3 ... Opening http://localhost:3000
What is the ABP Suite to be used with RC4 and is there a ABP Suite RC4 as well?
Not sure if there is a better way to submit suggestions for improvements, as GitHub Issues are only for the non commercial version? Don't want a suggestion to lower our number of support tickets.
ABPSuite by default creates DTOs with different DTOs for each AGUD/CRUD operation. While this might be the most fancy solution, in many cases, just having one simple DTO for all operations is sufficient and also much easier to maintain for simple projects.
Suggestion, consider implementing an option in ABP Suite to use one simple DTO for all AGUD/ CRUD operations instead of separate ones.
BTW, the link in this sticky isn't working
https://support.abp.io/QA/Questions/954/We-are-listening-to-you
If you're creating a bug/problem report, please include followings:
This problem seem to be back in 5.1.4
https://support.abp.io/QA/Questions/1662/More-than-one-DBContext-was-found
When following the instructions for
https://docs.abp.io/en/abp/latest/Tutorials/Todo/Index?UI=NG&DB=EF
(angular version)
you get:
More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.
If you specify
Add-Migration Added_TodoItem -Context TodoAppDbContext
Migration is created but you still get an error:
Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException: Exception of type 'Microsoft.Extensions.Hosting.HostFactoryResolver+HostingListener+StopTheHostException' was thrown. at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.OnNext(KeyValuePair
2 value)
` at System.Diagnostics.DiagnosticListener.Write(String name, Object value)
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build()
at TodoApp.Program.Main(String[] args) in *******\src\TodoApp\aspnet-core\src\TodoApp.HttpApi.Host\Program.cs:line 39
To undo this action, use Remove-Migration.``
(We are using Package Manage Console in VS)
Hi,
As reported here:
https://support.abp.io/QA/Questions/1543/Bugs--Issues-v44X
https://support.abp.io/QA/Questions/2109/VoloAbpAbpException-Undefined-permission
It seems like ABP Suite is currently broken with Blazor Server and client. We have a new project that was supposed to have started up yesterday but since we can't even create and run a fresh project in ABP Suite currently, it is still at a standstill. We would like some information about the status on this and possible solutions / work arounds. Thanks.
Initial post fron the bug thread for 4.4.4 but not sure if anyone is reading that as there are no replies there yet.
ABP Framework version: v4.4.4 UI type: Blazor Server DB provider: EF Core Tiered (MVC) or Identity Server Separated (Angular): no
After upgrading to ABP 4.4.4 we can no longer create working projects in ABP Suite (have no tried other methods). The DBMigrator runs fine on a newly created project (default options, .net 5, no preview) but at runtime we get
[17:46:09 INF] Authorization failed. These requirements were not met: PermissionRequirement: AbpAccount.SettingManagement
[17:46:10 WRN] Unhandled exception rendering component: Undefined permission: Audit Volo.Abp.AbpException: Undefined permission: Audit
and in the browser:
blazor.server.js?_v=637706942980000000:21 [2021-11-10T16:46:09.985Z] Error: There was an unhandled exception on the current circuit, so this circuit will be terminated. For more details turn on detailed exceptions by setting 'DetailedErrors: true' in 'appSettings.Development.json' or set 'CircuitOptions.DetailedErrors'.
We have also since last time we tried using ABP Suite upgraded from VS2022 Preview to Current, but I don't think that is the cause of the problem here. Could possibly be related to .net updates also.
There is additional information in the 4.4.4 bug thread linked above.