Hi,
I find a way to show the UI, it can work with https://support.abp.io/QA/Questions/1613#answer-4bbf3269-2b57-ae99-3c1d-39fde434f0fb
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(AuditLogsAppService), typeof(IAuditLogsAppService))]
public class MyAuditLogsAppService : AuditLogsAppService
{
public MyAuditLogsAppService(IAuditLogRepository auditLogRepository, IJsonSerializer jsonSerializer, IPermissionChecker permissionChecker, IPermissionDefinitionManager permissionDefinitionManager) : base(auditLogRepository, jsonSerializer, permissionChecker, permissionDefinitionManager)
{
}
public override async Task<AuditLogDto> GetAsync(Guid id)
{
var log = await AuditLogRepository.GetAsync(id);
return ObjectMapper.Map<AuditLog, AuditLogDto>(log);
}
}
Hi,
Thanks, we will consider it.
Hi,
You can refer to the following code:
$(function(){
function setPage(){
$(".page-link").click(function(){
var url = $(this).attr("page-href");
$.ajax({
url:url,
dataType:"html"
}).done(function(result){
$("$YourModelId").html(result);
setPage();
})
})
}
setPage();
})
<div class="row mt-3">
<div class="col-sm-12 col-md-5"> Showing 1 to 10 of 216 entries</div>
<div class="col-sm-12 col-md-7">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-end">
<li class="page-item disabled">
<a tabindex="-1" class="page-link" page-href="/Resvoyage/HotelSearch/HotelSearchModal?id=6c6e5e1a-d82d-e402-667a-39fda21caa9e¤tPage=1">Previous</a>
</li>
<li class="page-item active">
<span class="page-link">
1
<span class="sr-only">(current)</span>
</span>
</li>
<li class="page-item ">
<a tabindex="-1" class="page-link" page-href="/Resvoyage/HotelSearch/HotelSearchModal?id=6c6e5e1a-d82d-e402-667a-39fda21caa9e¤tPage=2">2</a>
</li>
</ul>
<!-- nav-->
</nav>
</div></div>
Hi,
I have checked the source code, and yes, this is by design. you can not truncate the Parameters
.
You can use the change Parameters
max length for the solution:
public class MigrationDbContext
{
......
protected override void OnModelCreating(ModelBuilder builder)
{
.......
builder.Entity<AuditLogAction>(b =>
{
b.Property(x => x.Parameters).HasMaxLength(int.MaxValue);
});
}
}
HI,
You should send a Ajax request when click page button.
e.g:
$(function(){
$(".pagedButton").click(function(){
$.ajax({
...
}).done(function(result){
$(".travelModel").html(result);
})
})
})
Hi,
But now the Frontend crashes (Blazor), because the Page (AuditLogs -> Action -> Details) seems to expect a valid JSON:
Can you provide steps to reproduce? thanks.
Hi,
This is by design.
but you can change it in your application:
public class YourProjectNamePermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
......
var settingManagement = context.GetPermissionOrNull(SettingManagementPermissions.Emailing);
settingManagement.MultiTenancySide = MultiTenancySides.Both;
.....
}
.....
}
[Authorize(SettingManagementPermissions.Emailing)]
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(EmailSettingsAppService), typeof(IEmailSettingsAppService))]
public class MyEmailSettingsAppService : EmailSettingsAppService
{
public MyEmailSettingsAppService(ISettingManager settingManager) : base(settingManager)
{
}
public override async Task<EmailSettingsDto> GetAsync()
{
return new EmailSettingsDto {
SmtpHost = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Host),
SmtpPort = Convert.ToInt32(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Port)),
SmtpUserName = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UserName),
SmtpPassword = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Password),
SmtpDomain = await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.Domain),
SmtpEnableSsl = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl)),
SmtpUseDefaultCredentials = Convert.ToBoolean(await SettingProvider.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials)),
DefaultFromAddress = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromAddress),
DefaultFromDisplayName = await SettingProvider.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName),
};
}
public override async Task UpdateAsync(UpdateEmailSettingsDto input)
{
if (!CurrentTenant.IsAvailable)
{
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.Host, input.SmtpHost);
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.Port, input.SmtpPort.ToString());
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.UserName, input.SmtpUserName);
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.Password, input.SmtpPassword);
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.Domain, input.SmtpDomain);
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString());
await SettingManager.SetGlobalAsync(EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString().ToLowerInvariant());
await SettingManager.SetGlobalAsync(EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress);
await SettingManager.SetGlobalAsync(EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName);
}
else
{
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.Host, input.SmtpHost);
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.Port, input.SmtpPort.ToString());
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.UserName, input.SmtpUserName);
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.Password, input.SmtpPassword);
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.Domain, input.SmtpDomain);
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.EnableSsl, input.SmtpEnableSsl.ToString());
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.Smtp.UseDefaultCredentials, input.SmtpUseDefaultCredentials.ToString().ToLowerInvariant());
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.DefaultFromAddress, input.DefaultFromAddress);
await SettingManager.SetForCurrentTenantAsync(EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName);
}
}
Hi,
Do you mean how to configure IdentityServer in mobile app?
You can check this: https://stackoverflow.com/questions/57042378/xamarin-forms-identityserver-external-providers-facebook-google
I create a new solution with Template type is Module template.
ABP suite current only supported add module to application template, You can install it manually: https://docs.abp.io/en/commercial/latest/modules/file-management
How to migrate FmDirectoryDescriptors, FmFileDescriptors tables into Oracle?
See https://docs.abp.io/en/abp/latest/Entity-Framework-Core-Oracle