Browse Source

Docs option for projects combobox

pull/1650/head
Yunus Emre Kalkan 7 years ago
parent
commit
d8eb1fda90
  1. 4
      modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs
  2. 2
      modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
  3. 8
      modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs
  4. 8
      modules/docs/src/Volo.Docs.Web/DocsOptions.cs
  5. 6
      modules/docs/src/Volo.Docs.Web/DocsWebModule.cs
  6. 10
      modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs
  7. 8
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs
  8. 2
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml
  9. 14
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

4
modules/docs/app/VoloDocs.Web/Pages/Index.cshtml.cs

@ -8,9 +8,9 @@ namespace VoloDocs.Web.Pages
{ {
public class IndexModel : PageModel public class IndexModel : PageModel
{ {
private readonly DocsUrlOptions _urlOptions; private readonly DocsOptions _urlOptions;
public IndexModel(IOptions<DocsUrlOptions> urlOptions) public IndexModel(IOptions<DocsOptions> urlOptions)
{ {
_urlOptions = urlOptions.Value; _urlOptions = urlOptions.Value;
} }

2
modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs

@ -62,7 +62,7 @@ namespace VoloDocs.Web
var hostingEnvironment = context.Services.GetHostingEnvironment(); var hostingEnvironment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
Configure<DocsUrlOptions>(options => Configure<DocsOptions>(options =>
{ {
options.RoutePrefix = null; options.RoutePrefix = null;
}); });

8
modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs

@ -13,7 +13,7 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
[HtmlTargetElement("ul", Attributes = "root-node")] [HtmlTargetElement("ul", Attributes = "root-node")]
public class TreeTagHelper : TagHelper public class TreeTagHelper : TagHelper
{ {
private readonly DocsUrlOptions _urlOptions; private readonly DocsOptions _options;
private const string LiItemTemplateWithLink = @"<li class='{0}'><span class='plus-icon'><i class='fa fa-{1}'></i></span>{2}{3}</li>"; private const string LiItemTemplateWithLink = @"<li class='{0}'><span class='plus-icon'><i class='fa fa-{1}'></i></span>{2}{3}</li>";
@ -41,9 +41,9 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
[HtmlAttributeName("language")] [HtmlAttributeName("language")]
public string LanguageCode { get; set; } public string LanguageCode { get; set; }
public TreeTagHelper(IOptions<DocsUrlOptions> urlOptions) public TreeTagHelper(IOptions<DocsOptions> urlOptions)
{ {
_urlOptions = urlOptions.Value; _options = urlOptions.Value;
} }
public override void Process(TagHelperContext context, TagHelperOutput output) public override void Process(TagHelperContext context, TagHelperOutput output)
@ -142,7 +142,7 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
return "javascript:;"; return "javascript:;";
} }
var prefix = _urlOptions.RoutePrefix; var prefix = _options.RoutePrefix;
return prefix + LanguageCode + "/" + ProjectName + "/" + Version + "/" + pathWithoutFileExtension; return prefix + LanguageCode + "/" + ProjectName + "/" + Version + "/" + pathWithoutFileExtension;
} }

8
modules/docs/src/Volo.Docs.Web/DocsUrlOptions.cs → modules/docs/src/Volo.Docs.Web/DocsOptions.cs

@ -2,7 +2,7 @@
namespace Volo.Docs namespace Volo.Docs
{ {
public class DocsUrlOptions public class DocsOptions
{ {
private string _routePrefix = "documents"; private string _routePrefix = "documents";
@ -15,6 +15,12 @@ namespace Volo.Docs
set => _routePrefix = value; set => _routePrefix = value;
} }
/// <summary>
/// Allows user to see a combobox in user interface for swapping across projects
/// Default value: True;
/// </summary>
public bool ShowProjectsComboboxInUi = true;
private string GetFormattedRoutePrefix() private string GetFormattedRoutePrefix()
{ {
if (string.IsNullOrWhiteSpace(_routePrefix)) if (string.IsNullOrWhiteSpace(_routePrefix))

6
modules/docs/src/Volo.Docs.Web/DocsWebModule.cs

@ -41,11 +41,11 @@ namespace Volo.Docs
Configure<RazorPagesOptions>(options => Configure<RazorPagesOptions>(options =>
{ {
var urlOptions = context.Services var docsOptions = context.Services
.GetRequiredServiceLazy<IOptions<DocsUrlOptions>>() .GetRequiredServiceLazy<IOptions<DocsOptions>>()
.Value.Value; .Value.Value;
var routePrefix = urlOptions.RoutePrefix; var routePrefix = docsOptions.RoutePrefix;
options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{projectName}"); options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{projectName}");
options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{languageCode}/{projectName}"); options.Conventions.AddPageRoute("/Documents/Project/Index", routePrefix + "{languageCode}/{projectName}");

10
modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs

@ -14,13 +14,13 @@ namespace Volo.Docs.Markdown
public const string Type = "md"; public const string Type = "md";
private readonly IMarkdownConverter _markdownConverter; private readonly IMarkdownConverter _markdownConverter;
private readonly DocsUrlOptions _urlOptions; private readonly DocsOptions _options;
public MarkdownDocumentToHtmlConverter(IMarkdownConverter markdownConverter, public MarkdownDocumentToHtmlConverter(IMarkdownConverter markdownConverter,
IOptions<DocsUrlOptions> urlOptions) IOptions<DocsOptions> urlOptions)
{ {
_markdownConverter = markdownConverter; _markdownConverter = markdownConverter;
_urlOptions = urlOptions.Value; _options = urlOptions.Value;
} }
private const string MdLinkFormat = "[{0}]({1}{2}/{3}/{4}{5}/{6})"; private const string MdLinkFormat = "[{0}]({1}{2}/{3}/{4}{5}/{6})";
@ -73,7 +73,7 @@ namespace Volo.Docs.Markdown
return string.Format( return string.Format(
MdLinkFormat, MdLinkFormat,
displayText, displayText,
_urlOptions.RoutePrefix, _options.RoutePrefix,
languageCode, languageCode,
projectShortName, projectShortName,
version, version,
@ -101,7 +101,7 @@ namespace Volo.Docs.Markdown
return string.Format( return string.Format(
MdLinkFormat, MdLinkFormat,
displayText, displayText,
_urlOptions.RoutePrefix, _options.RoutePrefix,
languageCode, languageCode,
projectShortName, projectShortName,
version, version,

8
modules/docs/src/Volo.Docs.Web/Pages/Documents/Index.cshtml.cs

@ -15,19 +15,19 @@ namespace Volo.Docs.Pages.Documents
public IReadOnlyList<ProjectDto> Projects { get; set; } public IReadOnlyList<ProjectDto> Projects { get; set; }
private readonly IProjectAppService _projectAppService; private readonly IProjectAppService _projectAppService;
private readonly DocsUrlOptions _urlOptions; private readonly DocsOptions _options;
public IndexModel( public IndexModel(
IProjectAppService projectAppService, IProjectAppService projectAppService,
IOptions<DocsUrlOptions> urlOptions) IOptions<DocsOptions> urlOptions)
{ {
_projectAppService = projectAppService; _projectAppService = projectAppService;
_urlOptions = urlOptions.Value; _options = urlOptions.Value;
} }
public async Task<IActionResult> OnGetAsync() public async Task<IActionResult> OnGetAsync()
{ {
DocumentsUrlPrefix = _urlOptions.RoutePrefix; DocumentsUrlPrefix = _options.RoutePrefix;
var listResult = await _projectAppService.GetListAsync(); var listResult = await _projectAppService.GetListAsync();

2
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml

@ -76,7 +76,7 @@
<div class="docs-tree-list"> <div class="docs-tree-list">
@if (Model.ProjectSelectItems.Count > 1) @if (Model.ShowProjectsCombobox && Model.ProjectSelectItems.Count > 1)
{ {
<div class="docs-version"> <div class="docs-version">
<div class="version-select"> <div class="version-select">

14
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -52,18 +52,20 @@ namespace Volo.Docs.Pages.Documents.Project
public string DocumentsUrlPrefix { get; set; } public string DocumentsUrlPrefix { get; set; }
public bool ShowProjectsCombobox { get; set; }
public bool DocumentLanguageIsDifferent { get; set; } public bool DocumentLanguageIsDifferent { get; set; }
private readonly IDocumentAppService _documentAppService; private readonly IDocumentAppService _documentAppService;
private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory; private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory;
private readonly IProjectAppService _projectAppService; private readonly IProjectAppService _projectAppService;
private readonly DocsUrlOptions _options; private readonly DocsOptions _options;
public IndexModel( public IndexModel(
IDocumentAppService documentAppService, IDocumentAppService documentAppService,
IDocumentToHtmlConverterFactory documentToHtmlConverterFactory, IDocumentToHtmlConverterFactory documentToHtmlConverterFactory,
IProjectAppService projectAppService, IProjectAppService projectAppService,
IOptions<DocsUrlOptions> options) IOptions<DocsOptions> options)
{ {
_documentAppService = documentAppService; _documentAppService = documentAppService;
_documentToHtmlConverterFactory = documentToHtmlConverterFactory; _documentToHtmlConverterFactory = documentToHtmlConverterFactory;
@ -74,6 +76,7 @@ namespace Volo.Docs.Pages.Documents.Project
public async Task<IActionResult> OnGetAsync() public async Task<IActionResult> OnGetAsync()
{ {
DocumentsUrlPrefix = _options.RoutePrefix; DocumentsUrlPrefix = _options.RoutePrefix;
ShowProjectsCombobox = _options.ShowProjectsComboboxInUi;
if (IsDocumentCultureDifferentThanCurrent()) if (IsDocumentCultureDifferentThanCurrent())
{ {
@ -81,7 +84,12 @@ namespace Volo.Docs.Pages.Documents.Project
} }
await SetProjectAsync(); await SetProjectAsync();
await SetProjectsAsync();
if (ShowProjectsCombobox)
{
await SetProjectsAsync();
}
await SetVersionAsync(); await SetVersionAsync();
await SetLanguageList(); await SetLanguageList();

Loading…
Cancel
Save