#199 displaying commen for on _BNumPartial

This commit is contained in:
Hamid Reza Mohammadi 2021-09-04 19:48:49 +04:30
parent 8f925da6fe
commit 06a8b6b403
6 changed files with 83 additions and 22 deletions

View File

@ -37,7 +37,7 @@
{
<script>
$(document).ready(function () {
btshmr();
btshmr(@Model.GanjoorPage.Id);
});
</script>
}

View File

@ -639,7 +639,7 @@ namespace GanjooRazor.Pages
}
public async Task<ActionResult> OnGetBNumPartialAsync()
public async Task<ActionResult> OnGetBNumPartialAsync(int poemId, int coupletIndex)
{
return new PartialViewResult()
{
@ -647,6 +647,11 @@ namespace GanjooRazor.Pages
ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary())
{
Model = new _BNumPartialModel()
{
PoemId = poemId,
CoupletIndex = coupletIndex,
LoggedIn = !string.IsNullOrEmpty(Request.Cookies["Token"])
}
}
};
}

View File

@ -1,7 +1,53 @@
@page
@model GanjooRazor.Pages._BNumPartialModel
@model GanjooRazor.Pages._BNumPartialModel
@{
}
<p>
درود!
</p>
@if (Model.LoggedIn)
{
<form method="post" action="?handler=Comment">
<fieldset>
<legend>💬 دربارهٔ این پاراگراف/بیت/مصرع حاشیه‌بگذارید ...</legend>
<table style="max-width:100%; width:100%; margin:0">
<tr>
<td>
<div class="required">
<textarea name="comment" class="inputTextarea editor" tabindex="4" rows="10" style="width:100%"></textarea>
</div>
<input type="hidden" name="poemId" value="@Model.PoemId" />
<input type="hidden" name="coupletIndex" value="@Model.CoupletIndex" />
</td>
</tr>
<tr>
<td>
<button name="postcomment" class="inputSubmit" onclick="return postComment(document.getElementById('comments-block'));" style="width:100%">درج حاشیه</button>
</td>
</tr>
</table>
<div class="notice">
<p>
لطفاً توجه داشته باشید که حاشیه‌ها برای ثبت نظرات شما راجع به <strong>همین شعر</strong> در نظر گرفته شده‌اند. در صورتی که در متن ثبت شدهٔ شعر در گنجور تفاوتهایی غیر از موارد قابل ویرایش یافتید، در مورد این شعر نظر یا احساس خاصی دارید یا مطلب خاصی در مورد آن می‌دانید یا دوست دارید دربارهٔ آن از دیگران چیزی بپرسید یک حاشیه برای آن بنویسید. <span style="color:#f00">لطفاً از درج مطالب غیرمرتبط با متن این شعر خاص خودداری فرمایید</span> و حتی‌الامکان سعی کنید متن حاشیهٔ خود را با حروف فارسی درج کنید (حاشیه‌ها بازبینی خواهند شد و موارد غیرمرتبط و ناقض این نکات حذف می‌شوند).
</p>
<p>
<span style="color:#f00">بحثهای مذهبی و اعتقادی و ارجاع توهین‌آمیز نسبت به بزرگان ادیان و همینطور بحثهای قومیتی و توهین به فرهنگها و قومیتها و زبانها و بحثهای مرتبط با سیاست روز از مصادیق حاشیه‌های نامناسب محسوب می‌شوند.</span> لطفاً از هیچ قوم و مذهبی با صفات زننده صحبت نکنید و به خاطر داشته باشید که همهٔ اقوام (حتی ایرانی‌ها) در مقاطعی از تاریخ خود نسبت به اقوام دیگر بدوی محسوب می‌شده‌اند یا با تعدی به خاک همسایگان خود نسبت به آنها ستم روا داشته‌اند.
</p>
<p>
در خطاب قرار دادن کاربران دیگر -چه به شکل خاص و چه به شکل عمومی- فارغ از این که در حاشیه‌هایشان نظرات معقولی را عنوان کرده‌اند یا خیر، رعایت احترام را بفرمایید. بی‌احترامی به دیگر کاربران (و البته شخصیتهای دیگر از جمله هنرمندان و ...) از مصادیق حاشیه‌های نامناسب محسوب می‌شود و فارغ از ارزش محتوایی، حاشیهٔ فرد خاطی به محض دریافت گزارش تخلف حذف خواهد شد.
</p>
<p>
<span style="color:#0a0">لطفاً در صورتی که تفاوتها را با استناد به نسخه‌های چاپی یا خطی گزارش می‌کنید این مسئله را با ذکر منبع مطرح نمایید. اشتباهات تایپی و غلطهای املایی را از طریق دکمهٔ «ویرایش» تصحیح کنید.</span>
</p>
</div>
</fieldset>
</form>
}
else
{
<div class="notice">
<p>
برای حاشیه‌گذاری باید در گنجور <a href="/signup" target="_blank">ثبت نام</a> کنید و با نام کاربری خود از طریق آیکون 👤 گوشهٔ پایین سمت چپ صفحات به آن وارد شوید.
</p>
</div>
}

