hi
You can add a global javascript to dynamically change its height and top according to the logo.
hi
Please remove the offline_access
from oAuthConfig
to disable the refresh token
.
const oAuthConfig = {
responseType: 'code',
scope: 'offline_access MyProjectName'
};
We could write an angular interceptor and use o-auth service to invalidate the token. This will not work for mvc sites
Did you select the Remember me
when you login MVC website?
The default authentication cookie of MVC is session. It will be invalid after closing/quitting the browser.
hi
You can try to create a new 7.1.0 project and compare the code.
The blazor wasm project needs to run abp bundle
to update the js and css code.
How-to-customize-an-ABP-project
https://support.abp.io/QA/Questions/160/How-to-customize-an-ABP-project
hi
The project you shared is incomplete.
You can add "@volo/chat": "~7.1.0"
to your packages.json
and run abp install-libs
command.
The project file "CustomChatBotModuleWithVolo.ChatModule/src/ten3.ChatBot.GenerateCodeFromSpecFiles.Console/ten3.ChatBot.GenerateCodeFromSpecFiles.Console.csproj" was not found.
hi
namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton.Views.Error.DefaultErrorComponent;
public class LeptonErrorViewComponent
Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton/Views/Error/DefaultErrorComponent/LeptonErrorViewComponent.cs
https://docs.abp.io/en/abp/latest/UI/AspNetCore/Customization-User-Interface#overriding-a-page-model-c
hi
Considering that sqlite is more similar to the actual database
https://learn.microsoft.com/en-us/ef/core/testing/
hi
https://support.abp.io/QA/Questions/632/How-can-I-download-the-source-code-of-the-framework-Angular-packages-theme-and-pro-modules
hi
You can rename your SearchModel
class to MySearchModel
or inherit the Volo.Docs.Pages.Documents.SearchModel
.
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(SearchModel), typeof(MySearchModel))]
public class MySearchModel : SearchModel
{
private readonly IProjectAppService _projectAppService;
private readonly IDocumentAppService _documentAppService;
private readonly HtmlEncoder _encoder;
public MySearchModel(
IProjectAppService projectAppService,
IDocumentAppService documentAppService,
HtmlEncoder encoder)
: base(projectAppService, documentAppService, encoder)
{
_projectAppService = projectAppService;
_documentAppService = documentAppService;
_encoder = encoder;
}
public override async Task<IActionResult> OnGetAsync(string keyword)
{
if (!await _documentAppService.FullSearchEnabledAsync())
{
return RedirectToPage("Index");
}
KeyWord = keyword;
Project = await _projectAppService.GetAsync(ProjectName);
var output = await _projectAppService.GetVersionsAsync(Project.ShortName);
var versions = output.Items.ToList();
if (versions.Any() &&
string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase))
{
if ((!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") ||
(GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] ==GithubVersionProviderSource.Releases) &&
!string.IsNullOrEmpty(Project.LatestVersionBranchName))
{
Version = Project.LatestVersionBranchName;
}
else
{
Version = (versions.FirstOrDefault(v => !SemanticVersionHelper.IsPreRelease(v.Name)) ?? versions.First()).Name;
}
}
SearchOutputs = await _documentAppService.SearchAsync(new DocumentSearchInput
{
ProjectId = Project.Id,
Context = KeyWord,
LanguageCode = LanguageCode,
Version = Version
});
var highlightTag1 = Guid.NewGuid().ToString();
var highlightTag2 = Guid.NewGuid().ToString();
foreach (var searchOutput in SearchOutputs)
{
for (var i = 0; i < searchOutput.Highlight.Count; i++)
{
searchOutput.Highlight[i] = _encoder
.Encode(searchOutput.Highlight[i].Replace("<highlight>", highlightTag1)
.Replace("</highlight>", highlightTag2))
.Replace(highlightTag1, "<highlight>").Replace(highlightTag2, "</highlight>");
}
}
return Page();
}
}