docs: #285 loading category FAQ items

This commit is contained in:
Hamid Reza Mohammadi 2022-03-03 12:21:11 +03:30
parent d6c33683c6
commit 3ed9d5294e
2 changed files with 62 additions and 3 deletions

View File

@ -20,7 +20,7 @@ else
location.href = '/User/FAQCatEdit?id=' + String(document.getElementById('cat').value);
}
function deleteCategory() {
var sel = document.getElementById('cat');
var text= sel.options[sel.selectedIndex].text;
@ -45,12 +45,40 @@ else
});
}
function onSelectedCatChanged(){
var sel = document.getElementById('cat');
if(sel.selectedIndex >= 0){
document.getElementById('catItems').innerHTML = 'در حال بارگذاری ...';
$.ajax({
type: "GET",
url: '?Handler=CategoryItems',
data: {
id: sel.value
},
error: function (e) {
document.getElementById('catItems').innerHTML = '';
if (e.responseText == null)
alert(e);
else
alert(e.responseText);
},
success: function (items) {
var s = '';
for(var i=0; i<items.length; i++){
s += ('<p><a href="/FAQItemEdit?id='+String(items[i].id)+'">' + '<p>' + items[i].question + '</a></p>');
}
document.getElementById('catItems').innerHTML = s;
},
});
}
}
</script>
<table>
<tr>
<td>دسته‌بندی پرسش‌ها:</td>
<td>
<select name="cat" id="cat">
<select name="cat" id="cat" onchange="onSelectedCatChanged()">
@foreach (var category in Model.Categories)
{
<option value="@category.Id">@category.Title</option>
@ -67,4 +95,8 @@ else
</tr>
</table>
<h2>پرسش‌های دستهٔ جاری</h2>
<div id="catItems">
</div>
}

View File

@ -16,6 +16,7 @@ namespace GanjooRazor.Areas.User.Pages
public string LastMessage { get; set; }
public FAQCategory[] Categories { get; set; }
public async Task<IActionResult> OnGetAsync()
{
if(string.IsNullOrEmpty(Request.Cookies["Token"]))
@ -64,7 +65,6 @@ namespace GanjooRazor.Areas.User.Pages
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync()));
}
}
else
{
@ -73,5 +73,32 @@ namespace GanjooRazor.Areas.User.Pages
}
return new JsonResult(true);
}
public async Task<IActionResult> OnGetCategoryItemsAsync(int id)
{
using (HttpClient secureClient = new HttpClient())
{
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
{
HttpResponseMessage response = await secureClient.GetAsync($"{APIRoot.Url}/api/faq/cat/secure/items?catId={id}");
if (!response.IsSuccessStatusCode)
{
return new BadRequestObjectResult(JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync()));
}
var items = JsonConvert.DeserializeObject<FAQItem[]>(await response.Content.ReadAsStringAsync());
if(items == null)
{
items = new FAQItem[] { };
}
return new JsonResult(items);
}
else
{
return new BadRequestObjectResult("لطفا از گنجور خارج و مجددا به آن وارد شوید.");
}
}
}
}
}