The default version made as latest.

pull/457/head
Alper Ebicoglu 7 years ago
parent 866ee9a1ed
commit 3cdf4d8f3a

@ -0,0 +1,11 @@
using Volo.Docs.Projects;
namespace Volo.Docs
{
public class DocsAppConsts
{
public static string LatestVersion = "latest";
public static VersionInfo DefaultVersion = new VersionInfo(LatestVersion, LatestVersion);
}
}

@ -1,4 +1,4 @@
namespace Volo.Docs.Pages.Documents.Project
namespace Volo.Docs.Projects
{
public class VersionInfo
{

@ -1,9 +0,0 @@
using Volo.Docs.Pages.Documents.Project;
namespace Volo.Docs
{
public class DocsWebConsts
{
public static VersionInfo DefaultVersion = new VersionInfo("Unstable", "master"); //can be *latest* as well.
}
}

@ -30,7 +30,7 @@
<h3>
<a asp-page="./Project/Index"
asp-route-projectName="@project.ShortName"
asp-route-version="@DocsWebConsts.DefaultVersion.Version">
asp-route-version="@DocsAppConsts.DefaultVersion.Version">
@project.Name
</a>
</h3>

@ -27,7 +27,7 @@ namespace Volo.Docs.Pages.Documents
return RedirectToPage("./Project/Index", new
{
projectName = project.ShortName,
version = DocsWebConsts.DefaultVersion.Version,
version = DocsAppConsts.DefaultVersion.Version,
documentName = project.DefaultDocumentName
});
}

@ -1,5 +1,6 @@
@page
@using Volo.Abp.AspNetCore.Mvc.UI.Theming
@using Volo.Docs
@using Volo.Docs.Pages.Documents.Project
@inject IThemeManager ThemeManager
@model IndexModel
@ -90,7 +91,7 @@
}
<ul root-node="@Model.Navigation.RootNode"
version="@(Model.Version.IsNullOrEmpty() ? "latest" : Model.Version)"
version="@(Model.LatestVersionInfo.IsSelected ? DocsAppConsts.LatestVersion : Model.Version)"
project-name="@Model.ProjectName"
project-format="@Model.ProjectFormat"
selected-document-name="@Model.DocumentNameWithExtension"

@ -50,6 +50,19 @@ namespace Volo.Docs.Pages.Documents.Project
_projectAppService = projectAppService;
}
public VersionInfo LatestVersionInfo
{
get
{
var latestVersion = Versions.First();
latestVersion.DisplayText = $"{latestVersion.Version} - " + DocsAppConsts.LatestVersion;
latestVersion.Version = latestVersion.Version;
return latestVersion;
}
}
public async Task OnGet()
{
var projectDto = await _projectAppService.FindByShortNameAsync(ProjectName);
@ -63,30 +76,29 @@ namespace Volo.Docs.Pages.Documents.Project
Versions = versions.Select(v => new VersionInfo(v, v)).ToList();
AddDefaultVersionIfNotContains();
var latestVersion = Versions.Count == 1 ? Versions[0] : Versions[1];
latestVersion.DisplayText = $"{latestVersion.Version} - latest";
latestVersion.Version = latestVersion.Version;
//VersionInfo latestVersion = Versions.First();
//latestVersion.DisplayText = $"{latestVersion.Version} - " + DocsAppConsts.LatestVersion;
//latestVersion.Version = latestVersion.Version;
var versionFromUrl = Versions.FirstOrDefault(v => v.Version == Version);
if (versionFromUrl != null)
if (string.Equals(Version, DocsAppConsts.LatestVersion, StringComparison.InvariantCultureIgnoreCase))
{
versionFromUrl.IsSelected = true;
}
else if (string.Equals(Version, "latest", StringComparison.InvariantCultureIgnoreCase))
{
latestVersion.IsSelected = true;
LatestVersionInfo.IsSelected = true;
Version = LatestVersionInfo.Version;
}
else
{
Versions.First().IsSelected = true;
}
if (Version == null)
{
Version = Versions.Single(x => x.IsSelected).Version;
var versionFromUrl = Versions.FirstOrDefault(v => v.Version == Version);
if (versionFromUrl != null)
{
versionFromUrl.IsSelected = true;
Version = versionFromUrl.Version;
}
else
{
Versions.First().IsSelected = true;
Version = Versions.First().Version;
}
}
Document = await _documentAppService.GetByNameAsync(ProjectName, DocumentNameWithExtension, Version, true);
@ -101,20 +113,6 @@ namespace Volo.Docs.Pages.Documents.Project
Navigation = await _documentAppService.GetNavigationDocumentAsync(ProjectName, Version, false);
Navigation.ConvertItems();
}
private void AddDefaultVersionIfNotContains()
{
if (DocsWebConsts.DefaultVersion == null)
{
return;
}
if (Versions.Contains(DocsWebConsts.DefaultVersion))
{
return;
}
Versions.Insert(0, DocsWebConsts.DefaultVersion);
}
}
}
Loading…
Cancel
Save