docs: #285 links for each FAQ item
This commit is contained in:
parent
2ab7cf936e
commit
97bd31933c
@ -55,28 +55,45 @@
|
||||
<div id="fa">
|
||||
<div id="maincnt">
|
||||
<div class="poem">
|
||||
<h2><a href="/faq">پرسشهای متداول</a></h2>
|
||||
@foreach (var category in Model.PinnedItemsCategories)
|
||||
<h2>
|
||||
<a href="/faq">پرسشهای متداول</a>
|
||||
</h2>
|
||||
@if (Model.Question != null)
|
||||
{
|
||||
<div class="comments-like-div">
|
||||
<h2>
|
||||
@category.Title
|
||||
</h2>
|
||||
@foreach (var item in category.Items)
|
||||
{
|
||||
<div class="related-images-frame" id="item-@item.Id">
|
||||
<div class="century">
|
||||
@item.Question <a role="button" class="w3tooltip cursor-pointer" onclick="switch_section('item-section-@item.Id', 'item-collapse-button-@item.Id')"><i class="info-buttons collapse_circle_down" id="item-collapse-button-@item.Id"></i><span class="w3tooltiptext">جمع شود / باز شود</span></a>
|
||||
</div>
|
||||
<div id="item-section-@item.Id" style="display:none">
|
||||
<div class="ganjoor-comment">
|
||||
@Html.Raw(item.AnswerExcerpt)
|
||||
</div>
|
||||
</div>
|
||||
<div class="related-images-frame" id="item-@Model.Question.Id">
|
||||
<div class="century">
|
||||
<a href="/faq?id=@Model.Question.Id">@Model.Question.Question</a>
|
||||
</div>
|
||||
<div id="item-section-@Model.Question.Id">
|
||||
<div class="ganjoor-comment">
|
||||
@Html.Raw(Model.Question.AnswerExcerpt)
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
@foreach (var category in Model.PinnedItemsCategories)
|
||||
{
|
||||
<div class="comments-like-div">
|
||||
<h2>
|
||||
@category.Title
|
||||
</h2>
|
||||
@foreach (var item in category.Items)
|
||||
{
|
||||
<div class="related-images-frame" id="item-@item.Id">
|
||||
<div class="century">
|
||||
@item.Question <a role="button" class="w3tooltip cursor-pointer" onclick="switch_section('item-section-@item.Id', 'item-collapse-button-@item.Id')"><i class="info-buttons collapse_circle_down" id="item-collapse-button-@item.Id"></i><span class="w3tooltiptext">جمع شود / باز شود</span></a>
|
||||
<a role="button" class="w3tooltip cursor-pointer" href="/faq?id=@item.Id"><i class="info-buttons copylink-icon"></i><span class="w3tooltiptext">نشانی این پرسش</span></a>
|
||||
</div>
|
||||
<div id="item-section-@item.Id" style="display:none">
|
||||
<div class="ganjoor-comment">
|
||||
@Html.Raw(item.AnswerExcerpt)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -21,6 +21,8 @@ namespace GanjooRazor.Pages
|
||||
|
||||
public List<FAQCategory> PinnedItemsCategories { get; set; }
|
||||
|
||||
public FAQItem Question { get; set; }
|
||||
|
||||
private async Task<bool> preparePoets()
|
||||
{
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/poets");
|
||||
@ -46,13 +48,30 @@ namespace GanjooRazor.Pages
|
||||
if (false == (await preparePoets()))
|
||||
return Page();
|
||||
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/faq/pinned");
|
||||
if (!response.IsSuccessStatusCode)
|
||||
if(!string.IsNullOrEmpty(Request.Query["id"]))
|
||||
{
|
||||
LastError = JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync());
|
||||
return Page();
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/faq/{Request.Query["id"]}");
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
LastError = JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync());
|
||||
if(string.IsNullOrEmpty(LastError))
|
||||
{
|
||||
LastError = $"خطا در دریافت اطلاعات پرسش مد نظر - کد خظا = {response.StatusCode}";
|
||||
}
|
||||
return Page();
|
||||
}
|
||||
Question = JsonConvert.DeserializeObject<FAQItem>(await response.Content.ReadAsStringAsync());
|
||||
}
|
||||
else
|
||||
{
|
||||
var response = await _httpClient.GetAsync($"{APIRoot.Url}/api/faq/pinned");
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
LastError = JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync());
|
||||
return Page();
|
||||
}
|
||||
PinnedItemsCategories = JArray.Parse(await response.Content.ReadAsStringAsync()).ToObject<List<FAQCategory>>();
|
||||
}
|
||||
PinnedItemsCategories = JArray.Parse(await response.Content.ReadAsStringAsync()).ToObject<List<FAQCategory>>();
|
||||
|
||||
return Page();
|
||||
}
|
||||
|
||||
@ -181,7 +181,24 @@ namespace RMuseum.Controllers
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// get published item by id
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{id}")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQItem))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> GetPublishedItemByIdAsync(int id)
|
||||
{
|
||||
var res = await _faqService.GetItemByIdAsync(id);
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
if (!res.Result.Published)
|
||||
return NotFound();
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// add a new faq item
|
||||
|
||||
@ -835,6 +835,13 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.FAQController.GetPublishedItemByIdAsync(System.Int32)">
|
||||
<summary>
|
||||
get published item by id
|
||||
</summary>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.FAQController.AddItemAsync(RMuseum.Models.FAQ.FAQItem)">
|
||||
<summary>
|
||||
add a new faq item
|
||||
|
||||
@ -75,6 +75,7 @@ namespace RMuseum.Services.Implementation
|
||||
var urls = await context.GanjoorPages.Where(p => p.PoetId == null).OrderBy(p => p.Id).Select(p => p.FullUrl).ToListAsync();
|
||||
urls.Add("/map");
|
||||
urls.Add("/photos");
|
||||
urls.Add("/faq");
|
||||
|
||||
urls.Remove("/audioclip");
|
||||
urls.Remove("/simi");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user