|
|
|
@ -16,9 +16,7 @@ using Volo.Docs.Documents; |
|
|
|
using Volo.Docs.HtmlConverting; |
|
|
|
using Volo.Docs.Models; |
|
|
|
using Volo.Docs.Projects; |
|
|
|
using Volo.Docs.Utils; |
|
|
|
using NuGet.Versioning; |
|
|
|
using Volo.Docs.Version; |
|
|
|
using Volo.Docs.GitHub.Documents.Version; |
|
|
|
|
|
|
|
namespace Volo.Docs.Pages.Documents.Project |
|
|
|
{ |
|
|
|
@ -60,7 +58,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
|
|
|
|
public NavigationNode Navigation { get; private set; } |
|
|
|
|
|
|
|
public VersionInfoViewModel LatestStableVersionInfo { get; private set; } |
|
|
|
public VersionInfoViewModel LatestVersionInfo { get; private set; } |
|
|
|
|
|
|
|
public string DocumentsUrlPrefix { get; set; } |
|
|
|
|
|
|
|
@ -207,7 +205,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
private IActionResult ReloadPageWithCulture() |
|
|
|
{ |
|
|
|
var returnUrl = DocumentsUrlPrefix + LanguageCode + "/" + ProjectName + "/" |
|
|
|
+ (LatestStableVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + |
|
|
|
+ (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + |
|
|
|
DocumentName; |
|
|
|
|
|
|
|
return Redirect("/Abp/Languages/Switch?culture=" + LanguageCode + "&uiCulture=" + LanguageCode + "&returnUrl=" + returnUrl); |
|
|
|
@ -218,7 +216,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
return RedirectToPage(new |
|
|
|
{ |
|
|
|
projectName = ProjectName, |
|
|
|
version = (LatestStableVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), |
|
|
|
version = (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), |
|
|
|
languageCode = DefaultLanguageCode, |
|
|
|
documentName = DocumentName |
|
|
|
}); |
|
|
|
@ -229,7 +227,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
return RedirectToPage(new |
|
|
|
{ |
|
|
|
projectName = ProjectName, |
|
|
|
version = (LatestStableVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), |
|
|
|
version = (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version), |
|
|
|
documentName = "", |
|
|
|
languageCode = DefaultLanguageCode |
|
|
|
}); |
|
|
|
@ -256,22 +254,22 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
} |
|
|
|
|
|
|
|
var output = await _projectAppService.GetVersionsAsync(Project.ShortName); |
|
|
|
var versions = _versionHelper.OrderByDescending(output.Items.ToList()) |
|
|
|
var versions = output.Items.ToList() |
|
|
|
.Select(v => new VersionInfoViewModel(v.DisplayName, v.Name)) |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
if (versions.Any()) |
|
|
|
{ |
|
|
|
LatestStableVersionInfo = versions.FirstOrDefault(v => !_versionHelper.IsPreRelease(v.Version)) ?? versions.First(); |
|
|
|
LatestVersionInfo = GetLatestVersionInfo(versions); |
|
|
|
|
|
|
|
SetLatestVersionBranchName(versions); |
|
|
|
|
|
|
|
LatestStableVersionInfo.DisplayText = $"{LatestStableVersionInfo.DisplayText} ({DocsAppConsts.Latest})"; |
|
|
|
LatestVersionInfo.DisplayText = $"{LatestVersionInfo.DisplayText} ({DocsAppConsts.Latest})"; |
|
|
|
|
|
|
|
if (string.Equals(Version, DocsAppConsts.Latest, StringComparison.OrdinalIgnoreCase)) |
|
|
|
{ |
|
|
|
LatestStableVersionInfo.IsSelected = true; |
|
|
|
Version = LatestStableVersionInfo.Version; |
|
|
|
LatestVersionInfo.IsSelected = true; |
|
|
|
Version = LatestVersionInfo.Version; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
@ -283,8 +281,8 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
LatestStableVersionInfo.IsSelected = true; |
|
|
|
Version = LatestStableVersionInfo.Version; |
|
|
|
LatestVersionInfo.IsSelected = true; |
|
|
|
Version = LatestVersionInfo.Version; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -292,7 +290,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
{ |
|
|
|
SetLatestVersionBranchName(versions); |
|
|
|
|
|
|
|
LatestStableVersionInfo = new VersionInfoViewModel( |
|
|
|
LatestVersionInfo = new VersionInfoViewModel( |
|
|
|
$"{DocsAppConsts.Latest}", |
|
|
|
DocsAppConsts.Latest, |
|
|
|
true); |
|
|
|
@ -301,14 +299,38 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
VersionSelectItems = versions.Select(v => new SelectListItem |
|
|
|
{ |
|
|
|
Text = v.DisplayText, |
|
|
|
Value = CreateVersionLink(LatestStableVersionInfo, v.Version, DocumentName), |
|
|
|
Value = CreateVersionLink(LatestVersionInfo, v.Version, DocumentName), |
|
|
|
Selected = v.IsSelected |
|
|
|
}).ToList(); |
|
|
|
} |
|
|
|
|
|
|
|
private VersionInfoViewModel GetLatestVersionInfo(List<VersionInfoViewModel> versions) |
|
|
|
{ |
|
|
|
if (Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") |
|
|
|
&& (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Branches) |
|
|
|
{ |
|
|
|
var prefix = Project.ExtraProperties["VersionBranchPrefix"].ToString(); |
|
|
|
var LatestVersionBranchNameWithoutPrefix = |
|
|
|
!string.IsNullOrWhiteSpace(Project.LatestVersionBranchName) && |
|
|
|
Project.LatestVersionBranchName.StartsWith(prefix) && Project.LatestVersionBranchName.Length > prefix.Length |
|
|
|
? Project.LatestVersionBranchName.Substring(prefix.Length) |
|
|
|
: Project.LatestVersionBranchName; |
|
|
|
|
|
|
|
var latest = versions.FirstOrDefault(v=> v.Version == LatestVersionBranchNameWithoutPrefix); |
|
|
|
|
|
|
|
if (latest != null) |
|
|
|
{ |
|
|
|
return latest; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return versions.FirstOrDefault(v => !_versionHelper.IsPreRelease(v.Version)) ?? versions.First(); |
|
|
|
} |
|
|
|
|
|
|
|
private void SetLatestVersionBranchName(List<VersionInfoViewModel> versions) |
|
|
|
{ |
|
|
|
if (versions.Any() && !string.IsNullOrEmpty(Project.LatestVersionBranchName)) |
|
|
|
if (!Project.ExtraProperties.ContainsKey("GithubVersionProviderSource") |
|
|
|
|| (GithubVersionProviderSource) (long) Project.ExtraProperties["GithubVersionProviderSource"] == GithubVersionProviderSource.Releases) |
|
|
|
{ |
|
|
|
versions.First(v=> !_versionHelper.IsPreRelease(v.Version)).Version = Project.LatestVersionBranchName; |
|
|
|
} |
|
|
|
@ -357,7 +379,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
return DocsAppConsts.Latest; |
|
|
|
} |
|
|
|
|
|
|
|
return Document.Version == LatestStableVersionInfo.Version ? |
|
|
|
return Document.Version == LatestVersionInfo.Version ? |
|
|
|
DocsAppConsts.Latest : |
|
|
|
Document.Version; |
|
|
|
} |
|
|
|
@ -396,7 +418,7 @@ namespace Volo.Docs.Pages.Documents.Project |
|
|
|
LanguageSelectListItems.Add( |
|
|
|
new SelectListItem( |
|
|
|
language.DisplayName, |
|
|
|
DocumentsUrlPrefix + language.Code + "/" + Project.ShortName + "/" + (LatestStableVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + DocumentName, |
|
|
|
DocumentsUrlPrefix + language.Code + "/" + Project.ShortName + "/" + (LatestVersionInfo.IsSelected ? DocsAppConsts.Latest : Version) + "/" + DocumentName, |
|
|
|
language.Code == LanguageCode |
|
|
|
) |
|
|
|
); |
|
|
|
|