The main entity generated gets a "ChildDataGrid" endpoint that is not customized with the "/api/app" default prefix and can't be customized with an override "ConventionalRouteBuilder" class.
In "src\Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX\Themes\LeptonX\Components\SideMenu\MobileNavbar\Default.cshtml" The "Settings" text is not being localized. It should be @L["Settings"].Value instead
Extra question:
Is it possible to add the following properties to the ApplicationMenuGroup class? Would be nice to be able to customize the "group" layout in the menu like adding an icon or customData if anyone want's to customize the template but right now, those properties are missing and only available in **ApplicationMenuItem **class
public string? Icon { get; set;}
public Dictionary<string, object> CustomData { get; } = new();
It does the trick, I will add a cookie implementation to save a state where the user can change the layout based on that value.
Please, let me ask you another question related. Based on this feature, the idea is to add another button to the configuration panel in the Main Toolbar but it seems that there is no contributor or CSharp way to add another option to this place
I checked that there are two possible ways to add some buttons in that place. One of them it's to use JQuery to add it dynamically on the fly and the other one it's to modify the Lepton X, template to include this option. Is that correct or probably there is another way to add it that I am not seeing?
Is there a way to change from SideMenu to TopMenu in runtime?
Configure<LeptonXThemeMvcOptions>(options =>
{
options.ApplicationLayout = LeptonXMvcLayouts.SideMenu;
});
Configure<LeptonXThemeMvcOptions>(options =>
{
options.ApplicationLayout = LeptonXMvcLayouts.TopMenu;
});
I've been trying to modify the LeptonX, GlobalScript, and GlobalStyle contributor, the style-initializer using a cookie approach but I didn't have much luck. Probably because I couldn't identify all the different files that need to be modified to make a cookie approach (for example) to handle a runtime modification of the sidebar from TopMenu to SideMenu and vice-versa, could you please help me implement this feature?
I think it should stay. We can find bugs in the release version
Related to this, if you group the select2 initialization methods in the javascript in a single "publicApi.onOpen", it will increase the performance of the site.
When you create an entity with many properties and 1to1 relationships and use typeahead as dropdown style. When you render those in the Create or Edit modal, it won't display because by default ABP Suite generates a wrong dropdown parent for the select2 initialization properties.
but it should look like this with the ".modal-content" added for create and edit
Let's say, for example, you have an entity that you need to add two 1 to 1 relationships with the same external Entity.
For example, for the entity "Exchange" you need to map two "Money" entities as 1 on 1
Actually, in ABP Suite, there is no way to customize the property name of the navigation classes for Domain or Application.Contracts. Even if you try to customize the "Entity Name" or "Dto Name" in the advanced tap, if you change, for example, "Entity Name", your class will be named "BlueMoney" and the property name also as "BlueMoney" but the correct should be, class "Money" and property name "BlueMoney".
That's for the case when you need to repeat the 1-1 relationship with the same entity.
Hello, Could you please finally fix the localization in the excel methods of the AppService in a generate suite entity? I am tired of fixing myself everytime
for example, this is a generated excel method
public virtual async Task<IRemoteStreamContent> GetListAsExcelFileAsync(DemoEntityExcelDownloadDto input)
{
var downloadToken = await _downloadTokenCache.GetAsync(input.DownloadToken);
if (downloadToken == null || input.DownloadToken != downloadToken.Token)
{
throw new AbpAuthorizationException("Invalid download token: " + input.DownloadToken);
}
var clientes = await _clienteRepository.GetListWithNavigationPropertiesAsync(input.FilterText, input.Name1, input.Name2, input.Name3);
var items = clientes.Select(item => new
{
Name1 = item.DemoEntity.Name1,
Name2 = item.DemoEntity.Name2,
Name3 = item.DemoEntity.Name3
});
var memoryStream = new MemoryStream();
await memoryStream.SaveAsAsync(items);
memoryStream.Seek(0, SeekOrigin.Begin);
return new RemoteStreamContent(memoryStream, "DemoEntities.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
First, the file name is not localized, if I changed language, it will be downloaded always like "DemoEntities.xlsx". Also, if you are using an entity with navigationproperties or not, the columns are not localized either, you need to add a configuration for that.
For example
var config = new OpenXmlConfiguration
{
DynamicColumns = null
//[ new DynamicExcelColumn("XYZ") { Name = L["XYZ"]} ]
};
I have to recreate the column every time and it's kind of frustrating since ABP Suite template system doesn't provide a way to iterate or use the properties to do this kind of complex scenario, please fix it.