#493 last visit of user for poem

This commit is contained in:
Hamid Reza Mohammadi 2026-06-27 15:58:22 +03:30
parent 594cb93504
commit 412a77a30c
19 changed files with 30 additions and 19 deletions

View File

@ -150,7 +150,7 @@
</p>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/js/bk.js?version=79"></script>
<script src="~/js/bk.js?version=80"></script>
<script src="~/js/jplayersupport.js"></script>
<script src="~/js/vaabd.js?version=10"></script>
<script src="~/dist/jplayer/jquery.jplayer.min.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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -16,7 +16,7 @@
<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/chart.js"></script>
<script src="/js/bk.js?version=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -17,7 +17,7 @@
<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/chart.js"></script>
<script src="/js/bk.js?version=79"></script>
<script src="/js/bk.js?version=80"></script>
<script src="/js/jquery.mark.min.js"></script>
<script>
var cookieValue = getCookie("playerScrollLock");

View File

@ -1,4 +1,5 @@
using GanjooRazor.Utils;
using DNTPersianUtils.Core;
using GanjooRazor.Utils;
using KontorService.Models.Reporting.ViewModels;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@ -1140,7 +1141,7 @@ namespace GanjooRazor.Pages
};
Response.Cookies.Append("KeepHistory", $"{false}", cookieOption);
}
return new OkObjectResult(res);
return new OkObjectResult(res.KeepTrack && res.LastVisit != null ? $"از این صفحه بار قبل {res.LastVisit.ToFriendlyPersianDateTextify()} و در مجموع {res.TotalVisits.ToPersianNumbers()} بار بازدید کرده‌ام." : "");
}
else
{

View File

@ -23,7 +23,7 @@
font-family: 'Vazirmatn'
}
</style>
<script src="/js/bk.js?version=79"></script>
<script src="/js/bk.js?version=80"></script>
<script src="~/js/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=79"></script>
<script src="/js/bk.js?version=80"></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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

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

View File

@ -21,7 +21,7 @@
<link rel="search" type="application/opensearchdescription+xml" title="گنجور" href="https://ganjoor.net/search.xml" />
<script src="/js/chart.js"></script>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/js/bk.js?version=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

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

View File

@ -32,7 +32,7 @@
});
</script>
<script src="/lib/diff.js"></script>
<script src="/js/bk.js?version=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
function compareCorrectionBlocks(originalElemenyId, editedElementId, resultElementId) {
var a = document.getElementById(originalElemenyId);

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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

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=79"></script>
<script src="/js/bk.js?version=80"></script>
<script>
var cookieValue = getCookie("playerScrollLock");
var playerScrollLock = cookieValue === "true";

View File

@ -520,7 +520,6 @@
<p>
<small><i class="notranslate pageicons mouse-icon"></i> با انتخاب متن و لمس متن انتخابی می‌توانید آن را در لغتنامهٔ دهخدا جستجو کنید.</small>
</p>
@if (Model.GanjoorPage.Poem.Sections.Where(s => s.SectionType == RMuseum.Models.Ganjoor.PoemSectionType.WholePoem).Any() || !string.IsNullOrEmpty(Model.GanjoorPage.Poem.OldTag) || !string.IsNullOrEmpty(Model.GanjoorPage.Poem.SourceName))
{
<table>
@ -602,6 +601,13 @@
</table>
}
@if (Model.LoggedIn && Model.KeepHistory)
{
<p id="track-record">
</p>
}
@if (!string.IsNullOrEmpty(Model.GanjoorPage.Poem.PoemSummary))

View File

@ -1118,6 +1118,10 @@ function AddToMyHistory(poemId) {
$.ajax({
type: "POST",
url: '?Handler=AddToMyHistory&poemId=' + String(poemId),
success: function (result) {
console.log(result);
$('#track-record').html('<small>' + result + ' <a href="/User/History">*</a></small>');
},
});
}, 1);
}

View File

@ -39,7 +39,7 @@ namespace RMuseum.Services.Implementation
var oldTracks = await _context.GanjoorUserPoemVisits.Where(v => v.PoemId == poemId && v.UserId == userId).ToArrayAsync();
int count = oldTracks.Any() ? oldTracks.Last().Counter : 0;
int count = oldTracks.Any() ? Math.Max(oldTracks.Last().Counter, 1) : 0;
DateTime? preVisit = oldTracks.Any() ? oldTracks.Last().DateTime : null;
_context.RemoveRange(oldTracks);
await _context.SaveChangesAsync();