View File

@ -9,8 +9,21 @@ namespace GanjooRazor.Pages
{
public class _BNumPartialModel : PageModel
{
public void OnGet()
{
}
/// <summary>
/// is logged on
/// </summary>
public bool LoggedIn { get; set; }
/// <summary>
/// poem id
/// </summary>
public int PoemId { get; set; }
/// <summary>
/// couplet index
/// </summary>
public int CoupletIndex { get; set; }
}
}

View File

@ -313,7 +313,7 @@
<small>🖰 با دو بار کلیک روی واژه‌ها یا انتخاب متن و کلیک روی آنها می‌توانید آنها را در لغتنامهٔ دهخدا جستجو کنید.</small>
</p>
<p>
<small>🖐 <a role="button" onclick="btshmr()" class="actionlink" id="bnum-button">حذف شماره‌ها</a></small>
<small>🖐 <a role="button" onclick="btshmr(@Model.GanjoorPage.Id)" class="actionlink" id="bnum-button">حذف شماره‌ها</a></small>
@if (Model.GanjoorPage.Poem.GanjoorMetre != null)
{
<text>| <small>وزن: <a href="@Html.Raw($"/vazn/?v={Uri.EscapeUriString(Model.GanjoorPage.Poem.GanjoorMetre.Rhythm)}&amp;a={Model.GanjoorPage.PoetOrCat.Poet.Id}")">@Html.Raw(Model.GanjoorPage.Poem.GanjoorMetre.Rhythm)</a></small></text>

View File

@ -31,7 +31,7 @@ function getElements(classname, classname2, classname3, classname4, tagname, roo
}
function bnumClick(index) {
function bnumClick(poemId, index) {
var msr1s = getElements("m1", "b2", "n", "l");
if (msr1s.length <= index) return;
var divId = 'bnumpanel' + String(index);
@ -44,7 +44,7 @@ function bnumClick(index) {
divParent.innerHTML = divParent.innerHTML + '<div class="bnumdiv" id="' + divId + '"></div>';
$.ajax({
type: "GET",
url: '?Handler=BNumPartial',
url: '?Handler=BNumPartial&poemId=' + String(poemId) + '&coupletIndex=' + String(index),
success: function (data) {
var divId = 'bnumpanel' + String(index);
$(data).appendTo(document.getElementById(divId));
@ -77,7 +77,7 @@ function bshfarsinum(englishnum) {
function btshmr_internal() {
function btshmr_internal(poemId) {
var bnum = getElements("bnum");
if (bnum.length != 0) {
for (var i = 0; i < bnum.length; ++i) {
@ -98,17 +98,17 @@ function btshmr_internal() {
for (var i = 0; i < msr1s.length; ++i) {
if (msr1s[i].className != "b2") {
if (msr1s[i].className != "m1") {
msr1s[i].innerHTML = '<div class="bnum normalbnum" onclick="bnumClick(' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].innerHTML;//no alt, so that when user copies text does not appear in the copied content
msr1s[i].innerHTML = '<div class="bnum normalbnum" onclick="bnumClick(' + String(poemId) + ',' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].innerHTML;//no alt, so that when user copies text does not appear in the copied content
}
else {
msr1s[i].parentElement.innerHTML = '<div class="bnum normalbnum" onclick="bnumClick(' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].parentElement.innerHTML;//no alt, so that when user copies text does not appear in the copied content
msr1s[i].parentElement.innerHTML = '<div class="bnum normalbnum" onclick="bnumClick(' + String(poemId) + ',' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].parentElement.innerHTML;//no alt, so that when user copies text does not appear in the copied content
}
document.getElementById("bnum" + String(i + 1)).style.background = 'url(' + coupletNumImage(bshfarsinum(String(j + 1)), "red") + ')';
j++;
}
else {
msr1s[i].innerHTML = '<div class="bnum bandnum" onclick="bnumClick(' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].innerHTML;
msr1s[i].innerHTML = '<div class="bnum bandnum" onclick="bnumClick(' + String(poemId) + ',' + String(i) + ');" id="bnum' + String(i + 1) + '"></div>' + msr1s[i].innerHTML;
document.getElementById("bnum" + String(i + 1)).style.background = 'url(' + coupletNumImage("بند " + bshfarsinum(String(k)), "blue") + ')';
k++;
j = 0;
@ -117,15 +117,12 @@ function btshmr_internal() {
return true;
}
function btshmr() {
setTimeout(function () { btshmr_internal(); }, 1);
function btshmr(poemId) {
setTimeout(function () { btshmr_internal(poemId); }, 1);
}
function hilightverse(vnum, clr, sc, forceScroll) {
var root = document;
if (typeof root == "string") root = document.getElementById(root);