#393 load and display category recitations by user choice to reduce page load lag

This commit is contained in:
Hamid Reza Mohammadi 2023-07-09 11:27:54 +03:30
parent 75b8fe3975
commit c7700f6491
16 changed files with 69 additions and 16 deletions

View File

@ -150,7 +150,7 @@
</p>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/bk.js?version=38"></script>
<script src="~/js/bk.js?version=39"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=5"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -18,7 +18,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -16,7 +16,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon">
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml">
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -7,6 +7,7 @@ using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RMuseum.Migrations;
using RMuseum.Models.Ganjoor;
using RMuseum.Models.Ganjoor.ViewModels;
using RMuseum.Models.GanjoorAudio.ViewModels;
@ -17,6 +18,7 @@ using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace GanjooRazor.Pages
{
@ -916,6 +918,32 @@ namespace GanjooRazor.Pages
};
}
public async Task<ActionResult> OnGetCategoryRecitationsAsync(int catId)
{
var catTop1RecitationsQuery = await _httpClient.GetAsync($"{APIRoot.Url}/api/audio/cattop1/{catId}?includePoemText=false");
if (!catTop1RecitationsQuery.IsSuccessStatusCode)
{
return BadRequest(JsonConvert.DeserializeObject<string>(await catTop1RecitationsQuery.Content.ReadAsStringAsync()));
}
var categoryTop1Recitations = JsonConvert.DeserializeObject<PublicRecitationViewModel[]>(await catTop1RecitationsQuery.Content.ReadAsStringAsync());
return new PartialViewResult()
{
ViewName = "_AudioPlayerPartial",
ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary())
{
Model = new _AudioPlayerPartialModel()
{
LoggedIn = !string.IsNullOrEmpty(Request.Cookies["Token"]),
Recitations = categoryTop1Recitations,
ShowAllRecitaions = true,
CategoryMode = true,
}
}
};
}
public async Task<IActionResult> OnPostSwitchBookmarkAsync(int poemId, int coupletIndex)
{
using (HttpClient secureClient = new HttpClient())

View File

@ -23,7 +23,7 @@
font-family: 'Vazir'
}
</style>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="~/js/leaflet.js"></script>
<script src="~/js/leaflet-providers.js"></script>

View File

@ -15,7 +15,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -238,7 +238,7 @@
<script src="~/js/bk.js?version=38"></script>
<script src="~/js/bk.js?version=39"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=5"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>

View File

@ -20,7 +20,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -33,7 +33,7 @@
});
</script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
function editBanner(bannerId) {
var url = '?handler=Edit';

View File

@ -30,7 +30,7 @@
});
</script>
<script src="/lib/diff.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
</head>
<body>

View File

@ -17,7 +17,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -18,7 +18,7 @@
<link rel="shortcut icon" href="/favicon.ico?version=1" type="image/x-icon" />
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=38"></script>
<script src="/js/bk.js?version=39"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -280,7 +280,7 @@
{
@($"[{poemGeoTag.Location.Latitude},{poemGeoTag.Location.Longitude}],")
}
]).addTo(map);
]).addTo(map);
for (var i = 0; i < poemGeoTags.length; i++) {
var poemGeoTag = poemGeoTags[i];
@ -375,15 +375,17 @@
</div>
</nav>
}
@if ((Model.IsCatPage || Model.IsPoetPage) && Model.CategoryTop1Recitations.Length > 0)
{
<div class="spacer">&nbsp;</div>
<div class="related-images-frame" id="recitations">
<div class="century cursor-pointer" id="load-cat-recitations" onclick="loadCatRecitations(@Model.GanjoorPage.PoetOrCat.Cat.Id)">
خوانش‌ها را بارگذاری کن
</div>
<div id="recitations-section">
<partial name="_AudioPlayerPartial" model=@Model.GetRecitationsModel(Model.CategoryTop1Recitations, true) />
</div>
</div>
}

View File

@ -1084,4 +1084,27 @@ function viewLocation(lt, lg) {
link.href = 'https://maps.google.com/?q=' + lt + ',' + lg + '&ll=' + lt + ',' + lg + '&z=3';
link.target = "_blank"
link.click()
}
function loadCatRecitations(catId) {
var loadButton = document.getElementById("load-cat-recitations");
if (loadButton == null) {
return;
}
var divParent = document.getElementById('recitations-section');
var imgElementId = 'loadingimg';
divParent.innerHTML = divParent.innerHTML + '<div class="bnumdiv" id="remove-this"><img id="' + imgElementId + '" src="/image/loading.gif" alt="بارگذاری"/></div>';
$.ajax({
type: "GET",
url: '?Handler=CategoryRecitations&catId=' + String(catId),
success: function (data) {
document.getElementById("remove-this").remove();
loadButton.remove();
$(data).appendTo(divParent);
},
});
}