Hi,
ABP uses tui-editor for rich text editing.
I hope this steps helps to use it in your application: https://abp.io/support/questions/6343/RichText-input-control
Hi,
It seems we faced the same problem while developing micro-service template and found a different solution.
We created a centralized localization system with a separate simple Http API manages all the localizaiton. If you create a new microservice solution you'll see this Dynamic Localization option: <img src="/QA/files/3a19d642dc4ba66c8ec4e99eda7f78d3.png" alt="ABP Microservice dynamic localization" width="360" />
This options adds a new project to your solution to provide localizations to other services and more. In this system it supports changing them at runtime dynamically by using Language Management module, but in your case you can aggresively cache them if you do not want to change them at runtime and one-time you can get localizations.
If you interested this approach, I recommend you to create a new microservice template with dynamic localization option and check how it's implemented.
Or, instead of creating a standalone service for it, each service can seed their own localizations into a shared database and all of your services can use this database or a file on CDN and the table to use localization. But in that case, you'll still need to use reference for Domain.Shared layers to access Solution1Resource, Solution2Resource etc. classes. Still, you can build a custom system to localize with a string resource name instead strong-typed C# class.
Hi,
All the authserver data is seeded into database whenever you run DbMigrator. Can you check appsettings.json and update it, and replace all the localhost URLs with the real domain names. Then run the dbmigrator for the production database. (Configure connectionstring for production in the same appsettings.json file). That will add all the OpenId clients to the database so you can login
Hi,
Can you get the response from AuthServer (44310) for the path /.well-known/openid-configuration path?
Can you check this documentation for IIS? https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-9.0#iisiis-express-and-aspnet-core-module
Sometimes headers cannot be passed to the application directly when they're running behind a load-balander or a proxy server. Check forwarded headers too https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-9.0#forwarded-headers-middleware-order
We had a development on the Framework-side and we'll use this new service soon. You can follow it from here: https://github.com/abpframework/abp/pull/22866
It seems, it's not inlcuded in the patch version right now, Can you try adding a refresh button or refresh the page manually?
Refreshing the WebView seems solve the problem
I'll check the team milestone and inform you
Hi,
I showed BasicTheme as an example, you can always replace source-code of LeptonX theme, too. You can add project reference of customized theme to 2 different applications and they can use the same customized version of the theme.
It isn't important if the solution is created by ABP Studi or not, you can still get the source code of the theme by using ABP CLI:
abp get-source Volo.Abp.LeptonXTheme
If you consider using ABP Studio with your older solutions are not created with ABP Studio you can initialize them in ABP Studio by following "File > Initialize Existing Solution" menu item.
We are looking for the cleanest and most maintainable integration approach moving forward.
If you build your own theme and use it everywhere, you can pack you theme as nuget package and push to your private nuget. And your applications use your custom theme with package reference, in that way, even you made a breaking-change, you shouldn't update all the applications immdediately that uses your theme, they can still stay the previous version until you'll apply the breaking-change on them.
You should be able to see them in the table on  Text Templates page if you properly implemented IDynamicTemplateDefinitionStore. The module gets them from dynamic store and merges with static store.
You can also put a breakpoint to DynamicTemplateDefinitionAppService's GetAllAsync method to make sure it's executed. If not, check if it's located in the correct layer and make sure it's registered to dependency injection well.
You may consider using [ExposeServices]  attribute to make sure it's registered properly like this:
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IDynamicTemplateDefinitionStore))]
public class DatabaseTemplateDefinitionStore : IDynamicTemplateDefinitionStore, ITransientDependency
{
    // ...
}
You can check LeptonX demo to find a proper component. All the components from this website is done in LeptonX, you can directly get the HTML code and make it work in your application:
By the way, the component from the screenshot is AbpPageSearchBoxViewComponent from ABP Framework: https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageSearchBox/Default.cshtml
You can easily render it in your page like below:
@await Component.InvokeAsync(typeof(AbpPageSearchBoxViewComponent))
Make sure the following using statement is added:
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPageSearchBox
 
                                